GET /api/v1/jobs/{id}/results
Fetch the rich result payload for a single job.
Query parameters
Example response
title,category,address,website,phoneweb_presence— the business’s web-presence tier (see Filtering by web presence)review_count,rating,reviews_linkopen_hours,popular_times,reviews_per_ratingimages,reservations,order_online,menu,owneruser_reviews,user_reviews_extendedemails
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 scrapedwebsite. 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.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-Dispositionwith 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
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
- Maximum
100job IDs per request - Invalid UUID values return
422 Unprocessable Entity - Jobs you do not own are silently omitted from the
costsmap

