{
  "api_contract": "sourcey.catalog-api/v1",
  "release_id": "sha256:1042b2f7b6130b564b0059e00560960c50db2d7578dfa5178d401e5d14d9b11f",
  "artifact_sha256": "sha256:a695609a4d6872bd447e3125d912e7f84e605d0f064df0b08e62a9f24d9d2e80",
  "data": {
    "revision_contract": "sourcey.agent-readiness-revision/v1alpha1",
    "agent_readiness_profile_id": "arp_01kzf0m4xn2p7wd9g3a5rt8zq6",
    "entity_id": "ent_01kyh8fpe5dk9hex187x4g03fn",
    "scope": {
      "product": {
        "key": "vercel-rest-api",
        "name": "Vercel REST API"
      },
      "funnel": {
        "key": "deployment-operations",
        "name": "Deployment operations"
      }
    },
    "catalog_binding": {
      "base_release_id": "sha256:5082ec07047a2324648f569d234cc64342ce2707b2f3d77fde8fc06af517cee6",
      "entity_revision_digest": "sha256:2ca7db4f429b3bb813bb1ac6d59c8cb5213e3c16a9096dfaa1455909f7b73e13"
    },
    "declaration_revision_digest": "sha256:4b4e8a8ae478a2b10c8900ecf48d1d72ae4beeaaca7f871cf536347067a06ce5",
    "declaration": {
      "declaration_id": "declaration_vercel_api_deployment_operations",
      "provenance": {
        "repository": "sourcey/agent-ready-services",
        "commit": "00f00edd170194cc1cf3081b97b218474537ffdb",
        "path": "vendors/ve/vercel.yaml",
        "git_blob_oid": "20fb7eb45616d36c394b32af06c6ba62937ea4c4",
        "blob_digest": "sha256:850bd6411c37b6b4c1bffe8b1683090a8c715fdd2293bf0ab4d92a41787e902a"
      },
      "status": "community_declared"
    },
    "lifecycle": "active",
    "effective_from": "2026-08-08T02:07:16.689Z",
    "signals": [
      {
        "stage": "evaluate",
        "signal_code": "decidable_eligibility",
        "value": "yes",
        "observed_at": "2026-08-07T21:15:15.138Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "service-terms"
          }
        ],
        "assessment_method": {
          "name": "http",
          "version": "1",
          "method_digest": "sha256:2d2f445064222c234cbaf541a627226a2c4be06a90e226b98a4389cb49e2d66b"
        },
        "note": "Vercel's Terms of Service explicitly specify public eligibility criteria, including an age requirement of at least 16 years and mandatory valid account information during sign-up."
      },
      {
        "stage": "evaluate",
        "signal_code": "machine_discovery",
        "value": "yes",
        "observed_at": "2026-08-07T21:15:16.264Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "api-reference"
          }
        ],
        "assessment_method": {
          "name": "http",
          "version": "1",
          "method_digest": "sha256:2d2f445064222c234cbaf541a627226a2c4be06a90e226b98a4389cb49e2d66b"
        },
        "note": "The Vercel REST API documentation and its deployment endpoints are fully discoverable and documented at the public REST API entrypoint."
      },
      {
        "stage": "evaluate",
        "signal_code": "readable_pricing",
        "value": "yes",
        "observed_at": "2026-08-07T21:15:17.125Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "pricing"
          }
        ],
        "assessment_method": {
          "name": "http",
          "version": "1",
          "method_digest": "sha256:2d2f445064222c234cbaf541a627226a2c4be06a90e226b98a4389cb49e2d66b"
        },
        "note": "Pricing details across Hobby ($0/mo), Pro ($20/mo), and Enterprise plans are explicitly published and machine-readable on the Vercel pricing page."
      },
      {
        "stage": "evaluate",
        "signal_code": "structured_terms",
        "value": "partial",
        "observed_at": "2026-08-07T21:15:15.138Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "service-terms"
          }
        ],
        "assessment_method": {
          "name": "http",
          "version": "1",
          "method_digest": "sha256:2d2f445064222c234cbaf541a627226a2c4be06a90e226b98a4389cb49e2d66b"
        },
        "negative_coverage": {
          "kind": "complete-response-inspection",
          "scope": "exact-resource",
          "covered_surfaces": [
            {
              "node_kind": "resource",
              "node_id": "service-terms"
            }
          ]
        },
        "note": "Vercel's Terms of Service are available as readable HTML web pages but are not published as a dedicated structured data format."
      },
      {
        "stage": "sign_up",
        "signal_code": "captcha_free",
        "value": "unknown",
        "observed_at": "2026-08-07T21:15:29.179Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "account-signup"
          }
        ],
        "assessment_method": {
          "name": "headless",
          "version": "1",
          "method_digest": "sha256:5c58a6d3f59d1910064324a215209f16f177b8021442dcbf1465f4c3ccd78ed1"
        },
        "note": "The headless rendering of the Vercel signup page encountered an error page, so the presence or absence of a CAPTCHA on the signup flow could not be verified from the captured DOM text."
      },
      {
        "stage": "sign_up",
        "signal_code": "machine_operable_form",
        "value": "no",
        "observed_at": "2026-08-07T21:15:29.179Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "account-signup"
          }
        ],
        "assessment_method": {
          "name": "headless",
          "version": "1",
          "method_digest": "sha256:5c58a6d3f59d1910064324a215209f16f177b8021442dcbf1465f4c3ccd78ed1"
        },
        "negative_coverage": {
          "kind": "bounded-rendered-flow-inspection",
          "scope": "tested-surfaces",
          "covered_surfaces": [
            {
              "node_kind": "resource",
              "node_id": "account-signup"
            }
          ]
        },
        "note": "The headless capture of the signup page failed to render controls and displayed 'Something went wrong', preventing machine operation."
      },
      {
        "stage": "sign_up",
        "signal_code": "phone_verification_free",
        "value": "unknown",
        "observed_at": "2026-08-07T21:15:29.179Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "account-signup"
          }
        ],
        "assessment_method": {
          "name": "headless",
          "version": "1",
          "method_digest": "sha256:5c58a6d3f59d1910064324a215209f16f177b8021442dcbf1465f4c3ccd78ed1"
        },
        "note": "Because the headless signup render failed with an error, whether phone verification is required during registration cannot be determined."
      },
      {
        "stage": "sign_up",
        "signal_code": "stable_entrypoint",
        "value": "yes",
        "observed_at": "2026-08-07T21:15:51.933Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "account-signup"
          }
        ],
        "assessment_method": {
          "name": "http",
          "version": "1",
          "method_digest": "sha256:2d2f445064222c234cbaf541a627226a2c4be06a90e226b98a4389cb49e2d66b"
        },
        "note": "The signup HTTP entrypoint at https://vercel.com/signup renders successfully and presents login and signup options including email and social providers."
      },
      {
        "stage": "sign_up",
        "signal_code": "supported_identity_flow",
        "value": "yes",
        "observed_at": "2026-08-07T21:15:50.537Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "access-tokens"
          }
        ],
        "assessment_method": {
          "name": "headless",
          "version": "1",
          "method_digest": "sha256:5c58a6d3f59d1910064324a215209f16f177b8021442dcbf1465f4c3ccd78ed1"
        },
        "note": "Vercel documents a supported identity flow using API access tokens created under account settings, with support for scoping access to personal accounts or specific teams and passing the token as a Bearer header."
      },
      {
        "stage": "pay",
        "signal_code": "explicit_price",
        "value": "yes",
        "observed_at": "2026-08-07T21:15:17.125Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "pricing"
          }
        ],
        "assessment_method": {
          "name": "http",
          "version": "1",
          "method_digest": "sha256:2d2f445064222c234cbaf541a627226a2c4be06a90e226b98a4389cb49e2d66b"
        },
        "note": "Vercel explicitly details plan pricing on its pricing page, including a $0 Hobby plan, $20/month Pro plan, and usage-based component pricing."
      },
      {
        "stage": "pay",
        "signal_code": "machine_operable_checkout",
        "value": "unknown",
        "observed_at": "2026-08-07T21:15:29.179Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "account-signup"
          }
        ],
        "assessment_method": {
          "name": "headless",
          "version": "1",
          "method_digest": "sha256:5c58a6d3f59d1910064324a215209f16f177b8021442dcbf1465f4c3ccd78ed1"
        },
        "note": "The signup page rendered an error during headless testing, preventing observation of machine-operable checkout capabilities."
      },
      {
        "stage": "pay",
        "signal_code": "sales_intervention_free",
        "value": "unknown",
        "observed_at": "2026-08-07T21:15:29.179Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "account-signup"
          }
        ],
        "assessment_method": {
          "name": "headless",
          "version": "1",
          "method_digest": "sha256:5c58a6d3f59d1910064324a215209f16f177b8021442dcbf1465f4c3ccd78ed1"
        },
        "note": "The signup page produced an error during headless execution, leaving sales intervention requirements unverified in the tested flow."
      },
      {
        "stage": "pay",
        "signal_code": "supported_payment_rail",
        "value": "unknown",
        "observed_at": "2026-08-07T21:15:29.179Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "account-signup"
          }
        ],
        "assessment_method": {
          "name": "headless",
          "version": "1",
          "method_digest": "sha256:5c58a6d3f59d1910064324a215209f16f177b8021442dcbf1465f4c3ccd78ed1"
        },
        "note": "Headless testing of the signup route encountered an error, preventing verification of supported payment rails."
      },
      {
        "stage": "provision",
        "signal_code": "automatic_activation",
        "value": "yes",
        "observed_at": "2026-08-07T21:15:41.091Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "deployment-operations"
          }
        ],
        "assessment_method": {
          "name": "headless",
          "version": "1",
          "method_digest": "sha256:5c58a6d3f59d1910064324a215209f16f177b8021442dcbf1465f4c3ccd78ed1"
        },
        "note": "Calling the POST /v13/deployments endpoint immediately creates and activates a new deployment resource, transitioning automatically through QUEUED, INITIALIZING, and BUILDING to READY or ERROR."
      },
      {
        "stage": "provision",
        "signal_code": "bounded_delay",
        "value": "unknown",
        "observed_at": "2026-08-07T21:15:19.841Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "deployment-operations"
          }
        ],
        "assessment_method": {
          "name": "http",
          "version": "1",
          "method_digest": "sha256:2d2f445064222c234cbaf541a627226a2c4be06a90e226b98a4389cb49e2d66b"
        },
        "note": "The REST API documentation describes the build state lifecycle but does not provide a specific, documented bound or SLA for provisioning completion time."
      },
      {
        "stage": "provision",
        "signal_code": "credential_delivery",
        "value": "yes",
        "observed_at": "2026-08-07T21:15:50.537Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "access-tokens"
          }
        ],
        "assessment_method": {
          "name": "headless",
          "version": "1",
          "method_digest": "sha256:5c58a6d3f59d1910064324a215209f16f177b8021442dcbf1465f4c3ccd78ed1"
        },
        "note": "Vercel API Access Tokens can be created and scoped within Account Settings and used as Bearer tokens in the Authorization header for API requests."
      },
      {
        "stage": "provision",
        "signal_code": "machine_readable_status",
        "value": "yes",
        "observed_at": "2026-08-07T21:15:19.841Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "deployment-operations"
          }
        ],
        "assessment_method": {
          "name": "http",
          "version": "1",
          "method_digest": "sha256:2d2f445064222c234cbaf541a627226a2c4be06a90e226b98a4389cb49e2d66b"
        },
        "note": "The API response includes a machine-readable `readyState` field indicating the deployment state along with structured error codes and fields."
      },
      {
        "stage": "operate",
        "signal_code": "api_tool_access",
        "value": "yes",
        "observed_at": "2026-08-07T21:15:16.264Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "api-reference"
          }
        ],
        "assessment_method": {
          "name": "http",
          "version": "1",
          "method_digest": "sha256:2d2f445064222c234cbaf541a627226a2c4be06a90e226b98a4389cb49e2d66b"
        },
        "note": "Vercel REST API provides a fully documented direct HTTP REST service and SDK interface under api.vercel.com for managing deployments and project resources programmatically."
      },
      {
        "stage": "operate",
        "signal_code": "delegated_recovery",
        "value": "partial",
        "observed_at": "2026-08-07T21:15:18.374Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "api-errors"
          }
        ],
        "assessment_method": {
          "name": "http",
          "version": "1",
          "method_digest": "sha256:2d2f445064222c234cbaf541a627226a2c4be06a90e226b98a4389cb49e2d66b"
        },
        "negative_coverage": {
          "kind": "complete-response-inspection",
          "scope": "exact-resource",
          "covered_surfaces": [
            {
              "node_kind": "resource",
              "node_id": "api-errors"
            }
          ]
        },
        "note": "Deployment operations include recovery endpoints such as deployment cancellation via REST API, but complex failure paths like domain purchase additions require contacting support."
      },
      {
        "stage": "operate",
        "signal_code": "documented_limits_errors",
        "value": "yes",
        "observed_at": "2026-08-07T21:15:19.841Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "deployment-operations"
          }
        ],
        "assessment_method": {
          "name": "http",
          "version": "1",
          "method_digest": "sha256:2d2f445064222c234cbaf541a627226a2c4be06a90e226b98a4389cb49e2d66b"
        },
        "note": "Vercel REST API documents specific error structures, HTTP error codes, rate-limit response headers, and deployment limits across endpoints."
      },
      {
        "stage": "operate",
        "signal_code": "usable_authentication",
        "value": "yes",
        "observed_at": "2026-08-07T21:15:21.376Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "access-tokens"
          }
        ],
        "assessment_method": {
          "name": "http",
          "version": "1",
          "method_digest": "sha256:2d2f445064222c234cbaf541a627226a2c4be06a90e226b98a4389cb49e2d66b"
        },
        "note": "Vercel Access Tokens are created in account settings with support for team scoping and can be passed directly via standard HTTP Authorization Bearer headers."
      }
    ],
    "revision_digest": "sha256:362bb4b1cb9969420eff5732182d92192820b7334f2d5d70519f267a15917474"
  }
}
