Add pages
Judges a list of addresses and, unless `dryRun` is true, adds the accepted ones as pages and starts reading them in the background. The rules are the dashboard's: a path is resolved against the site's URL; a full address must be http or https and on the site's own origin (the origin of its URL or an allowed origin). An http address is upgraded to https, and a host that differs from an exactly allowed origin only by a leading `www.` is rewritten to it. The address is then normalized: the fragment, every `utm_` parameter, the click identifiers `gclid`, `gbraid`, `wbraid`, `dclid`, `fbclid`, `msclkid`, `ttclid`, `twclid`, `li_fat_id`, `igshid`, `yclid`, `srsltid`, `mc_cid`, `mc_eid`, `_ga`, `_gl` and `_kx`, and a trailing slash on a path other than `/` are removed; other query parameters are kept as written, in order. A repeat is ignored, and above 50 non-empty lines the whole request is refused with `invalid_request` and nothing is created. The answer names the outcome of every line. The answer is `202` when a read was started: read the progress from the pages. It is `200` for a dry run, and when no line was accepted.
Authorization
ApiKeyAuth A WorkOS org-scoped API key, created from the dashboard's organization settings page. Identifies the tenant every read and write is scoped to. Missing, malformed, unknown, revoked, expired, or non-organization-owned keys all return 401 (no distinction, so the response can't be used to probe which keys or org ids exist).
In: header
Path Parameters
The site id (prefixed site_). A site id that isn't yours is a 404, same as any other cross-tenant id.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
curl -X POST "https://example.com/api/v1/sites/string/pages" \ -H "Content-Type: application/json" \ -d '{ "lines": [ "/products/trail-shoe", "https://shop.example/collections/summer" ], "dryRun": false }'{ "data": { "dryRun": true, "counts": { "accepted": 1, "ignored": 0, "refused": 0 }, "started": false, "lines": [ { "line": 1, "input": "/products/trail-shoe", "status": "accepted", "reason": null, "url": "https://shop.example/products/trail-shoe", "cleaned": false, "pageId": null } ] }}List a site's pages
Returns the pages of this site with the site's totals by status and type, the number of pages it holds against its limit, the generation and read budgets and its last sitemap import. The totals count every page whatever the filters. The order is newest first unless `sort` asks for another; each sort pages with its own cursor. A list never carries the extracted text: get one page for it. Filters combine with AND. `limit` is 1 to 100 (50 by default), and a cursor is bound to the filters and the sort it was issued for.
Read pages
Queues up to 50 pages for a read, within the read budget (the site's daily ceiling and, in capped mode, the organization's monthly quota): a discovered page for the first time, any other page again. With `generateAfter`, starter questions are generated for each page that ends read, within the generation budget, and arrive switched off; `replace` says whether they replace the page's earlier generated questions (the default) or are added beside them. A page that is already being read is skipped and reported as `already_reading`, and an id that is not a page of this site is reported as `page_not_found`. The answer is `202` when at least one page was queued, and `200` when none was. Read the progress from the pages.