Skip to main content

GET /api/v1/jobs/{id}/results

Fetch the rich result payload for a single job.

Query parameters

Example response

Useful fields include:
  • title, category, address, website, phone
  • web_presence — the business’s web-presence tier (see Filtering by web presence)
  • review_count, rating, reviews_link
  • open_hours, popular_times, reviews_per_rating
  • images, reservations, order_online, menu, owner
  • user_reviews, user_reviews_extended
  • emails
The example above is abbreviated. The full response includes additional fields such as latitude, longitude, description, timezone, price_range, popular_times, reviews_per_rating, complete_address, about, reservations, order_online, menu, owner, user_reviews, and images when available. Optional fields are omitted from the response when empty.

Filtering by web presence

Every result is classified into a web-presence tier from its scraped website. Pass web_presence to return only the tiers you want. The top-level web_presence_counts always reports the unfiltered breakdown, so you can show totals like “42 of 200 have no website” regardless of the active filter. Tiers — the value of the web_presence field on each result: Group aliases. web_presence also accepts the same coarse groups as the scrape-time website_filter, so one vocabulary works end to end: Pass tiers, aliases, or a mix — values are de-duplicated and matching is case-insensitive. An unrecognized value returns 400 Bad Request.
This read-time filter is free and runs over already-scraped data, so you can re-segment a finished job as often as you like. To avoid scraping and paying for unwanted businesses in the first place, set website_filter when you create the job.
If the job is in failed status, this endpoint returns 402 Payment Required with a billing failure message.

GET /api/v1/results

Fetch a flat result list across all of your jobs.

Query parameters

This endpoint returns a plain JSON array of result objects rather than a paginated envelope.

GET /api/v1/jobs/{id}/download

Download the CSV file for a job. Current behavior:
  • Response content type is text/csv
  • Response includes Content-Disposition with the generated file name
  • Invalid UUID values return 422 Unprocessable Entity
  • Missing or unavailable CSV output returns 404 Not Found
  • Failed jobs return 402 Payment Required

Example request

GET /api/v1/jobs/{id}/costs

Read the cost breakdown for one job.

Example response

Each event_type represents a billing line item: Cost totals use the pricing rules that were active when the job ran. See Credits and billing for per-event prices.

POST /api/v1/jobs/costs/batch

Read the cost breakdown for multiple jobs in one request.

Request body

Notes:
  • Maximum 100 job IDs per request
  • Invalid UUID values return 422 Unprocessable Entity
  • Jobs you do not own are silently omitted from the costs map

Example response