---
title: "Prepare canonical Agent Readiness service, API, authentication, payment, operation, recovery and agent-standard declaration YAML for an existing Sourcey company, to submit through POST /v1/submissions. Drafts publish no facts or grades."
method: POST
path: "/v1/agent-readiness/declaration-drafts"
tags: ["Catalog"]
---

# Prepare canonical Agent Readiness service, API, authentication, payment, operation, recovery and agent-standard declaration YAML for an existing Sourcey company, to submit through POST /v1/submissions. Drafts publish no facts or grades.

`POST /v1/agent-readiness/declaration-drafts`

## Request

- Base URL: `https://api.sourcey.com`
- URL: `https://api.sourcey.com/v1/agent-readiness/declaration-drafts`
- Auth: one of:
  - none
  - HTTP bearer

## Request body

- PrepareAgentReadinessDeclarationRequest
  - `account_operations` object[]
    - `operation` object, required
      - `endpoint_id` string, required
      - `interface_id` string, required
      - `method` 'POST' | 'PUT' | 'PATCH', required
      - `operation_id` string, required
      - `role` 'registration' | 'top_up', required
      - `spec_url` string, uri, required
      - `url` string, uri, required
    - `source_uris` string[], required
  - `authority_intent` 'entity' | 'community'
  - `base_authoring_file` object
    - `content` string, required
    - `content_digest` string, required
    - `path` string, required
  - `command_contract` 'sourcey.agent-readiness-declaration-draft/v1alpha1', required
  - `declared_at` string, date-time
  - `endpoints` object[], required
    - `allowed_redirect_hosts` string[]
    - `endpoint_id` string, required
    - `operated_by_participant_id` string, required
    - `roles` string[], required
    - `source_uris` string[], required
    - `standard_bindings` object[], required
      - `namespace` string, required
      - `relation` 'declares' | 'describes' | 'implements' | 'uses', required
      - `version` string, required
    - `transport` 'http' | 'websocket' | 'grpc', required
    - `uri` string, uri, required
  - `interfaces` object[], required
    - `endpoint_ids` string[], required
    - `functions` string[], required
    - `interface_id` string, required
    - `modality` 'web_application' | 'network_api' | 'command_line' | 'software_library' | 'tool_server' | 'agent_service', required
    - `operated_by_participant_id` string, required
    - `resource_ids` string[], required
    - `source_uris` string[], required
    - `standard_bindings` object[], required
      - `namespace` string, required
      - `relation` 'declares' | 'describes' | 'implements' | 'uses', required
      - `version` string, required
  - `job_bindings` object[], required
    - `binding` object, required
      - `assertions` object[], required
        - `assertion` string, required
        - `observations` object[], required
          - `call` string, required
          - `name` string, required
          - `pointer` string, required
          - `source` 'json' | 'stream' | 'request', required
      - `binding_id` string, required
      - `calls` union[], required
        - union
          - object
            - `body` union, required
              - …
            - `call_id` string, required
            - `credentials` string[], required
            - `endpoint_id` string, required
            - `headers` object[], required
              - …
            - `kind` 'http', required
            - `method` 'GET' | 'HEAD' | 'POST' | 'PUT' | 'PATCH' | 'DELETE', required
            - `url` string, required
          - object
            - `arguments` Schema1, required (unresolved $ref)
            - `call_id` string, required
            - `credentials` string[], required
            - `endpoint_id` string, required
            - `kind` 'mcp', required
            - `tool` string, required
      - `cleanup` union[], required
        - union
          - object
            - `body` union, required
              - …
            - `call_id` string, required
            - `credentials` string[], required
            - `endpoint_id` string, required
            - `headers` object[], required
              - …
            - `kind` 'http', required
            - `method` 'GET' | 'HEAD' | 'POST' | 'PUT' | 'PATCH' | 'DELETE', required
            - `url` string, required
          - object
            - `arguments` Schema1, required (unresolved $ref)
            - `call_id` string, required
            - `credentials` string[], required
            - `endpoint_id` string, required
            - `kind` 'mcp', required
            - `tool` string, required
      - `delegation` union, required
        - object
          - `kind` 'none', required
        - object
          - `credentials` object[], required
            - `endpoint_ids` string[], required
            - `methods` string[], required
            - `placement` union, required
              - …
            - `role` string, required
          - `kind` 'entered', required
        - object
          - `authorization_endpoint_id` string, required
          - `client` 'client_id_metadata_document' | 'dynamic_registration' | 'preregistered', required
          - `keep` object[], required
            - `endpoint_ids` string[], required
            - `expires_in_pointer` string
            - `methods` string[], required
            - `placement` union, required
              - …
            - `pointer` string, required
            - `role` string, required
          - `kind` 'oauth', required
          - `scopes` string[], required
          - `token_endpoint_id` string, required
        - object
          - `call` object, required
            - `body` union, required
              - …
            - `call_id` string, required
            - `credentials` string[], required
            - `endpoint_id` string, required
            - `headers` object[], required
              - …
            - `kind` 'http', required
            - `method` 'GET' | 'HEAD' | 'POST' | 'PUT' | 'PATCH' | 'DELETE', required
            - `url` string, required
          - `from` object, required
            - `endpoint_ids` string[], required
            - `methods` string[], required
            - `placement` union, required
              - …
            - `role` string, required
          - `keep` object[], required
            - `endpoint_ids` string[], required
            - `expires_in_pointer` string
            - `methods` string[], required
            - `placement` union, required
              - …
            - `pointer` string, required
            - `role` string, required
          - `kind` 'minted', required
      - `interface_id` string, required
      - `payment` union, required
        - object
          - `kind` 'none', required
        - object
          - `kind` 'prepaid_balance', required
        - object
          - `kind` 'per_call', required
          - `protocol` 'x402' | 'mpp', required
    - `source_uris` string[], required
  - `job_operations` object[], required
    - `operation` union, required
      - object
        - `body` object, nullable, required
          - `credential_field` string
          - `media_type` string, required
        - `endpoint_id` string, required
        - `headers` object[], required
          - `name` string, required
          - `value` string, required
        - `interface_id` string, required
        - `kind` 'http', required
        - `method` 'GET' | 'POST' | 'PUT' | 'PATCH', required
        - `operation_id` string, required
        - `spec` object, nullable, required
          - `key_operations` object, nullable, required
            - `create` object, required
              - …
            - `revoke` object, required
              - …
          - `url` string, uri, required
        - `url` string, uri, required
      - object
        - `endpoint_id` string, required
        - `interface_id` string, required
        - `kind` 'mcp', required
        - `operation_id` string, required
        - `tool` string, required
      - object
        - `interface_id` string, required
        - `key_operations` object, nullable, required
          - `create` object, required
            - `method` 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE', required
            - `path` string, required
          - `revoke` object, required
            - `method` 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE', required
            - `path` string, required
        - `kind` 'spec', required
        - `method` 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE', required
        - `operation_id` string, required
        - `path` string, required
        - `spec_url` string, uri, required
    - `source_uris` string[], required
  - `offer_relations` object[], required
    - `offer_id` string, required
    - `offer_relation_proposal_id` string, required
    - `purpose` 'application_path' | 'redemption_path' | 'operating_path', required
    - `source_uris` string[], required
  - `participants` object[], required
    - `identity` union, required
      - object
        - `entity_id` string, required
        - `kind` 'entity_id', required
      - object
        - `kind` 'origin_uri', required
        - `uri` string, uri, required
    - `participant_id` string, required
    - `roles` string[], required
    - `source_uris` string[], required
  - `relations` object[], required
    - `from` object, required
      - `node_id` string, required
      - `node_kind` 'resource' | 'endpoint' | 'interface' | 'surface_exclusion', required
    - `kind` 'describes' | 'authenticates' | 'requires' | 'alternative_to' | 'precedes', required
    - `relation_id` string, required
    - `source_uris` string[], required
    - `to` object, required
      - `node_id` string, required
      - `node_kind` 'resource' | 'endpoint' | 'interface' | 'surface_exclusion', required
  - `resources` object[], required
    - `allowed_redirect_hosts` string[]
    - `operated_by_participant_id` string, required
    - `resource_id` string, required
    - `roles` string[], required
    - `source_uris` string[], required
    - `standard_bindings` object[], required
      - `namespace` string, required
      - `relation` 'declares' | 'describes' | 'implements' | 'uses', required
      - `version` string, required
    - `uri` string, uri, required
  - `scope` object
    - `job` object, required
      - `key` string, required
      - `name` string, required
    - `product` object, required
      - `key` string, required
      - `name` string, required
  - `scope_source_uris` string[], required
  - `subject` union
    - object
      - `kind` 'entity_id', required
      - `value` string, required
    - object
      - `kind` 'slug', required
      - `value` string, required
    - object
      - `kind` 'domain', required
      - `value` string, required
  - `subject_roles` string[], required
  - `surface_exclusions` object[], required
    - `exclusion_id` string, required
    - `rationale` string, required
    - `role` 'discovery' | 'terms' | 'eligibility' | 'pricing' | 'access' | 'checkout' | 'provisioning' | 'operations' | 'recovery' | 'authentication' | 'descriptor' | 'documentation' | 'policy' | 'status', required
    - `source_uris` string[], required

## Response `200`

Successful response.

- PrepareAgentReadinessDeclarationResponse200
  - `api_contract` 'sourcey.catalog-api/v1', required
  - `artifact_sha256` string, required
  - `data` union, required
    - object
      - `diagnostics` object[], required
        - `code` 'required' | 'invalid' | 'ambiguous_identity' | 'cross_entity_offer' | 'base_authoring_mismatch', required
        - `message` string, required
        - `path` string, starts_with, required
      - `status` 'invalid', required
    - object
      - `diagnostics` object[], required
        - `code` 'required' | 'invalid' | 'ambiguous_identity' | 'cross_entity_offer' | 'base_authoring_mismatch', required
        - `message` string, required
        - `path` string, starts_with, required
      - `status` 'identity_allocation_required', required
    - object
      - `base_release_id` string, required
      - `diagnostics` object[], required
        - `code` 'required' | 'invalid' | 'ambiguous_identity' | 'cross_entity_offer' | 'base_authoring_mismatch', required
        - `message` string, required
        - `path` string, starts_with, required
      - `entity_id` string, required
      - `entity_revision_digest` string, required
      - `status` 'incomplete', required
    - object
      - `base_release_id` string, required
      - `diagnostics` object[], required
        - `code` 'required' | 'invalid' | 'ambiguous_identity' | 'cross_entity_offer' | 'base_authoring_mismatch', required
        - `message` string, required
        - `path` string, starts_with, required
      - `entity_id` string
      - `entity_revision_digest` string
      - `status` 'conflict', required
    - object
      - `authoring_file` object, required
        - `content` string, required
        - `content_digest` string, required
        - `path` string, required
      - `base_release_id` string, required
      - `declaration_id` string, required
      - `diagnostics` object[], required
        - `code` 'required' | 'invalid' | 'ambiguous_identity' | 'cross_entity_offer' | 'base_authoring_mismatch', required
        - `message` string, required
        - `path` string, starts_with, required
      - `entity_id` string, required
      - `entity_revision_digest` string, required
      - `scope` object, required
        - `job` object, required
          - `key` string, required
          - `name` string, required
        - `product` object, required
          - `key` string, required
          - `name` string, required
      - `status` 'materialized', required
      - `subject_display` object, required
        - `name` string, required
        - `slug` string, required
      - `submission` object, required
        - `method` 'POST', required
        - `path` '/v1/submissions', required
        - `product` 'agent_readiness', required
  - `release_id` string, required

## Other responses

- `400`: Invalid request.
- `401`: HTTP 401 response.
- `403`: HTTP 403 response.
- `405`: HTTP 405 response.
- `429`: HTTP 429 response.
- `500`: HTTP 500 response.
- `503`: HTTP 503 response.

---

[API](https://skmtc.dev/sourcey/apis/sourcey-public-api.md) · [All operations](https://skmtc.dev/sourcey/apis/sourcey-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/sourcey/apis/sourcey-public-api/revisions/437166b51fa5?raw)
