{
  "contract": "sourcey.site-record/v1alpha1",
  "release_id": "sha256:2fbbef898f76ba47f54ef0fdf7585060968f5e9f04fed731ced83efb3d376e94",
  "snapshot_id": "sha256:b26a8a5eb7be48e03c2bfcf5657c69ff3b1c055d42d37ba60214f516fa83f8c3",
  "artifact_sha256": "sha256:09d0e4cb56c1db3fa3ba012530cfe29c948b1374adb7435befa11ea100edf477",
  "data": {
    "entity_id": "ent_01kyh8fpe1t5zaes0e4fgj1p4w",
    "entity_slug": "attio",
    "profile": {
      "projection_contract": "sourcey.agent-readiness-projection/v1alpha1",
      "agent_readiness_profile_id": "arp_01m4t6hr9e7pat7pxha6rhw8d9",
      "entity_id": "ent_01kyh8fpe1t5zaes0e4fgj1p4w",
      "scope": {
        "product": {
          "key": "attio-crm",
          "name": "Attio CRM"
        },
        "job": {
          "key": "crm-contact-create",
          "name": "Create a contact"
        }
      },
      "catalog_binding": {
        "base_release_id": "sha256:c563337ec7a87b26becccec5e83ff70cccd68761fe267d29dfd706e1c4195e0c",
        "entity_revision_digest": "sha256:8727cb531936c7890ff82160fdaff52953e311e64a1c2d3b1637af9673eac755"
      },
      "declaration_revision_digest": "sha256:d4b8bd1517cae78102ea6eacd9b0ff3df9eef7a9fd1af9719807bb2c349982be",
      "declaration": {
        "declaration_id": "declaration_attio_attio_crm_crm_contact_create",
        "provenance": {
          "repository": "sourcey/agent-ready-services",
          "commit": "15650e398e764c3044457328bb77991748f7be89",
          "path": "entities/at/attio.yaml",
          "git_blob_oid": "837945d7b0b158bbb53250a74c707d8445f712cb",
          "blob_digest": "sha256:5e595ed951a50a4aa2be6b24a08a16ecc7bf79c4357084b2746ebd3befb6a38a"
        },
        "status": "community_declared"
      },
      "surface_catalog": {
        "participants": [
          {
            "participant_id": "attio",
            "roles": [
              "access_operator",
              "identity_provider",
              "operations_provider",
              "payment_provider",
              "provisioning_provider",
              "subject"
            ],
            "identity": {
              "entity_id": "ent_01kyh8fpe1t5zaes0e4fgj1p4w"
            }
          }
        ],
        "resources": [
          {
            "resource_id": "account-signup",
            "uri": "https://app.attio.com/welcome/sign-in",
            "roles": [
              "access"
            ],
            "operated_by_participant_id": "attio",
            "standard_bindings": []
          },
          {
            "resource_id": "api-reference",
            "uri": "https://docs.attio.com/rest-api/endpoint-reference/people/create-a-person-record",
            "roles": [
              "discovery",
              "documentation",
              "operations",
              "provisioning"
            ],
            "operated_by_participant_id": "attio",
            "standard_bindings": []
          },
          {
            "resource_id": "authentication",
            "uri": "https://docs.attio.com/rest-api/guides/authentication",
            "roles": [
              "authentication",
              "documentation"
            ],
            "operated_by_participant_id": "attio",
            "standard_bindings": []
          },
          {
            "resource_id": "mcp-documentation",
            "uri": "https://docs.attio.com/mcp/overview",
            "roles": [
              "documentation",
              "operations"
            ],
            "operated_by_participant_id": "attio",
            "standard_bindings": []
          },
          {
            "resource_id": "pricing",
            "uri": "https://attio.com/pricing",
            "roles": [
              "pricing"
            ],
            "operated_by_participant_id": "attio",
            "standard_bindings": []
          },
          {
            "resource_id": "service-terms",
            "uri": "https://attio.com/legal/services-agreement",
            "roles": [
              "terms"
            ],
            "operated_by_participant_id": "attio",
            "standard_bindings": []
          }
        ],
        "endpoints": [
          {
            "endpoint_id": "mcp-server",
            "uri": "https://mcp.attio.com/mcp",
            "transport": "http",
            "roles": [
              "service"
            ],
            "operated_by_participant_id": "attio",
            "standard_bindings": []
          },
          {
            "endpoint_id": "registration",
            "uri": "https://app.attio.com/welcome/sign-in",
            "transport": "http",
            "roles": [
              "registration"
            ],
            "operated_by_participant_id": "attio",
            "standard_bindings": []
          },
          {
            "endpoint_id": "service-api",
            "uri": "https://api.attio.com",
            "transport": "http",
            "roles": [
              "service"
            ],
            "operated_by_participant_id": "attio",
            "standard_bindings": []
          }
        ],
        "interfaces": [
          {
            "interface_id": "api-authentication",
            "modality": "network_api",
            "functions": [
              "authentication"
            ],
            "endpoint_ids": [],
            "resource_ids": [
              "authentication"
            ],
            "operated_by_participant_id": "attio",
            "standard_bindings": []
          },
          {
            "interface_id": "mcp-server",
            "modality": "tool_server",
            "functions": [
              "service_operation"
            ],
            "endpoint_ids": [
              "mcp-server"
            ],
            "resource_ids": [
              "mcp-documentation"
            ],
            "operated_by_participant_id": "attio",
            "standard_bindings": []
          },
          {
            "interface_id": "service-api",
            "modality": "network_api",
            "functions": [
              "service_operation"
            ],
            "endpoint_ids": [
              "service-api"
            ],
            "resource_ids": [
              "api-reference"
            ],
            "operated_by_participant_id": "attio",
            "standard_bindings": []
          }
        ],
        "relations": [
          {
            "relation_id": "authentication-authenticates-api",
            "kind": "authenticates",
            "from": {
              "node_kind": "interface",
              "node_id": "api-authentication"
            },
            "to": {
              "node_kind": "interface",
              "node_id": "service-api"
            }
          },
          {
            "relation_id": "documentation-describes-mcp",
            "kind": "describes",
            "from": {
              "node_kind": "resource",
              "node_id": "mcp-documentation"
            },
            "to": {
              "node_kind": "interface",
              "node_id": "mcp-server"
            }
          },
          {
            "relation_id": "reference-describes-api",
            "kind": "describes",
            "from": {
              "node_kind": "resource",
              "node_id": "api-reference"
            },
            "to": {
              "node_kind": "interface",
              "node_id": "service-api"
            }
          },
          {
            "relation_id": "signup-precedes-authentication",
            "kind": "precedes",
            "from": {
              "node_kind": "resource",
              "node_id": "account-signup"
            },
            "to": {
              "node_kind": "interface",
              "node_id": "api-authentication"
            }
          }
        ],
        "surface_exclusions": [
          {
            "exclusion_id": "free-job-no-checkout",
            "role": "checkout",
            "rationale": "Attio's Free plan needs no credit card and includes API and MCP server access."
          },
          {
            "exclusion_id": "separate-eligibility-resource",
            "role": "eligibility",
            "rationale": "Access conditions are published within the vendor's terms; no separate eligibility resource is declared."
          }
        ]
      },
      "lifecycle": "active",
      "effective_from": "2026-10-13T08:40:03.439Z",
      "revision_digest": "sha256:f7fe1f5a0579b00eb5c2c38d456f31a29f8386ab57efbf1724fa508b6a1fb549",
      "policy_digest": "sha256:b612172aad277b54461de84e006815126f2df566563954b02f4432a39cad89ac",
      "policy_version": "kind-2026-10-12.2",
      "policy_as_of": "2026-10-05T00:00:00Z",
      "job": {
        "job_id": "crm-contact-create",
        "job_digest": "sha256:d46253d06b98fbbdc64221cef2dac7b7b5276b0b8a33b28425e619e77fb0beec",
        "category": "crm",
        "name": "Create a contact",
        "statement": "Create a contact with a field set to the run's nonce, then read it back."
      },
      "interface_id": "service-api",
      "label": "probed",
      "label_run_at": null,
      "grade": {
        "letter": "B+",
        "statement": "A person signs up and hands over a key.",
        "steps": [
          {
            "step": "discover",
            "outcome": "machine",
            "timing": null
          },
          {
            "step": "authority",
            "outcome": "workaround",
            "timing": "setup"
          },
          {
            "step": "onboard",
            "outcome": "workaround",
            "timing": "setup"
          },
          {
            "step": "pay",
            "outcome": "not_applicable",
            "timing": null
          },
          {
            "step": "confirm",
            "outcome": "machine",
            "timing": null
          },
          {
            "step": "sustain",
            "outcome": "workaround",
            "timing": "setup"
          }
        ],
        "job": "reachable",
        "approvals": [],
        "workarounds": [
          {
            "step": "authority",
            "timing": "setup"
          },
          {
            "step": "onboard",
            "timing": "setup"
          },
          {
            "step": "sustain",
            "timing": "setup"
          }
        ]
      },
      "discovery": [
        {
          "fact": "oauth_authorization_server",
          "value": "https://attio.com/",
          "descriptor_url": "https://attio.com/.well-known/oauth-authorization-server",
          "attempt_digest": "sha256:bbe4eb9ad2a2aa3542164df9d53ad862f8534401060d3e46553c5138de92d5b6",
          "adapter": {
            "namespace": "rfc8414",
            "version": "1"
          }
        },
        {
          "fact": "agent_documentation",
          "value": "https://attio.com/llms.txt",
          "descriptor_url": "https://attio.com/llms.txt",
          "attempt_digest": "sha256:ee5a385cfb9f5af4deadce7ed3bbddd929d3e683e8ea19d1de5eaf7c9f3b6caa",
          "adapter": {
            "namespace": "llms.txt",
            "version": "1"
          }
        },
        {
          "fact": "openapi_server",
          "value": "https://api.attio.com/",
          "descriptor_url": "https://api.attio.com/openapi/api",
          "attempt_digest": "sha256:7c4425a97f8f807f404a756744741f525286940ac25d3be5e3649b26837a9d8f",
          "adapter": {
            "namespace": "openapi",
            "version": "3.1.0"
          }
        },
        {
          "fact": "oauth_protected_resource",
          "value": "https://mcp.attio.com/mcp",
          "descriptor_url": "https://mcp.attio.com/.well-known/oauth-protected-resource/mcp",
          "attempt_digest": "sha256:1a8eb80454a2f67f4b626b18871e3e605504dd42d5ab8710636b811c1286b978",
          "adapter": {
            "namespace": "rfc9728",
            "version": "1"
          }
        },
        {
          "fact": "oauth_authorization_server",
          "value": "https://app.attio.com/",
          "descriptor_url": "https://mcp.attio.com/.well-known/oauth-protected-resource/mcp",
          "attempt_digest": "sha256:1a8eb80454a2f67f4b626b18871e3e605504dd42d5ab8710636b811c1286b978",
          "adapter": {
            "namespace": "rfc9728",
            "version": "1"
          }
        },
        {
          "fact": "oauth_authorization_server",
          "value": "https://mcp.attio.com/",
          "descriptor_url": "https://mcp.attio.com/.well-known/oauth-authorization-server",
          "attempt_digest": "sha256:c698c78aa9d1d8a86cd5cf6f35512fd00108897205b3872b8ba956bc2f5dba2f",
          "adapter": {
            "namespace": "rfc8414",
            "version": "1"
          }
        },
        {
          "fact": "oauth_protected_resource",
          "value": "https://mcp.attio.com/mcp",
          "descriptor_url": "https://mcp.attio.com/.well-known/oauth-protected-resource",
          "attempt_digest": "sha256:bc631cddac3464ac82161ac6f13a247a8c46911e5ee3f16f6770f5d46139652b",
          "adapter": {
            "namespace": "rfc9728",
            "version": "1"
          }
        },
        {
          "fact": "oauth_authorization_server",
          "value": "https://app.attio.com/",
          "descriptor_url": "https://mcp.attio.com/.well-known/oauth-protected-resource",
          "attempt_digest": "sha256:bc631cddac3464ac82161ac6f13a247a8c46911e5ee3f16f6770f5d46139652b",
          "adapter": {
            "namespace": "rfc9728",
            "version": "1"
          }
        },
        {
          "fact": "agent_documentation",
          "value": "https://docs.attio.com/llms.txt",
          "descriptor_url": "https://docs.attio.com/llms.txt",
          "attempt_digest": "sha256:74a046887f51cbf938e54b942be5d378ee83703411a73b587296ede1b968a944",
          "adapter": {
            "namespace": "llms.txt",
            "version": "1"
          }
        },
        {
          "fact": "documentation_route",
          "value": "https://api.attio.com/",
          "descriptor_url": "https://docs.attio.com/rest-api/endpoint-reference/openapi",
          "attempt_digest": "sha256:b55a5cb91ebe05167298e7af958e3352a5c35da4c000cba0a8585b292b18b8ac",
          "adapter": {
            "namespace": "llms.txt",
            "version": "route"
          }
        },
        {
          "fact": "documentation_route",
          "value": "https://mcp.attio.com/",
          "descriptor_url": "https://attio.com/llms.txt",
          "attempt_digest": "sha256:ee5a385cfb9f5af4deadce7ed3bbddd929d3e683e8ea19d1de5eaf7c9f3b6caa",
          "adapter": {
            "namespace": "llms.txt",
            "version": "route"
          }
        }
      ],
      "discovery_run_at": null,
      "run": {
        "started_at": "2026-10-13T08:38:47.347Z",
        "finished_at": "2026-10-13T08:40:03.439Z",
        "discovery_reads": 44,
        "exchanges": [
          {
            "purpose": "probe_operation",
            "role": "request",
            "method": "POST",
            "url": "https://api.attio.com/v2/objects/people/records",
            "started_at": "2026-10-13T08:39:26.706Z",
            "finished_at": "2026-10-13T08:39:26.824Z",
            "response": {
              "status": 401,
              "media_type": "application/json",
              "content_bytes": 205,
              "content_digest": "sha256:bc58ed46e2b8cc02cd7509b6d0cf80095a606fd180f313959d234a8f36672a0d"
            },
            "transport_error": null,
            "exchange_digest": "sha256:d1521142767b2c1ba2ec7b39986e767d451c2f38bee7d4eeb05237e58a61d8b8"
          },
          {
            "purpose": "probe_resource_metadata",
            "role": "request",
            "method": "GET",
            "url": "https://api.attio.com/.well-known/oauth-protected-resource/v2/objects/people/records",
            "started_at": "2026-10-13T08:39:31.429Z",
            "finished_at": "2026-10-13T08:39:31.548Z",
            "response": {
              "status": 404,
              "media_type": "text/plain",
              "content_bytes": 9,
              "content_digest": "sha256:0019dfc4b32d63c1392aa264aed2253c1e0c2fb09216f8e2cc269bbfb8bb49b5"
            },
            "transport_error": null,
            "exchange_digest": "sha256:cd3015bd6d803e423f33c135456e342ddfe95a869f2762d6f126133a9d81d8c7"
          },
          {
            "purpose": "probe_resource_metadata",
            "role": "request",
            "method": "GET",
            "url": "https://api.attio.com/.well-known/oauth-protected-resource",
            "started_at": "2026-10-13T08:39:35.434Z",
            "finished_at": "2026-10-13T08:39:35.554Z",
            "response": {
              "status": 404,
              "media_type": "text/plain",
              "content_bytes": 9,
              "content_digest": "sha256:0019dfc4b32d63c1392aa264aed2253c1e0c2fb09216f8e2cc269bbfb8bb49b5"
            },
            "transport_error": null,
            "exchange_digest": "sha256:3e3c60fc0e055cb7e3b7afe46d290335bce1b7333819bddc46bcae3000837971"
          },
          {
            "purpose": "probe_operation",
            "role": "session_opening",
            "method": "POST",
            "url": "https://mcp.attio.com/mcp",
            "started_at": "2026-10-13T08:39:38.653Z",
            "finished_at": "2026-10-13T08:39:38.807Z",
            "response": {
              "status": 401,
              "media_type": "application/json",
              "content_bytes": 131,
              "content_digest": "sha256:ce38f50b84c28af9c12365edc0959073c0a41d3e5c68f0ad02ea4a688aed899a"
            },
            "transport_error": null,
            "exchange_digest": "sha256:8fe3f67f66578668beda8ad97a70d2ee6b8481c1f4b8cea011678524b1197082"
          },
          {
            "purpose": "probe_resource_metadata",
            "role": "request",
            "method": "GET",
            "url": "https://mcp.attio.com/.well-known/oauth-protected-resource",
            "started_at": "2026-10-13T08:39:42.749Z",
            "finished_at": "2026-10-13T08:39:42.877Z",
            "response": {
              "status": 200,
              "media_type": "application/json",
              "content_bytes": 255,
              "content_digest": "sha256:dc0b68b993dca8eaa73db41abb54b9f0518b0b12d88eeab926e97e38c6f7f083"
            },
            "transport_error": null,
            "exchange_digest": "sha256:3d31c68462d399134236c4e48af9265ca347345dcf27f5f9a7b4d79e5f3523ae"
          },
          {
            "purpose": "probe_authorization_server",
            "role": "request",
            "method": "GET",
            "url": "https://app.attio.com/.well-known/oauth-authorization-server",
            "started_at": "2026-10-13T08:39:46.647Z",
            "finished_at": "2026-10-13T08:39:46.773Z",
            "response": {
              "status": 200,
              "media_type": "application/json",
              "content_bytes": 758,
              "content_digest": "sha256:7fdfa29c878590f2a502bb9f35d22abf615bf3bf9781ef5f25c03ac766e45118"
            },
            "transport_error": null,
            "exchange_digest": "sha256:3033b1476ffd4e30d27e29ac707076959751b85391fd7bbb237771c233f48d40"
          },
          {
            "purpose": "probe_client_registration",
            "role": "request",
            "method": "POST",
            "url": "https://app.attio.com/oauth/register",
            "started_at": "2026-10-13T08:39:50.759Z",
            "finished_at": "2026-10-13T08:39:50.901Z",
            "response": {
              "status": 201,
              "media_type": "application/json",
              "content_bytes": 308,
              "content_digest": "sha256:acf4aed5862275e6ba6b3e5d6b4a7968a4b78910d8cdd3cc76c4369709e3bb41"
            },
            "transport_error": null,
            "exchange_digest": "sha256:232620c7ce8554e56d12b3720998f60b1cf40980e00584aafe18e952f59f6458"
          },
          {
            "purpose": "probe_authorization",
            "role": "request",
            "method": "GET",
            "url": "https://app.attio.com/oidc/authorize?response_type=code&client_id=6843ffb6-a2a1-4a8d-a5fd-e1db8bd297e6&redirect_uri=https%3A%2F%2Fapi.sourcey.com%2F.well-known%2Fagent-readiness%2Fcallback&state=460741e3302ad3896a4893534013ecd1&code_challenge=3mTNL1ealcj5E6eKnLlsn5mUKYb76YlkI5Q3yC3mLOE&code_challenge_method=S256&resource=https%3A%2F%2Fmcp.attio.com%2Fmcp&scope=openid+offline_access+mcp",
            "started_at": "2026-10-13T08:39:54.932Z",
            "finished_at": "2026-10-13T08:39:55.093Z",
            "response": {
              "status": 302,
              "media_type": "text/html",
              "content_bytes": 0,
              "content_digest": "sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
            },
            "transport_error": null,
            "exchange_digest": "sha256:fb8a73debe86e5e15fc789a0c8a1024d8b930e42e3141ab01fe8f182b8dc50ed"
          },
          {
            "purpose": "probe_page",
            "role": "request",
            "method": "GET",
            "url": "https://app.attio.com/welcome/sign-in",
            "started_at": "2026-10-13T08:39:58.974Z",
            "finished_at": "2026-10-13T08:39:59.110Z",
            "response": {
              "status": 200,
              "media_type": "text/html",
              "content_bytes": 12841,
              "content_digest": "sha256:994e8a4e2208292263855dbda6ab047644ee38bb055918368f1724f4c0569774"
            },
            "transport_error": null,
            "exchange_digest": "sha256:7fdca6d7b82eba6f2c4ab1ab4b679b87ec14a3368ce0e3e6cf2ba5b287a586cb"
          }
        ],
        "assertions": []
      },
      "last_run_at": "2026-10-13T08:40:03.439Z",
      "publication": {
        "visibility": "discoverable",
        "reasons": []
      },
      "provenance": {
        "dispute": "none",
        "vendor_attestation": {
          "status": "none"
        },
        "basis_event_ids": []
      },
      "canonical_url": "https://sourcey.com/c/attio/agent-readiness/attio-crm/crm-contact-create",
      "projection_digest": "sha256:b70b1bcef92bbed5a43128f9929c589e0b97167b957ba205af69654ffc6ff03a"
    }
  }
}
