Skip to main content

Error format

Errors follow JSON-RPC 2.0. An error on tools/call has the form:
Validate arguments against the schemas in the API reference before calling, e.g. date format YYYY-MM-DD and rowLimit within 125000.

Limits

General (all connectors)
  • Upstream timeout: each upstream call is bounded at 15-20 seconds depending on the connector. GSC, Uniconta, e-conomic, Dinero, Meta Ads, LinkedIn Ads and Billy use 15 s; Shopify, HubSpot CMS, HubSpot Email and CVR use 20 s. A slow provider surfaces as an error rather than hanging.
  • Reconnect on revoke: a revoked or invalid upstream credential surfaces as a “reconnect required” error; reconnect the connector in the portal.
Google Search Console
  • Rows per request: up to 25,000 (limit / rowLimit).
  • Pagination: use startRow in search_analytics_query to fetch further.
  • Dates: always YYYY-MM-DD.
  • Properties: you can only reach properties your authorized Google account already has access to. Use list_sites to see them.
e-conomic
  • Page size: list tools take pagesize (default 20, max 1000) and skippages; not every list tool accepts filter/sort. See the e-conomic reference.
Dinero
  • Rate limit: Dinero allows about 100 requests per minute per organisation. A 429 is retried once, then surfaces as DineroRateLimitError.
  • Dinero Pro required: the public API only works for organisations on Dinero Pro. A non-Pro organisation returns 403 on every call except list_organizations and validate_connection (both only enumerate organisations, so they work without Pro); the connector surfaces the 403 as DineroProRequiredError.
  • Deprecated endpoint: an HTTP 480 from Dinero signals a deprecated endpoint about to be removed and surfaces as DineroApiError. 4xx responses are never retried. See the Dinero reference.
rowLimit and dataState below are Google Search Console-specific and do not apply to the accounting connectors.

Data freshness (Google Search Console)

Search Console data is not real-time. The most recent days may be incomplete or missing because Google is still collecting them.
  • Expect a delay of a couple of days on the newest numbers.
  • In search_analytics_query you can control this with dataState:
    • final: only fully collected data.
    • all: includes preliminary (fresh but unstable) data.
Empty numbers usually mean the period has no data yet, or the selected property has no traffic in the range (not necessarily an error).