# Poll stream results

Retrieve completed results without relying on webhook delivery.
Useful as a fallback or when `callback_url` was not provided.
**Offset/limit** — page through results in completion order.
**Batch lookup** — request a specific webhook delivery batch by
sequence number (useful for reconciling against webhook history).
When `batch` is provided, `offset` and `limit` are ignored.

Endpoint: GET /stream/{id}/results
Version: 4.0
Security: ApiKeyAuth, BearerAuth, BasicAuth

## Security:

  - `ApiKeyAuth` (unknown)
    apiKey in header x-api-key

  - `BearerAuth` (unknown)
    http bearer JWT

  - `BasicAuth` (unknown)
    http basic

## Path parameters:

  - `id` (string, required)
    MongoDB ObjectId of the stream job.

## Query parameters:

  - `offset` (integer)
    Number of results to skip.

  - `limit` (integer)
    Maximum results to return.

  - `batch` (integer)
    Return results from a specific delivery batch (1-based).
Overrides `offset` and `limit`.

## Response 200:

  - `200` (unknown)
    Paginated results

## Response 200 fields (application/json):

  - `error` (boolean)
    Example: false

  - `job_id` (string)

  - `values_total` (integer)

  - `values_done` (integer)

  - `values_errors` (integer)

  - `is_final` (boolean)

  - `offset` (integer)

  - `limit` (integer)

  - `count` (integer)
    Number of results in this page.

  - `results` (array)

  - `results._id` (string)

  - `results.result` (object)
    Result for a single input value.
| `success` | `reason` | Meaning |
|  --- | --- | --- |
| `true` | `null` | At least one offer found |
| `true` | `not found` | Product has no listings on this source/country (a completed lookup — billed when freshly crawled, free when re-served from the not-found cache) |
| `false` | `source currently unavailable` | Transient crawl failure — may succeed on retry |
| `false` | `timeout` | Crawl did not complete within the job timeout |
| `false` | `parameter_invalid` | Input is malformed (invalid GTIN checksum, bad ASIN format) |

  - `results.result.key` (string)
    The input value this result corresponds to.
    Example: 4006381333962

  - `results.result.success` (boolean)

  - `results.result.reason` (string)
    Enum: "not found", "source currently unavailable", "timeout", "parameter_invalid", null

  - `results.result.content` (any)
    Source-specific result payload. `null` when `success` is `false`.
The shape depends on `source` and `key`:
- Idealo → `IdealoContent`
- Amazon → `AmazonContent`
- Google `term` → `GoogleTermContent`
- Google `id` / `product` → `GoogleProductContent`
- eBay → `EbayContent`

  - `results.result.content.id` (string)
    Idealo product ID.
    Example: 205062515

  - `results.result.content.name` (string)
    Example: Festool Bit PZ1 -25/10

  - `results.result.content.url` (string)

  - `results.result.content.category_ids` (array)
    Primary category id(s) for the product.
    Example: ["3308"]

  - `results.result.content.rating` (number)
    Keyword `search` results only.
    Example: 4.7

  - `results.result.content.rating_count` (integer)
    Keyword `search` results only.
    Example: 150

  - `results.result.content.categories` (array)
    Category name(s). Product results: German markets (`de`/`at`) only.
    Example: ["Tintenstrahldrucker"]

  - `results.result.content.available_since` (string)
    Date the product appeared on Idealo. Keyword `search` results only.
    Example: 2023-05-12

  - `results.result.content.price_min` (number)
    Example: 4.9

  - `results.result.content.price_max` (number)
    Example: 19.85

  - `results.result.content.price_avg` (number)
    Example: 12.34

  - `results.result.content.offers_count` (integer)
    Example: 5

  - `results.result.content.offers` (array)

  - `results.result.content.offers.position` (integer)
    Example: 1

  - `results.result.content.offers.price` (number)
    Example: 4.9

  - `results.result.content.offers.currency` (string)
    Example: EUR

  - `results.result.content.offers.shipping` (number)
    Example: 5.95

  - `results.result.content.offers.total` (number)
    Price + shipping.
    Example: 10.85

  - `results.result.content.offers.seller_name` (string)
    Example: mima.de

  - `results.result.content.offers.seller_url` (string)

  - `results.result.content.offers.seller_type` (string)
    Enum: "standalone-shop", "marketplace-shop"

  - `results.result.content.offers.marketplace_name` (string)
    Populated when `seller_type` is `marketplace-shop`.
    Example: Amazon

  - `results.result.content.offers.seller_rating` (number)

  - `results.result.content.offers.seller_rating_count` (integer)

  - `results.result.content.offers.voucher` (boolean)

  - `results.result.content.offers.free_return` (boolean)

  - `results.result.content.offers.availability_code` (string)
    `green` = in stock, `orange` = limited, `red` = out of stock.
    Enum: "green", "orange", "red"

  - `results.result.content.offers.availability_text` (string)
    Example: sofort lieferbar, 1 - 3 Werktage

  - `results.result.content.product_id` (string)
    The ASIN (unified schema — `product_id` on every source).
    Example: B0847ZTV5Q

  - `results.result.content.brand_name` (string)

  - `results.result.content.category` (string)

  - `results.result.content.buybox` (object)
    Buy-box snapshot — the same object shape on Amazon, Walmart, and Kaufland (unified schema).

  - `results.result.content.buybox.price` (number)
    Buy-box price. On a Prime-exclusive deal this is the regular (non-Prime) price; the Prime price is in `prime_price`.
    Example: 27.99

  - `results.result.content.buybox.seller_name` (string)
    Seller currently winning the buy box.
    Example: Amazon.de

  - `results.result.content.buybox.seller_id` (string)
    Example: A3JWKAKR8XB7XF

  - `results.result.content.seller_type` (string)
    Fulfilment of the buy-box seller.
    Enum: "amazon", "fba", "fbm"

  - `results.result.content.is_prime` (boolean)
    True when the buy box carries a Prime-exclusive price.

  - `results.result.content.prime_price` (number)
    The Prime-exclusive price when `is_prime` is true, else null.

  - `results.result.content.offers` (array)
    Populated when `topic` is `search_and_offers`.

  - `results.result.content.offers.seller_id` (string)

  - `results.result.content.offers.is_prime` (boolean)

  - `results.result.content.offers.condition` (string)
    Example: New

  - `results.result.content.offers_count` (integer)
    Number of product cards returned.

  - `results.result.content.id` (string)
    Google Shopping product ID.
    Example: 7294553093490218809

  - `results.result.content.description` (string)

  - `results.result.content.url` (string)
    Canonical Google Shopping product URL.

  - `results.result.content.rating` (number)

  - `results.result.content.rating_count` (integer)

  - `results.result.served_from` (string)
    `live` — at least one fetch was made for this job. `cache` — the
result was re-served from a cached observation without a fetch.
    Enum: "live", "cache"

  - `results.result.observed_at` (string)
    When the data was observed (UTC): the last fetch for `live`, the
cached observation's date for `cache`. `null` when nothing was
observed (failed lookup) or the cache date is unknown.
    Example: 2026-09-08T10:00:00.000Z

  - `results.result.trust` (object)
    Confidence score attached to every result. `score` is a weighted average
(0–1) of the five `components`. See the
[Trust](/guides/trust) guide for interpretation.

  - `results.result.trust.score` (number)
    Overall confidence, 0 (do not trust) to 1 (fully trusted).
    Example: 0.81

  - `results.result.trust.components` (object)
    The five sub-scores that make up `score`, each 0–1.

  - `results.result.trust.components.identity` (number)
    Is this the requested product? (weight 0.25)
    Example: 1

  - `results.result.trust.components.completeness` (number)
    Are the expected fields populated? (weight 0.20)
    Example: 0.85

  - `results.result.trust.components.price_integrity` (number)
    Pricing consistent and outlier-free? (weight 0.25)
    Example: 0.7

  - `results.result.trust.components.offer_contamination` (number)
    Fraction of offers that are clean. (weight 0.15)
    Example: 0.9

  - `results.result.trust.components.freshness` (number)
    Recency of the data; decays with age. (weight 0.15)
    Example: 0.55

  - `results.result.trust.flagged_offers` (array)
    Indices into `content.offers` of offers flagged as price outliers.
    Example: [2,5]

  - `results.result.meta` (object)
    Provenance metadata. Present only when the job was submitted with
`include_meta: true`.

  - `results.result.meta.crawls` (array)
    One entry per fetch that contributed to this result.

  - `results.result.meta.crawls.crawl_id` (string)
    Stable ID for this individual fetch — quote it to support.
    Example: 9f1c2d3e4b5a6c7d8e9f0a1b

  - `results.result.meta.crawls.url` (string)
    The exact URL that was fetched.

  - `results.result.meta.crawls.http_status` (integer)
    Example: 200

  - `results.result.meta.crawls.duration_ms` (integer)
    Fetch round-trip time, in milliseconds.
    Example: 2341

  - `results.result.meta.crawls.observed_at` (string)
    When the data was observed (UTC).

  - `results.result.meta.crawls.geo` (string)
    Country the request was made from.
    Example: de

  - `results.result.meta.crawls.job_type` (string)
    Internal crawl step that produced this fetch.
    Example: idealo.search

  - `results.result.meta.partial` (boolean)
    Google only. `true` when the marketplace reports more sellers than
were gathered in this snapshot. Absent for other sources.

  - `results.source` (string)

  - `results.country` (string)

  - `results.index` (integer)
    0-based position of this value in the original submission.

  - `results.completed_at` (string)

  - `message` (string)
    Example: country not supported by source

## Response 401:

  - `401` (unknown)
    Missing or invalid credentials.

## Response 401 fields (application/json):

  - `error` (string)
    Example: user not found

  - `message` (string)

## Response 403:

  - `403` (unknown)
    Authenticated but not subscribed to this source/country.

## Response 403 fields (application/json):

  - `error` (string)
    Example: user not found

  - `message` (string)

