get_page
A page of the product with the source files it needs (components, imported modules, styles, assets, token sources). When the release has the engine's analysis, closure.basis is 'engine-analysis' and closure.complete says whether nothing was left unresolved; otherwise the files are the ones the release indexes record, and the closure is not complete.
Ask for it in plain words#
Inputs#
| Name | Type | Required | What it does |
|---|---|---|---|
identifier | string | no | The page's identifier, for example sotto/page/pricing. The home page is index. |
page | string | no | Instead of identifier: the page by route, title or entry path (with product). |
product | string | no | Instead of identifier: the product, used with page. |
release | string | no | Optional pin: the version you saw in an earlier result. |
include_contents | boolean | no | Return the files' contents. Default true. |
include_tokens | boolean | no | Also include the files that define the design tokens the page uses. Default true. |
cursor | string | no | From the previous result's nextCursor. |
Example#
include_contents is false here, so the files are listed without their contents.
The example ran over Orvio's synthetic test catalog (a product called Fixture Studio), so its names and values differ from the products you will see. The shape is exactly what the server returns.
Request
{ "identifier": "fixture-studio/page/index", "include_contents": false }
Result (shortened)
{ "page": { "identifier": "fixture-studio/page/index", "route": { "path": "/", "provenance": { "method": "inferred", "confidence": "high", "sources": [ { "path": "index.html" } ] } }, "title": "Fixture Landing", "purpose": null, "entryPath": "index.html", "components": [ "fixture-studio/component/site-header", "fixture-studio/component/hero", "fixture-studio/component/features" ], "assets": [ "images/logo.svg" ] }, "files": [ { "path": "source/index.html", "sourcePath": "index.html", "role": "page-entry", "content": null, "bytes": 775, "sha256": "187ba7c33ce9…" }, { "path": "source/css/site.css", "sourcePath": "css/site.css", "role": "style", "content": null, "bytes": 398, "sha256": "f90faae01d0d…" }, { "path": "source/images/logo.svg", "sourcePath": "images/logo.svg", "role": "asset", "rights": { "disposition": "cleared", "attribution": null }, "content": null, "bytes": 192, "sha256": "f3fda63be86c…" } ], "closure": { "basis": "package-indexes", "complete": false, "notes": [ "Local imports that the release indexes do not record are not included. Read them…" ], "unresolved": [] }, "licence": { "id": "LicenseRef-Orvio-Fixture-Synthetic", "path": "licenses/LICENSE.md", "thirdPartyNotices": null }, "release": { "product": "fixture-studio", "version": "1.1.0", "releaseId": "f1000000-0000-4000-8000-000000000002", "publishedAt": "2026-10-05T00:00:00Z" } }
Left out of the example: nextCursor.
What comes back#
| Field | What it holds |
|---|---|
page | Identifier, route, title, purpose, entry file, and the identifiers of its components and assets. |
files | The source files the page needs, each with its role (page entry, component, dependency, style, asset, token source), path, size and SHA-256. |
closure | How the list was made, and whether it is complete: basis, complete, notes, unresolved, packages, externals. |
warnings | Heads-ups that do not stop the call, such as a membership payment problem. Usually empty. |
Every result also carries what the request needs to be checked: the release (product, version, published date), the licence and notes, when they apply.
Paging#
When nextCursor is not null, call again with cursor set to it. A cursor belongs to your account, to that call's inputs and to that release, and it expires after 60 minutes. After a new release it answers release_replaced. See Limits and pagination.
Errors#
| Code | Means | What to do |
|---|---|---|
product_unavailable | No listed product has that identifier. | Search the catalog with search_products. |
release_withdrawn | The whole product was taken down for now. | Search the catalog for something similar with search_products. |
release_replaced | A newer release was published since the version you named or the cursor you used. | Call the tool again without a release to use 0.1.3. |
path_not_found | The release has no such file, page, component or token. | Use get_product or list_release_files to see what's included. |
ambiguous_identifier | The name matches more than one page, component or token. | Use one of: sotto/component/pricing@css-pricing, sotto/component/pricing@js-pricing. |
invalid_input | The arguments do not match the tool's schema, or the cursor is not valid. | Fix the input and call the tool again. |
HTTP 401, 403 or 429 | Before the tool runs: the sign-in is not valid, the membership does not allow access, or there were too many requests. | See Errors and fixes. |
Every tool can also answer service_unavailable and integrity_error: try again in a few minutes.