Skip to main content
This page is mainly for developers. If you use OpenRush through an AI agent, you usually do not need to read raw responses. Every OpenRush tool returns the same top-level envelope. Agents can switch between SEO, SERP, audit, keyword, page, and dataset tools without learning a new response wrapper.
{
  "schema_version": "ofe/1.0",
  "domain": "seo",
  "data": {},
  "facts": [],
  "entities": [],
  "deltas": [],
  "coverage": {
    "returned": 0,
    "total_available": null,
    "truncated": false,
    "as_of": null,
    "scope_note": null
  },
  "resources": [],
  "next_actions": []
}

Fields

FieldTypeMeaning
schema_versionstringCurrent envelope version. OpenRush returns ofe/1.0.
domainstringData domain, such as seo, serp, audit, backlinks, or core.
dataobjectCompact tool-specific payload.
factsarrayTyped, namespaced claims with per-fact provenance.
entitiesarrayDeduplicated canonical entities referenced by facts.
deltasarrayChange facts against a previous observation. Empty for one-shot tools.
coverageobjectCount, truncation, freshness, and scope notes.
resourcesarrayopenrush:// handles for full datasets too large to inline.
next_actionsarrayAgent-readable follow-up calls and when to use them.

Facts

Facts are standalone claims. Each fact has a namespaced type, a subject, and public provenance.
{
  "type": "seo.keyword_ranking",
  "subject": [
    { "id": "keyword:best crm|united states", "kind": "keyword" },
    { "id": "domain:hubspot.com", "kind": "domain" }
  ],
  "keyword": "best crm",
  "domain": "hubspot.com",
  "position": 3,
  "provenance": {
    "source_class": "search_index",
    "method": "indexed",
    "observed_at": "2026-06-18T20:06:59Z",
    "confidence": 0.7,
    "connection_id": null,
    "cache_hit": false
  }
}

Provenance

Provenance tells an agent how fresh and trustworthy a fact is. It does not expose upstream supplier names, vendor task IDs, or wholesale costs.
source_classTypical methodTypical confidence
live_serpobserved0.95
crawlobserved0.90
search_indexindexed0.70
backlink_indexindexed0.70
webmaster_consolereported0.98
analytics_propertyreported0.98
ads_platformreported0.98
modeledmodeled0.50
synthesizedblended0.60

Resources and datasets

When a tool has more rows than should be inlined, it returns an openrush:// resource. Pass that URI to /v1/tools/export_dataset.
curl -X POST "https://api.openrush.io/v1/tools/export_dataset" \
  -H "Authorization: Bearer $OPENRUSH_KEY" \
  -H "Content-Type: application/json" \
  -d '{"uri":"openrush://dataset/..."}'
If a valid dataset URI has expired, the endpoint returns a 200 envelope with data.available=false, an explanatory note, and a next_actions entry to regenerate the dataset.