### GET /api/v1/products response Source: https://docs.duskstate.dev/docs/api/products Example response from GET /api/v1/products. The data array is empty when no products are available; the list can be empty until items can be fulfilled. ```json { "version": "2026-10-04T17:22:51.114Z", "source": "catalogue", "data": [] } ``` -------------------------------- ### GET /api/v1/products Source: https://docs.duskstate.dev/docs/api Retrieves the list of products available in the store. ```APIDOC ## GET /api/v1/products ### Description Retrieves the list of products available in the store. ### Method GET ### Endpoint /api/v1/products ### Response #### Success Response (200) - **products** (array) - List of product objects. #### Response Example { "products": [] } ``` -------------------------------- ### GET /pricing.json Source: https://docs.duskstate.dev/docs/api/products Lists the same offers in compact form. See Machine-readable files for details. ```APIDOC ## GET /pricing.json ### Description Lists the same offers in compact form. See Machine-readable files for details. ### Method GET ### Endpoint /pricing.json ### Response #### Success Response (200) - **data** (array) - Compact list of offers. ``` -------------------------------- ### GET /api/v1/docs Source: https://docs.duskstate.dev/docs/api Retrieves the list of documentation pages. ```APIDOC ## GET /api/v1/docs ### Description Retrieves the list of documentation pages. ### Method GET ### Endpoint /api/v1/docs ### Response #### Success Response (200) - **docs** (array) - List of documentation page objects. #### Response Example { "docs": [] } ``` -------------------------------- ### GET /api/v1/policies Source: https://docs.duskstate.dev/docs/api Retrieves the list of policies. ```APIDOC ## GET /api/v1/policies ### Description Retrieves the list of policies. ### Method GET ### Endpoint /api/v1/policies ### Response #### Success Response (200) - **policies** (array) - List of policy objects. #### Response Example { "policies": [] } ``` -------------------------------- ### See what works now: GET /capabilities.json Source: https://docs.duskstate.dev/docs/quickstart Lists available API capabilities. Each capability has an id, endpoint, method, and auth. Anything not listed is not available. ```bash curl -s https://duskstate.dev/capabilities.json ``` -------------------------------- ### Capabilities JSON example Source: https://docs.duskstate.dev/docs/discovery/machine-readable Shows the structure of /capabilities.json with an api_version and a capabilities array. A capability disappears from this file while it is closed. Agent capabilities add a scope. ```json { "api_version": "1", "capabilities": [ { "id": "policies", "description": "...", "endpoint": "https://duskstate.dev/api/v1/policies", "method": "GET", "auth": "none" } ] } ``` -------------------------------- ### GET /status.json Source: https://docs.duskstate.dev/docs/api Retrieves the status information. ```APIDOC ## GET /status.json ### Description Retrieves the status information. ### Method GET ### Endpoint /status.json ### Response #### Success Response (200) - **status** (object) - Status information. #### Response Example { "status": {} } ``` -------------------------------- ### GET /api/v1/store/categories Source: https://docs.duskstate.dev/docs/api Retrieves the store categories. ```APIDOC ## GET /api/v1/store/categories ### Description Retrieves the store categories. ### Method GET ### Endpoint /api/v1/store/categories ### Response #### Success Response (200) - **categories** (array) - List of category objects. #### Response Example { "categories": [] } ``` -------------------------------- ### GET /api/v1/docs/{path} Source: https://docs.duskstate.dev/docs/api/docs Returns the full page content for a given path, including the body in GitHub-flavoured Markdown. ```APIDOC ## [GET] /api/v1/docs/{path} ### Description Returns the full page content for a given path, including the body in GitHub-flavoured Markdown. ### Method GET ### Endpoint /api/v1/docs/{path} ### Parameters #### Path Parameters - **path** (string) - Required - The path of the page to retrieve. ### Response #### Success Response (200) - **path** (string) - The page path. - **title** (string) - The page title. - **description** (string) - The page description. - **section** (string|null) - The sidebar heading the page starts. - **position** (number) - Orders siblings. - **version** (string) - The version identifier. - **published_at** (string) - The publication timestamp. - **body** (string) - The page content in GitHub-flavoured Markdown. #### Response Example { "path": "api/errors", "title": "Errors", "description": "...", "section": null, "position": 21, "version": "api.errors-2026-10-06", "published_at": "2026-10-06T09:35:42.413Z", "body": "# Errors\n..." } #### Error Response (404) - **description** - Unknown path returns 404. ``` -------------------------------- ### GET /api/v1/policies/{slug} Source: https://docs.duskstate.dev/docs/api/policies Returns the same fields as the list endpoint plus the policy body in Markdown. Returns 404 for unknown slugs. ```APIDOC ## [GET] /api/v1/policies/{slug} ### Description Returns the policy details including the body text in Markdown. ### Method GET ### Endpoint /api/v1/policies/{slug} ### Parameters #### Path Parameters - **slug** (string) - Required - The policy slug. ### Response #### Success Response (200) - **slug** (string) - The policy slug. - **title** (string) - The policy title. - **summary** (string) - A summary of the policy. - **version** (string) - The policy version. - **effective_on** (date) - The effective date. - **placements** (array) - The placements. - **provisional** (boolean) - Whether the policy is provisional. - **body** (string) - The policy text in Markdown. #### Response Example { "slug": "privacy", "title": "Privacy Policy", "summary": "How we handle your data.", "version": "privacy-2026-10-04", "effective_on": "2026-10-04", "placements": ["checkout"], "provisional": false, "body": "# Privacy Policy\n..." } #### Error Response (404) - **detail** (string) - Error message. ``` -------------------------------- ### GET /api/v1/resources Source: https://docs.duskstate.dev/docs/api Retrieves the list of resources. This endpoint is available when published. ```APIDOC ## GET /api/v1/resources ### Description Retrieves the list of resources. This endpoint is available when published. ### Method GET ### Endpoint /api/v1/resources ### Response #### Success Response (200) - **resources** (array) - List of resource objects. #### Response Example { "resources": [] } ``` -------------------------------- ### GET /api/v1/tools Source: https://docs.duskstate.dev/docs/agents/mcp Lists the same tools as the MCP server with their JSON Schema inputs, annotations, scope, and the API call each makes. The directory is built from the same definition as the server, so it lists only tools the server runs. ```APIDOC ## GET /api/v1/tools ### Description Lists the same tools as the MCP server with their JSON Schema inputs, annotations, scope, and the API call each makes. The directory is built from the same definition as the server, so it lists only tools the server runs. ### Method GET ### Endpoint /api/v1/tools ### Response #### Success Response (200) - **tools** (array) - List of tool definitions, each with JSON Schema inputs, annotations, scope, and the API call each makes. #### Response Example { "tools": [ { "name": "get_capabilities", "description": "What works now", "inputSchema": {}, "annotations": {}, "scope": "token", "tool-record": "api-endpoint" } ] } ``` -------------------------------- ### GET /api/v1/products Source: https://docs.duskstate.dev/docs/api/products Returns the products on sale. The list can be empty until items can be fulfilled. Each product includes identity, kind, category, status, price, tax treatment, effective date, checkout URL, and optional availability notes. ```APIDOC ## GET /api/v1/products ### Description Returns the products on sale. The list can be empty until items can be fulfilled. ### Method GET ### Endpoint /api/v1/products ### Parameters #### Query Parameters - **category** (string) - Optional - Filter by store category ID. Unknown category returns 400. ### Response #### Success Response (200) - **version** (string) - Version timestamp of the response. - **source** (string) - Always "catalogue". - **data** (array) - List of products. Each product has fields: id, name, description, kind, category, subcategory, status, price, tax_treatment, effective_date, checkout, availability, intake_url. #### Response Example { "version": "2026-10-04T17:22:51.114Z", "source": "catalogue", "data": [] } ### Error Handling - **400** - Unknown category. ``` -------------------------------- ### GET /api/v1/policies/{slug} Source: https://docs.duskstate.dev/docs/api Retrieves a specific policy by its slug. ```APIDOC ## GET /api/v1/policies/{slug} ### Description Retrieves a specific policy by its slug. ### Method GET ### Endpoint /api/v1/policies/{slug} ### Parameters #### Path Parameters - **slug** (string) - Required - The policy slug. ### Response #### Success Response (200) - **policy** (object) - The requested policy. #### Response Example { "policy": {} } ``` -------------------------------- ### GET /api/v1/resources Source: https://docs.duskstate.dev/docs/api/resources Retrieves a list of recommended resources. Returns a JSON object with a data array containing resource objects. Each resource includes fields such as slug, title, summary, url, kind, relationship, tags, position, and updated_at. ```APIDOC ## GET /api/v1/resources ### Description Returns a list of recommended resources (agents, services, software, guides, directories). The endpoint is only available when the Resources switch is enabled; otherwise it returns 404 and the capability is not advertised in /capabilities.json. ### Method GET ### Endpoint /api/v1/resources ### Parameters None ### Response #### Success Response (200) - **data** (array) - List of resource objects. Each resource object contains: - **slug** (string) - Unique identifier for the resource. - **title** (string) - Title of the resource. - **summary** (string) - Brief description of the resource. - **url** (string) - URL of the resource (always https). - **kind** (string) - Type of resource: agent, service, software, product, guide, mcp-directory, or skill-directory. - **relationship** (string) - Commercial relationship: independent, referral, or affiliate. - **tags** (array) - Grouping tags. - **position** (integer) - Order of the resource. - **updated_at** (string) - Last change timestamp. #### Response Example { "data": [ { "slug": "example-agent", "title": "Example Agent", "summary": "An example agent.", "url": "https://example.com/agent", "kind": "agent", "relationship": "independent", "tags": ["example"], "position": 1, "updated_at": "2024-01-01T00:00:00Z" } ] } ### Error Handling - **404 Not Found** - Returned when the Resources switch is off. The response body is not specified. ``` -------------------------------- ### GET /api/v1/docs Source: https://docs.duskstate.dev/docs/api/docs Returns every published page without its text, in navigation form. ```APIDOC ## [GET] /api/v1/docs ### Description Returns every published page without its text, in navigation form. ### Method GET ### Endpoint /api/v1/docs ### Response #### Success Response (200) - **data** (array) - List of page objects. - **path** (string) - The page path. - **title** (string) - The page title. - **description** (string) - The page description. - **section** (string|null) - The sidebar heading the page starts. - **position** (number) - Orders siblings. - **version** (string) - The version identifier. - **published_at** (string) - The publication timestamp. #### Response Example { "data": [ { "path": "api/errors", "title": "Errors", "description": "...", "section": null, "position": 21, "version": "api.errors-2026-10-06", "published_at": "2026-10-06T09:35:42.413Z" } ] } ``` -------------------------------- ### Error response example in JSON Source: https://docs.duskstate.dev/docs/api/errors Shows the structure of an error response, including the type, title, status, and request_id fields. The request_id should be quoted when contacting support. ```json { "type": "about:blank", "title": "No such policy", "status": 404, "request_id": "d32c3ee9-1001-4191-9440-3b790420a589" } ``` -------------------------------- ### GET /api/v1/records/{id} Source: https://docs.duskstate.dev/docs/api Retrieves a specific record by its identifier. ```APIDOC ## GET /api/v1/records/{id} ### Description Retrieves a specific record by its identifier. ### Method GET ### Endpoint /api/v1/records/{id} ### Parameters #### Path Parameters - **id** (string) - Required - The record identifier. ### Response #### Success Response (200) - **record** (object) - The requested record. #### Response Example { "record": {} } ``` -------------------------------- ### GET /api/v1/store/categories Source: https://docs.duskstate.dev/docs/api/products Lists only the categories that currently have published products. Each category includes an id, label, and count of products. ```APIDOC ## GET /api/v1/store/categories ### Description Lists only the categories that currently have published products. ### Method GET ### Endpoint /api/v1/store/categories ### Response #### Success Response (200) - **data** (array) - List of categories. Each category has fields: id, label, count. #### Response Example { "data": [ { "id": "templates", "label": "Templates", "count": 5 } ] } ``` -------------------------------- ### GET /health Source: https://docs.duskstate.dev/docs/api/status Returns a simple status object indicating the API is alive. Use it for liveness checks. ```APIDOC ## GET /health ### Description Returns `{ "status": "ok" }` while the API answers. Use it for liveness checks. ### Method GET ### Endpoint /health ### Response #### Success Response (200) - **status** (string) - Always "ok" when the API is healthy. #### Response Example { "status": "ok" } ``` -------------------------------- ### Get the consent version forms need Source: https://docs.duskstate.dev/docs/quickstart Fetches the current privacy policy version. Every form that records consent sends this value as `consent_version`. ```bash curl -s https://duskstate.dev/api/v1/policies/privacy | jq -r .version ``` -------------------------------- ### GET /api/v1/policies Source: https://docs.duskstate.dev/docs/api/policies Returns every published policy without its text, including slug, title, summary, version, effective_on, placements, and provisional status. ```APIDOC ## [GET] /api/v1/policies ### Description Returns every published policy without its text. ### Method GET ### Endpoint /api/v1/policies ### Response #### Success Response (200) - **slug** (string) - The policy slug. - **title** (string) - The policy title. - **summary** (string) - A summary of the policy. - **version** (string) - The policy version. - **effective_on** (date) - The effective date. - **placements** (array) - The placements. - **provisional** (boolean) - Whether the policy is provisional. #### Response Example { "slug": "privacy", "title": "Privacy Policy", "summary": "How we handle your data.", "version": "privacy-2026-10-04", "effective_on": "2026-10-04", "placements": ["checkout"], "provisional": false } ``` -------------------------------- ### GET /status.json Source: https://docs.duskstate.dev/docs/api/status Reports the status of the components behind the API, such as the API and database. When a component is unavailable, endpoints that depend on it answer 503. ```APIDOC ## GET /status.json ### Description Reports the components behind the API. When a component is unavailable, the endpoints that depend on it answer `503` and their capabilities may drop out of `/capabilities.json`. ### Method GET ### Endpoint /status.json ### Response #### Success Response (200) - **status** (string) - Overall status, e.g., "ok". - **checked_at** (string) - ISO timestamp of when the status was checked. - **components** (object) - Object with component names as keys and their status as values. #### Response Example { "status": "ok", "checked_at": "2026-10-06T10:08:28.211Z", "components": { "api": "ok", "database": "configured" } } ``` -------------------------------- ### GET /health response Source: https://docs.duskstate.dev/docs/api/status Returns { "status": "ok" } while the API answers. Use it for liveness checks. ```json { "status": "ok" } ``` -------------------------------- ### GET /api/v1/records/{id} Source: https://docs.duskstate.dev/docs/api/records Retrieves a single labelled public record by its ID. Returns the record details including subject, claims, and evidence. Returns 404 if the record does not exist. ```APIDOC ## GET /api/v1/records/{id} ### Description Returns a single labelled public record identified by its ID. The record contains a subject, a list of claims, and the evidence for each claim. If the ID is unknown, a 404 status is returned. ### Method GET ### Endpoint /api/v1/records/{id} ### Parameters #### Path Parameters - **id** (string) - Required - The unique identifier of the record to retrieve. ### Response #### Success Response (200) - **id** (string) - The record identifier. - **subject** (string) - The subject of the record. - **kind** (string) - What the record describes. - **version** (string) - The record version. - **as_of** (string) - The date the claims describe. - **publisher** (string) - The publisher of the record. - **note** (string) - Additional note about the record. - **claims** (array) - List of claims, each with: - **statement** (string) - The claim statement. - **label** (string) - The claim label: observed, inferred, proposed, unknown, or superseded. - **evidence** (string) - Where the claim comes from: a URL, a document, or a dated statement. #### Response Example { "id": "dusk-state", "subject": "Dusk State (duskstate.dev)", "kind": "publisher-self-record", "version": "2026-10-04.8", "as_of": "2026-10-04", "publisher": "Dusk State", "note": "...", "claims": [ { "statement": "Jurisdiction is England and Wales.", "label": "observed", "evidence": "..." } ] } #### Error Response (404) - **description** (string) - Record not found for the given ID. ``` -------------------------------- ### GET /status.json response Source: https://docs.duskstate.dev/docs/api/status Reports the components behind the API. When a component is unavailable, dependent endpoints answer 503 and capabilities may drop out of /capabilities.json. ```json { "status": "ok", "checked_at": "2026-10-06T10:08:28.211Z", "components": { "api": "ok", "database": "configured" } } ``` -------------------------------- ### Join the waiting list Source: https://docs.duskstate.dev/docs/quickstart Posts a new entry to the waitlist with consent fields. The request includes a placeholder consent version that must be replaced with the value from the privacy policy endpoint. ```bash curl -s -X POST https://duskstate.dev/api/v1/waitlist \ -H 'Content-Type: application/json' \ -d '{ "name": "Ada Example", "email": "ada@example.com", "interests": ["store", "agent-services"], "consent": true, "consent_version": "" }' ``` -------------------------------- ### POST /api/v1/agents/waitlist Source: https://docs.duskstate.dev/docs/agents/waitlist Joins the agent waiting list with one entry per agent registration. Requires an agent token with waitlist:write scope. ```APIDOC ## [POST] /api/v1/agents/waitlist ### Description Joins the agent waiting list with one entry per agent registration. Requires an agent token with waitlist:write scope. ### Method POST ### Endpoint /api/v1/agents/waitlist ### Parameters #### Request Body - **agent_name** (string) - Required - 1 to 200 characters - **agent_type** (string) - Required - What the agent is, 1 to 200 characters - **operator_type** (string) - Required - `individual`, `company` or `organisation` - **principal_contact** (string) - Optional - How to reach the person or organisation the agent acts for - **use_cases** (array of strings) - Required - List of short descriptions - **capabilities** (array of strings) - Required - Any of `read`, `write`, `deploy`, `pay` - **tools_used** (array of strings) - Required - List of tools the agent uses - **consent_version** (string) - Required - The `privacy` policy version in force; see Policies ### Request Example { "agent_name": "example-agent", "agent_type": "assistant", "operator_type": "individual", "principal_contact": "contact@example.com", "use_cases": ["scheduling"], "capabilities": ["read", "write"], "tools_used": ["calendar-api"], "consent_version": "1.0" } ### Response #### Success Response (201) - **id** (string) - Identifier of the waiting list entry - **status** (string) - Status of the entry, e.g., "received" - **registration_id** (string) - Identifier of the agent registration - **trust** (string) - Trust level, e.g., "untrusted" #### Response Example { "id": "...", "status": "received", "registration_id": "...", "trust": "untrusted" } ### Error Handling - **401** - No token - **403** - Missing scope - **409** - Already submitted for this registration (or stale `consent_version`; check `detail`) - **422** - Invalid fields - **429** - Too many requests - **503** - Closed ``` -------------------------------- ### POST /api/v1/waitlist Source: https://docs.duskstate.dev/docs/api Adds a user to the waiting list. ```APIDOC ## POST /api/v1/waitlist ### Description Adds a user to the waiting list. ### Method POST ### Endpoint /api/v1/waitlist ### Request Body - **consent_version** (string) - Required - The privacy notice version in force. ### Response #### Success Response (200) - **status** (string) - Confirmation message. #### Response Example { "status": "ok" } ``` -------------------------------- ### POST /api/v1/waitlist Source: https://docs.duskstate.dev/docs/api/waitlist Documentation for the POST /api/v1/waitlist endpoint, including request body fields, success response, and error codes. ```APIDOC ## POST /api/v1/waitlist ### Description Join the waiting list for public registration. No authentication is required. The same form is available at duskstate.dev/waitlist. ### Method POST ### Endpoint /api/v1/waitlist ### Parameters #### Request Body - **name** (string) - Required - 1 to 200 characters - **email** (string) - Required - Up to 320 characters - **organisation** (string) - Optional - Up to 200 characters - **interests** (array of strings) - Required - Any of `audit`, `store`, `agent-services`, `feed`, `monitoring`, `templates`, `prompts`, `automations`, `tools`, `plugins`, `snippets`, `blueprints`, `playbooks`, `starter-kits` - **consent** (boolean) - Required - Must be `true` - **consent_version** (string) - Required - The `privacy` policy version in force; see Policies - **legend_terms_version** (string) - Required - `legend-2026-10-04` ### Request Example ```json { "name": "string", "email": "string", "organisation": "string", "interests": ["audit"], "consent": true, "consent_version": "string", "legend_terms_version": "legend-2026-10-04" } ``` ### Response #### Success Response (202) - **status** (string) - Always `received` - **legend** (boolean) - Whether the Legend programme is open, which decides whether this entry is eligible. The reply is the same whether or not the email was already listed, so the endpoint cannot be used to check addresses. #### Response Example ```json { "status": "received", "legend": true } ``` ### Error Handling - **415** - Not JSON - **422** - Invalid fields - **409** - Stale `consent_version` - **429** - Too many requests - **503** - The waiting list is closed ``` -------------------------------- ### POST /api/v1/agents/survey Source: https://docs.duskstate.dev/docs/agents/survey Submits an agent survey to Dusk State. Requires an agent token with survey:write permission. The request body contains agent requirements and preferences. ```APIDOC ## [POST] /api/v1/agents/survey ### Description Submits an agent survey to Dusk State. Requires an agent token with survey:write permission. The request body contains agent requirements and preferences. ### Method POST ### Endpoint /api/v1/agents/survey ### Parameters #### Request Body - **current_tools** (string) - Required - Tools the agent uses now - **missing_capabilities** (string) - Required - What it cannot do today - **evidence_required** (string) - Required - What evidence it needs before acting - **payment_authority** (string) - Required - `none`, `within_limits`, `requires_human_approval` or `unknown` - **payment_limits_note** (string) - Optional - Up to 500 characters - **preferred_formats** (array) - Required - Any of `json`, `markdown`, `openapi`, `mcp` - **feature_requests** (string) - Required - Up to 4,000 characters - **ranked_priorities** (string) - Required - Most important first - **follow_up_permission** (boolean) - Required - Whether Dusk State may contact the principal - **consent_version** (string) - Required - As for the waiting list ### Request Example { "current_tools": "string", "missing_capabilities": "string", "evidence_required": "string", "payment_authority": "none", "payment_limits_note": "string", "preferred_formats": ["json"], "feature_requests": "string", "ranked_priorities": "string", "follow_up_permission": true, "consent_version": "string" } ### Response #### Success Response (201) - **id** (string) - Description - **status** (string) - Description - **registration_id** (string) - Description - **trust** (string) - Description #### Response Example { "id": "string", "status": "string", "registration_id": "string", "trust": "string" } #### Error Response (409) - **error** (string) - Description #### Error Response Example { "error": "Survey already submitted" } ``` -------------------------------- ### Read a public record Source: https://docs.duskstate.dev/docs/quickstart Fetches a public record from the API. A record is a list of claims, each with a statement, a label (observed, inferred, proposed, unknown or superseded) and the evidence behind it. ```bash curl -s https://duskstate.dev/api/v1/records/dusk-state ``` -------------------------------- ### robots.txt content Source: https://docs.duskstate.dev/docs/discovery/crawlers The robots.txt file allows all crawlers, disallows two API paths, and includes a Content-Signal line indicating content usage: search and AI input allowed, AI training not allowed. ```text User-Agent: * Content-Signal: search=yes, ai-input=yes, ai-train=no Allow: / Disallow: /api/v1/agents/ Disallow: /api/v1/audit-requests ``` -------------------------------- ### POST /api/v1/agents/survey Source: https://docs.duskstate.dev/docs/api Submits an agent survey. Requires an agent access token. ```APIDOC ## POST /api/v1/agents/survey ### Description Submits an agent survey. Requires an agent access token. ### Method POST ### Endpoint /api/v1/agents/survey ### Authentication Requires an agent access token. ### Request Body - **consent_version** (string) - Required - The privacy notice version in force. ### Response #### Success Response (200) - **status** (string) - Confirmation message. #### Response Example { "status": "ok" } ``` -------------------------------- ### POST /api/v1/audit-requests Source: https://docs.duskstate.dev/docs/api/audit-requests Request an agent-readiness audit. The endpoint is currently closed and returns 503 with 'Audit requests are closed'. When open, it accepts an Idempotency-Key header and a body matching the audit-request schema, and returns a 201 with the audit request id and status 'received'. ```APIDOC ## [POST] /api/v1/audit-requests ### Description Request an agent-readiness audit. The endpoint is currently closed and returns 503 with "Audit requests are closed". When open, it accepts an Idempotency-Key header and a body matching the audit-request schema, and returns a 201 with the audit request id and status "received". ### Method POST ### Endpoint /api/v1/audit-requests ### Parameters #### Headers - **Idempotency-Key** (string) - Required - 8 to 128 letters, digits or hyphens. #### Request Body - **contact details** (object) - Required - Contact details for the audit request. - **api** (object) - Required - The API in question, including: - **endpoints** (string) - Required - The endpoints of the API. - **auth_method** (string) - Required - The authentication method used. - **pricing_public** (boolean) - Required - Whether pricing is public. - **terms_public** (boolean) - Required - Whether terms are public. - **schemas_public** (boolean) - Required - Whether schemas are public. - **desired_outcome** (string) - Required - The desired outcome of the audit. - **consent** (boolean) - Required - Must be true. - **consent_version** (string) - Required - The version of the consent. ### Request Example { "contact": { "name": "string", "email": "string" }, "api": { "endpoints": "string", "auth_method": "string", "pricing_public": true, "terms_public": true, "schemas_public": true }, "desired_outcome": "string", "consent": true, "consent_version": "string" } ### Response #### Success Response (201) - **id** (string) - The id of the audit request. - **status** (string) - The status of the audit request, always "received". - **payment** (object) - How to pay, containing either **checkout** or **payment_link**. #### Response Example { "id": "string", "status": "received", "payment": { "checkout": "string" } } #### Success Response (200) Repeating the same Idempotency-Key returns the original reply instead of a second request. #### Error Responses - **400** - Missing Idempotency-Key. - **413** - Body over 32 KB. - **415** - Unsupported media type. - **422** - Unprocessable entity. - **409** - Stale consent. - **429** - Too many requests. - **503** - Closed. The endpoint answers 503 with "Audit requests are closed". - **502** - The request was received but payment could not be started. The reply carries its id. ``` -------------------------------- ### POST /api/v1/audit-requests Source: https://docs.duskstate.dev/docs/api Submits an audit request. This endpoint is currently closed. ```APIDOC ## POST /api/v1/audit-requests ### Description Submits an audit request. This endpoint is currently closed. ### Method POST ### Endpoint /api/v1/audit-requests ### Request Body - **consent_version** (string) - Required - The privacy notice version in force. ### Response #### Success Response (200) - **status** (string) - Confirmation message. #### Response Example { "status": "ok" } ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.