CLIENT API / V1 JSON-LD RETRIEVAL AND GENERATION

Read this integration's generation and reviewed draft

GET/sites/{site_id}/pages/{page_id}/schemas/generations/{job_id}schemas:generate

Requires schemas:generate. Only the originating integration, company, site and page can read this generation. No new capture or model calls occur. Terminal jobs reconcile their persisted cumulative worker usage idempotently. Insufficient credits return 402 with X-Credits-Required; top up then poll the same job. A succeeded job exposes its draft only after billing settles. This is a draft handoff, not approval to publish. AEM must keep the captured page-owned schema enabled when applying a complementary graph. Existing approved production schema endpoints and legacy integrations retain their existing approval behavior. A changed page URL does not alter this generation's captured URL.

RequestGET https://satelliteai.io/api/v1/sites/{site_id}/pages/{page_id}/schemas/generations/{job_id}
Permissionschemas:generate
ResponseA single object: data is object.
Operation IDgetPageSchemaGeneration

More context and worked examples are in the developer guide.

Example request

cURL · Bash
curl --fail-with-body \
  'https://satelliteai.io/api/v1/sites/123/pages/4567/schemas/generations/JOB_ID' \
  -H "Authorization: Bearer $SATELLITE_API_KEY"

Replace the example IDs with values returned by the discovery endpoints. Example values are placeholders, not real records.

Parameters

NameInTypeDescription
site_idrequiredpathintegerID from GET /sites.
min 1
page_idrequiredpathintegerPage ID from this site’s GET /pages.
min 1
job_idrequiredpathstring

Unknown or repeated query parameters return 400.

Data dictionary

Stored status, metered billing, and a reviewed draft when available. The read itself is free.

[] marks an array element. nullable means the value can be null; treat it as unknown, not zero. always present means the key is always included in the object.

Fields in data
FieldTypeDescription
data.jobobject
data.job.idstringSatellite identifier for this record.
data.job.statusstring
one of: accepted, queued, running, succeeded, failed, cancelled, cancel_requested, unknown
data.job.result_linksarray of string
data.billingobject
data.billing.statusstring
one of: pending, succeeded, unknown
data.billing.credits_chargedintegerCumulative generation charge
data.billing.transaction_idintegernullable
data.billing.pricingstring
one of: metered_worker_usage
data.schemaobjectnullable
data.schema.idintegerSatellite identifier for this record.
data.schema.urlstringURL captured for this generation.
data.schema.statusstring
one of: pending_approval, approved, rejected
data.schema.is_productionboolean
data.schema.languagestring
data.schema.revision_numberinteger
data.schema.json_ldarray of object
data.schema.generationobjectSource and graph hashes
data.schema.validationobjectDeterministic and independent per-rule review results and warnings.

Response metadata

Fields in meta
FieldTypeDescription
meta.request_idstringalways presentRequest identifier; also returned in X-Request-ID. Include it in support requests.
meta.api_versionstringalways presentAPI version that produced the response.
one of: v1
meta.limitintegerMaximum records per page applied to this request.
min 1 · max 100
meta.has_morebooleanTrue when another page is available.
meta.next_cursorstringnullableOpaque cursor for the next page; send as cursor. Null on the last page.
meta.availabilitystringavailable when stored data exists; not_available when it does not.
one of: available, not_available
meta.billingobjectPresent for paid live SERP requests; replayed receipts describe the original debit, not an additional charge.
meta.billing.operationstringalways present
one of: client_api_serp_refresh
meta.billing.credits_chargedintegeralways present
min 0
meta.billing.transaction_idintegeralways present
meta.billing.replayedbooleanalways present

Error responses

Errors return {"error": {"code", "message", "request_id"}}. See error handling for retry guidance.

HTTPWhen
401Invalid managed credential.
402Top up company credits to settle this generation's actual worker usage.
403schemas:generate was not granted.
404Generation is not owned by this integration
409Recorded usage requires reconciliation.
429Managed API rate limit exceeded.
503Storage or metering unavailable.