# Textus > Structured content for agents: one purchase delivers complete content, metadata, and editable baseline production direction. ## Primary content integration — contract 1.1.0 - API index and metadata-search template: https://api.textus.dev/ - Free discovery: https://api.textus.dev/api/v1/resources.json - Free synthetic complete-format evaluation example: https://api.textus.dev/api/v1/samples/content-production-material.json - Discovery schema: https://api.textus.dev/schemas/resource-discovery-1.schema.json - Purchased JSON schema: https://api.textus.dev/schemas/content-artifact-1.schema.json - Content terms: https://api.textus.dev/api/v1/content.terms.json - Paid URL: https://api.textus.dev/api/v1/resources/{id}/content.json - SKU: `content-production-material-v1`; pilot price 0.49 USDC. Live purchase availability and a fresh challenge are authoritative. - Exact challenge revision, digest and termsVersion: `extensions.textusProduct`. Echo challenge extensions unchanged when paying; the service description is shared across texts. Current discovery and paid JSON expose `metadata.bibliography` with separate `authors`, `collectors`, `editors` and `translators`. Each role has a documented/unknown status and a persons list with name, source URL and credited/traditional attribution. Use these before purchase; unknown names are not invented. Schema version 1.1 adds this metadata while the major-version-1 schemas preserve historical 1.0 delivery validation. The API index's `search.uriTemplate` uses RFC 6570; omit unused variables, never expand them as empty parameters. Catalogue GET responses carry CORS-exposed `Link` relations `service-meta` (API index), `service-desc` (OpenAPI) and `service-doc` (discovery guide), including on errors. These hints leave the catalogue JSON unchanged. Discovery lists released content only; deferred review records are excluded from listings, search and counts. Runtime payment availability remains separate. Discovery without query returns the full `{contractVersion,data}` public catalogue. A query enables pagination. Optional filters `language`, `resourceType`, `author`, `collector`, `purchaseAvailable=true|false` combine with AND. Language/type match exactly; person names match case-insensitive Unicode substrings in the respective role. `page` defaults to 1 (1–1000000), `limit` to 25 (1–100); results sort by ID ascending. Responses add `pagination: {page,limit,total,snapshot,next,previous}`. Follow returned canonical links to retain filters and snapshot; links may be null. `409 catalogue_changed` means restart from page 1 without snapshot and discard prior pages. Invalid, unknown, duplicate or empty parameters return `400 invalid_query`. See the full guide for query syntax. Paid artifact contracts remain unchanged. Optional `q` searches title, themes, character labels, scene titles and bibliographic person names: 1–200 UTF-8 bytes before normalization, at most ten whitespace-separated terms, with trimmed/collapsed whitespace. Every term must match a literal case-insensitive Unicode substring across those metadata fields; terms and filters combine with AND. Punctuation is literal, not query syntax. Control characters and queries without any letter or number are invalid. No paid full-text search, stemming, translation, semantic matching or relevance ranking. Continuation links retain `q`. Example free search: https://api.textus.dev/api/v1/resources.json?q=friendship&language=en&resourceType=fable Send brief content keywords, never complete user prompts, personal data, credentials or wallet material. Textus may retain bounded redacted search/filter text in private first-party demand statistics; redaction is not a guarantee of anonymity. Only criteria sent to Textus are observable. Full-catalogue downloads and private client-side selection remain supported; using search is optional. See https://textus.dev/datenschutz/. Responses containing `q` are `private, no-store` because pagination links contain the search text. Full-catalogue and filter-only responses retain public caching for up to 60 seconds. Discover–select–buy starts with a free query; this command does not buy anything: ```bash curl -fsS 'https://api.textus.dev/api/v1/resources.json?language=de&collector=Grimm&purchaseAvailable=true&limit=25&page=1' ``` Select a returned record after checking task fit, rights and budget. Proceed only with `offer.purchaseAvailable: true`, using that record's exact `offer.url` for the unsigned challenge and, after validating it, the buyer-authorized x402 retry. Do not invent an ID or construct a purchase URL from the route template. If no record fits, do not buy. Evaluate the free full-format synthetic sample linked above before purchase; it is evaluation-only, not commercially licensed production material. Agents inspect free task-relevant metadata and rights before deciding to buy or not buy. A purchased content artifact separates complete `content` from editable `basisDirection` and preserves characters, speakers, scenes, utterances, and baseline reading guidance. Buyers can steer direction and choose their own rendering tools. This is production material, not audio, provider execution, or a universal verification service. Provenance is transparent; additional source evidence is supplied where available. Purchase is business-only. No wallet secret is sent to Textus. The synthetic content example is not purchasable inventory. Its rights explicitly permit only `evaluation`, `integration_testing` and `documentation`, not commercial production. It demonstrates multiple scenes, narrator and character speakers, exact utterances, and non-spoken source spans. For spoken output, skip `basisDirection.nonSpokenSpans` (source stage directions and speaker labels), without deleting those spans from the source content. ## Read-only MCP discovery The public stateless Streamable HTTP MCP endpoint is `https://api.textus.dev/mcp` and accepts JSON-RPC `POST` only. Its one tool, `search_textus_resources`, reads the same public catalogue metadata as the direct API. It cannot buy, use a wallet, return paid content or `basisDirection`, and does not search Source Moments. Use the direct API as the canonical product and purchase path. Send only short catalogue terms and filters, never prompts, personal data or secrets. For local development, `npm run mcp:start` serves the same contract at `http://127.0.0.1:3000/mcp`. ## Historical receipt recovery only Story Reading packages and ElevenLabs plans are retired from new sales. The former story catalogue and purchase endpoints return HTTP 410 Gone for new purchases. Do not request a new payment authorization for a retired product. For an existing settled purchase, replay the exact original request and identical payment signature. Recovery returns the original receipt-bound bytes and SKU without a second settlement. Validate against that receipt and its archived schema, not a current content offer. Historical schemas remain available for recovery validation. Retirement does not change earlier purchase rights. For an ambiguous settlement, contact support with non-secret evidence rather than creating another authorization. ## Product and support - Website: https://textus.dev/ - Developer quickstart: https://textus.dev/docs/ - OpenAPI: https://api.textus.dev/api/openapi.json - Terms: https://textus.dev/terms/ - Support: https://textus.dev/support/ - Imprint: https://textus.dev/impressum/ - Privacy: https://textus.dev/datenschutz/ Textus does not accept customer-text submission, conversion, enrichment, or commissions. It supplies the selected resources in the live catalogue. Never send payment signatures, private keys, seed phrases, or wallet recovery material to support. Full integration guidance: https://textus.dev/llms-full.txt