Skip to main content
Every call returns JSON in one of two envelopes. The success envelope wraps the method’s typed output in 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 be null 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 with routing.only if 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).
Paths use dots for object members and [] 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; all platform 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.

Headers