data and reports what the server did to get it; the
error envelope carries the same provenance fields around an error.
Success envelope
attempts[]
A single-attempt success has one entry. A failover shows the failed attempt
first, with
refunded: true, then the one that served the call.
Reading nulls
Output schemas are complete: every field of an object is always present. A field can benull for two different reasons, and the envelope lets you tell them
apart:
- The path is listed in
unsupported_fields→ this provider never returns it. Pick another provider withrouting.onlyif you need it, or check the method’s describe for a provider that has it. - The path is not listed → the provider supports the field; this particular record has no value (a post with no media, a product with no brand).
[] for array elements:
items[].metrics.collects, author.followers_count.
Counters are never silently 0: a missing like count is null, not zero.
Pages and single objects
List methods (*.search, *.posts, *.comments, *.reviews, trending, …)
return a page:
next_cursor is a string when more results exist and null at the end. Send it
back as cursor with the same parameters to continue — see
Requests → Pagination. Lookup
methods (*.get, quote, forecast, …) return the object itself as data.
Error envelope
error is a human-readable message, code repeats the HTTP status, and
error_type is the stable machine-readable kind. op, request_id and
attempts are present whenever the request got far enough to have them. The
full list of statuses and types is on Errors.
Shared objects
Methods return shared objects so that the same kind of thing looks the same on every platform and from every provider. The full schemas are in the OpenAPI document and on each method’s page; the core fields of the most used objects are below. All timestamps are RFC 3339 UTC; allplatform fields hold the platform
slug from the method name.
Post
User
id, platform, handle (without @), name, url, avatar_url, bio,
verified, followers_count, following_count, posts_count, created_at.
Comment
id, platform, post_id, reply_to_id (parent comment, null for a
top-level comment), text, published_at, author { id, handle, name, url },
metrics { likes, replies }.
Topic
id, platform, name, url, post_count.
Product
Review
id, platform, product_id, text (empty for rating-only reviews),
title, rating (platform scale, usually 1–5), published_at, sku,
country, verified_purchase, images, author { id, name },
metrics { likes, replies }.
Shop
id, platform, name, url, logo_url, description, location,
verified, followers_count, products_count, sales_count,
rating { score, count }.
WebResult and NewsArticle
WebResult: title, url, site (hostname without www.), snippet,
published_at.
NewsArticle: id, title, url, source, summary, image_url, lang,
published_at, tickers (related symbols when the provider tags them).
Quote
symbol, price, open, high, low, previous_close, change,
change_percent (1.5 = +1.5 %), volume, market_cap, currency, as_of.