# Dappier data_model_id list: publisher search models and prices

Dappier's publisher search API returns articles from one publisher per call, and the `data_model_id` query parameter picks the publisher and its price per query, such as $0.003 for MethodShop or $0.02 for Benzinga. Send `POST https://agents.dappier.com/zcj/cf3fg1s14qlo/zeroclick/v2/search?data_model_id=<id>` with a JSON `query`, and set `search_algorithm` to choose how the articles rank. Each call draws on a receipt's credit or a Prepaid credits balance.

## At a glance

- **Endpoint:** `POST https://agents.dappier.com/zcj/cf3fg1s14qlo/zeroclick/v2/search?data_model_id=<id>`, one id from the table below.
- **Body:** `query` (required), plus optional `similarity_top_k`, `num_results`, `page`, `search_algorithm`, `ref` and `num_articles_ref`.
- **Price:** set by the publisher, per query, from $0.003 per query to $0.02 per query. One call is one query, however many articles it returns.
- **Payment:** `Authorization: Receipt <receiptId>` or `Authorization: Bearer <token>` for a credential holding Prepaid credits. A call with neither answers `401 bearer_required`.
- **Response:** JSON with `status` and `response`, holding `query`, `message` and a `results` array of articles.
- **Limits:** one `data_model_id` per call. Send it exactly as the table writes it.
- **Live prices:** [manifest.json](https://agents.dappier.com/zcj/cf3fg1s14qlo/manifest.json). Read it at call time.
- **Full purchase flow:** [the buyer skill](https://agents.dappier.com/zcj/cf3fg1s14qlo/SKILL.md).

## Publisher data models and prices

| Publisher | `data_model_id` | Covers | Price per query |
| --- | --- | --- | --- |
| 9 and 10 News | `dm_01jhtt138wf1b9j8jwswye99y5` | Northern Michigan local news, weather, sports and community coverage, including Cadillac and Traverse City | $0.01 |
| Benzinga | `dm_01jmxn1a9tem8bq1nzbzjck8c4` | Financial news and stock coverage from Benzinga.com | $0.02 |
| CafeMom Parenting | `dm_01jketafckeh0vxacqv1s295j0` | Parenting advice, family tips and self-care from CafeMom, Mom.com, LittleThings and MamasLatinas | $0.01 |
| iHeartCats AI | `dm_01j1sza0h7ekhaecys2p3y0vmj` | Cat health, behavior and lifestyle articles from iHeartCats.com | $0.01 |
| iHeartDogs AI | `dm_01j1sz8t3qe6v9g8ad102kvmqn` | iHeartDogs.com articles on dog health, behavior, grooming and owning a dog | $0.01 |
| MethodShop | `dm_01jh3jg18fe92v4az2h2163t8k` | MethodShop.com how-tos, tech guides and digital lifestyle articles | $0.003 |
| WISH-TV AI | `dm_01jagy9nqaeer9hxx8z1sk1jx6` | WISH-TV broadcast clips, local events, sports scores and Indiana news | $0.01 |

The `data_model_id` is the only value that selects a publisher. Catalog slugs such as `methodshop` appear only in price lists and usage reports. Never send one as a request value.

| Job | Total |
| --- | --- |
| 10 MethodShop searches | $0.03 |
| 5 Benzinga searches | $0.10 |
| 1 search each of iHeartCats AI and iHeartDogs AI | $0.02 |

## Search request fields

| Field | In | Default | What it does |
| --- | --- | --- | --- |
| `data_model_id` | Query string | Required | The publisher to search |
| `query` | Body | Required | A natural language question, keywords or a URL. With a URL, the search reads the page and recommends articles related to its content. |
| `similarity_top_k` | Body | `9` | Number of articles to return |
| `num_results` | Body | `10` | Results per page |
| `page` | Body | `1` | Page number |
| `search_algorithm` | Body | Set it explicitly | How articles rank (next table) |
| `ref` | Body | None | The site domain where the recommendations are shown, such as `dappier.com` |
| `num_articles_ref` | Body | `0` | Minimum number of articles from the `ref` domain. The rest come from the publisher's other sites. |

## search_algorithm values

| Ranking you want | `search_algorithm` |
| --- | --- |
| Newest articles by publication date | `most_recent` |
| Articles most relevant to the query or the URL's page | `semantic` |
| Relevant articles, newest first | `most_recent_semantic` |
| Articles tied to keywords trending in the past 24 hours | `trending` |

Set `search_algorithm` on every request: Dappier's reference gives `most_recent` as the default in one place and `semantic` in another.

## Example search and response

A semantic search of MethodShop, paid from a receipt:

```bash
curl -sS -X POST 'https://agents.dappier.com/zcj/cf3fg1s14qlo/zeroclick/v2/search?data_model_id=dm_01jh3jg18fe92v4az2h2163t8k' \
  -H 'Authorization: Receipt <receiptId>' \
  -H 'Content-Type: application/json' \
  -d '{"query": "how to free up storage on an iPhone", "similarity_top_k": 3, "search_algorithm": "semantic"}'
```

The response has this shape:

```json
{
  "status": "<string>",
  "response": {
    "query": "<string>",
    "message": "<string>",
    "results": [
      {
        "title": "<string>",
        "url": "<string>",
        "source_url": "<string>",
        "site": "<string>",
        "site_domain": "<string>",
        "author": "<string>",
        "pubdate": "<string>",
        "pubdate_unix": 0,
        "summary": "<string>",
        "preview_content": "<string>",
        "image_url": "<string>",
        "score": 0,
        "content_id": 0
      }
    ]
  }
}
```

This example returned three results and drew $0.003 from the receipt's credit. Its `zc-billing` response header reports `fundingSource`, `chargedUsd` and `remainingCreditUsd`, which is what the receipt still holds after the call.

## Result fields

| Field | Meaning |
| --- | --- |
| `title` | Article title |
| `url` | The article's URL |
| `source_url` | Tracking URL for the article |
| `site`, `site_domain` | The source site and its domain |
| `author` | The article's author |
| `pubdate`, `pubdate_unix` | Publication date, as text and as a UNIX timestamp |
| `summary` | Summary of the article content |
| `preview_content` | Short preview of the article content |
| `image_url` | Article image. Append `&w=400&h=200`, with your own sizes, to get a resized image. |
| `score` | Relevance score |
| `content_id` | A numeric id, present on results in the example response |

## Paying for a search

Search calls are not priced one by one with a 402. Each call draws on credit you already hold.

| You send | The storefront returns |
| --- | --- |
| No credential | `401 bearer_required` |
| `Authorization: Receipt <receiptId>` with enough credit | `200` with articles, drawn from that receipt |
| A receipt that cannot cover the call | `402 receipt_credit_insufficient` or `receipt_credit_exhausted` |
| `Authorization: Bearer <token>` with a Prepaid credits balance | `200` with articles, debited from the balance |
| A bearer credential with no plan | `403 plan_required`, listing the plans that cover the call |

A receipt is a small credit bought without registering. Each receipt spends only its own balance, cannot be topped up, and its remaining credit is lost with it. It suits low-priced calls such as MethodShop.

Prepaid credits need a bearer credential, the agent identity the storefront issues at [auth.md](https://agents.dappier.com/zcj/cf3fg1s14qlo/auth.md), and start at $0.01 on a wallet rail or $0.50 by card. The [buyer skill](https://agents.dappier.com/zcj/cf3fg1s14qlo/SKILL.md) covers getting a receipt or a Credits balance and topping it up.

## What is charged when

- Comparing prices in [manifest.json](https://agents.dappier.com/zcj/cf3fg1s14qlo/manifest.json) needs no registration or payment setup.
- Each search is metered as one query at its publisher's price.
- A paid response carries `zc-billing` with `chargedUsd`. A delivered response with no `zc-billing` header billed nothing.
- A search covers one publisher. Searching three publishers is three calls, each at its own price.

## Search errors

| Status or code | Meaning | Action |
| --- | --- | --- |
| `400`, `data_model_id is required` | The query string has no `data_model_id` | Add an id from the table |
| `401 bearer_required` | No receipt or bearer was sent | Attach `Authorization: Receipt` or `Authorization: Bearer` |
| `402 receipt_credit_insufficient` / `receipt_credit_exhausted` | The receipt cannot cover this call | Buy a new receipt, or buy Prepaid credits with a bearer |
| `403 plan_required` | The credential holds no plan covering the call | Buy Prepaid credits, then retry |
| `usage_exhausted` | The Prepaid credits balance ran out | Top up with `/extend`, then retry |
| `400 conflicting_payment_credentials` | A receipt and a payment proof were sent together | Send the receipt alone |
| `404` | The model could not be resolved or is not reachable here | Use an id from the table, exactly as written |
| `422` | Empty `query` (`query cannot be empty`), a malformed id, or an unreadable body | Fix the body or the id |
| `500` | Server error resolving the model or dispatching the request | Retry with bounded backoff |

The full list is at [errors.md](https://agents.dappier.com/zcj/cf3fg1s14qlo/errors.md).

## Frequently asked questions

### Which data_model_id returns financial news?

Benzinga, `dm_01jmxn1a9tem8bq1nzbzjck8c4`, covers financial news and stock coverage from Benzinga.com at $0.02. If a receipt's remaining credit is below that price, the call answers `receipt_credit_insufficient`, so fund it from Prepaid credits.

### Can one call search several Dappier publishers?

No. Each call takes one `data_model_id`. Send one call per publisher, and each is billed at that publisher's price.

### Does returning more articles cost more?

Each search is metered as one query at its publisher's price, as the storefront lists it.

### Can the query be a URL?

Yes. Send the page URL as `query` and the search recommends articles related to that page's content. Pair it with `search_algorithm` set to `semantic`.

### Do I need a Dappier API key?

No. The storefront call takes a receipt or a bearer credential with Prepaid credits, and no upstream API key is needed.

## Keep reading

- [The buyer skill](https://agents.dappier.com/zcj/cf3fg1s14qlo/SKILL.md): receipts, Prepaid credits and recovery
- [manifest.json](https://agents.dappier.com/zcj/cf3fg1s14qlo/manifest.json): live services, plans and prices
- [openapi.json](https://agents.dappier.com/zcj/cf3fg1s14qlo/openapi.json): the search operation's full schema
- [How to pay](https://agents.dappier.com/zcj/cf3fg1s14qlo/payment.md) and [agent identity](https://agents.dappier.com/zcj/cf3fg1s14qlo/auth.md)

---

Updated 2026-10-16. All Dappier guides: https://agents.dappier.com/guides.md. Storefront: https://agents.dappier.com/zcj/cf3fg1s14qlo/llms.txt.
