Overview
Publish makes the pages you name Agent Pages now. Each path is fetched from your live site, optimized and served to AI agents, usually within minutes. It works for pages your sitemap doesn’t list too. Use it from your CMS when a page goes live, or to bring back a page you took down with Agent Pages Unpublish. Publish acts on the Agent Page only. If the path also has curated (Adaptive) content, agents keep receiving that version, and the response doesn’t report it. See Which API do I need?.What happens to a path
- On a page-by-page setup, the page is marked Serve on Agent Pages, exactly as if you selected it in the Site Optimization Pages table, and it counts against your Agent Pages budget. On a whole-site (legacy) setup, nothing is selected, the page isn’t added to any list, and no budget applies: the site keeps serving every page, and the path joins the scheduled checks.
- If Agent Pages Unpublish put the path on the Ignore List, that entry is removed. An Ignore List entry or path rule you added in the dashboard is never overridden: the path returns
excluded. - A background job fetches the page from your site, optimizes it and publishes it to the edge. The page is served once that job finishes, usually within minutes.
conflict).
queued is not yet served
queued means the job was sent, not that the page is live. If the send itself fails, the page is still picked up by the hourly scheduled check, usually within an hour. If your site doesn’t serve the page (for example it answers 404), the job fails. The page stays selected and counts against your Agent Pages budget, but it isn’t served until a scheduled check finds it live (about every 30 days) or you send it again. The response can’t tell you, because it returns before the fetch, and there is no status endpoint. Publish a page only once it is live on your site. If your site redirects the path to another path, the page isn’t published either, and the redirect is recorded as a scheduled check records it; a redirect that only changes the host within the same domain (adding or dropping www., or another subdomain) and keeps the path still publishes. To retry a failed publish, send the path again after its 5-minute cooldown.
A queued path can also carry warnings about its history:
Pages your sitemap doesn’t list
Each published path reportsin_sitemap. A queued page your sitemap doesn’t list is published as a manual Agent Page and carries the warning Not in the site's sitemap…. An already_published page never carries it: there, in_sitemap: false is informational. The sitemap check never removes a manual Agent Page. It stays served until your site answers 404 or redirects it at a scheduled check, or until you call Agent Pages Unpublish.
A queued page your sitemap lists is managed by the sitemap, as before: if the sitemap later drops it, the sitemap check can retire it. Publish doesn’t change how an already_published page is managed.
Paths your CDN doesn’t route to the edge
Agents only receive Agent Pages for paths your CDN sends to the Scrunch edge worker. If your CDN rules cover part of the site only (for example/us-en/*), a path outside them is published and stored, but never served. The API can’t detect this, so check your CDN routing before publishing outside it.
Endpoint
The endpoint requires a bearer token with the
optimize scope. See Authentication. Use the site ID that List Sites reports with agent_pages_active: true; see Find your site ID.
Request
Paths follow the same rules as Force Refresh: send the public URL path, site-relative, up to 2,048 characters. Paths are lowercased, the trailing slash and query string are dropped, and duplicates are merged.
/ is the homepage. See Path rules. One difference: .model.json and other non-HTML files return invalid_path here, not not_found. The page is fetched with the spelling you sent first, so a case-sensitive site gets the URL it expects. The query string is dropped from the fetched URL too, so a tracking or session parameter is never fetched.
Response
The endpoint returns200 OK with one result per requested path, in request order, and the brand’s remaining publish quota.
Outcome values
Only
queued paths count toward the quota.
Limits
The quotas are shared by all of a brand’s sites and are separate from the Force Refresh and Unpublish quotas.
Example: publish new pages
Errors
A path that is excluded, over budget, invalid or in cooldown doesn’t cause an error: the request still returns
200 with those outcomes.
Best practices
- Publish once the page is live. The fetch runs right after the response; a page your site doesn’t serve yet fails silently. Read
warningsonqueuedpaths: a retired or redirecting page waits for your site to answer for it. - Retry safely. Re-sending a served path returns
already_publishedand fetches nothing. On a page-by-page setup it is also added to the set, if it wasn’t already and your budget allows. Re-sending aqueuedpath within 5 minutes returnscooldown, oralready_publishedonce it is served; after that it fetches the page again, which is how you retry a failed publish. - Send one request at a time per brand. A request sent while another publish for the brand is in progress gets
429withRetry-After: 1. Batch paths into one request (up to 100). - Publish after Unpublish. A path taken down with Agent Pages Unpublish can be published again with this API. A path you put on the Ignore List in the dashboard can’t: remove it there first.
- Check curated content. If the dashboard shows an edited or deployed version at the path, agents keep receiving that version instead of the published Agent Page.