openapi: 3.2.0 info: title: looot Provider Activation Bundles API version: 0.1.0 description: Discover, inspect, run, and pay for real (or fixture) provider operations through one bearer token. servers: - url: https://api.looot.ai description: Public API (default) - url: https://coset-gateway.onrender.com description: Legacy host -- still live, for tokens issued before the public domain existed - url: http://127.0.0.1:8787 description: Local development security: - bearerAuth: [] tags: - name: Provider Activation Bundles paths: /v1/provider-activation-bundles: get: summary: List immutable canonical disabled provider activation bundles responses: '200': description: Bundles remain planner-ineligible and non-executable '403': description: provider-packages:read scope required tags: - Provider Activation Bundles operationId: getV1ProviderActivationBundles x-operation-id-source: derived post: summary: Compile an independently approved current mapping into a canonical disabled… requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateProviderActivationBundle' responses: '200': description: Idempotent replay '201': description: Immutable disabled bundle '400': description: Review, revision, base package, or price-source gate failed '403': description: provider-packages:write scope required '404': description: Revision not found '409': description: Bundle drift tags: - Provider Activation Bundles operationId: postV1ProviderActivationBundles x-operation-id-source: derived /v1/provider-activation-bundles/{bundleId}: get: summary: Get one canonical disabled provider activation bundle responses: '200': description: Canonical provider, operation, version, price, evidence, auth and planner denial '403': description: provider-packages:read scope required '404': description: Bundle not found tags: - Provider Activation Bundles operationId: getV1ProviderActivationBundlesByBundleId x-operation-id-source: derived /v1/provider-activation-bundles/{bundleId}/readiness: get: summary: Get a deterministic non-executable activation-readiness checklist responses: '200': description: Explicit owner, evidence and target for every planner denial '403': description: provider-packages:read scope required '404': description: Bundle not found '409': description: Unclassified or contradictory blocker state tags: - Provider Activation Bundles operationId: getV1ProviderActivationBundlesByBundleIdReadiness x-operation-id-source: derived /v1/provider-activation-bundles/{bundleId}/evidence: get: summary: Get immutable evidence and independent decisions for current readiness blockers responses: '200': description: Evidence snapshot; activationReady remains false '403': description: provider-evidence:read scope required '404': description: Bundle not found '409': description: Bundle or report drift tags: - Provider Activation Bundles operationId: getV1ProviderActivationBundlesByBundleIdEvidence x-operation-id-source: derived post: summary: Submit content-addressed evidence for one exact readiness blocker requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SubmitProviderActivationEvidence' responses: '200': description: Idempotent replay '201': description: Immutable evidence submission '400': description: Wrong report, blocker or evidence kind '403': description: provider-evidence:submit scope required '404': description: Bundle not found '409': description: Submission conflict tags: - Provider Activation Bundles operationId: postV1ProviderActivationBundlesByBundleIdEvidence x-operation-id-source: derived components: schemas: CompatibilityEvidenceRef: type: object additionalProperties: false required: - url - digest - observedAt - kind properties: url: type: string format: uri pattern: ^https:// digest: type: string pattern: ^sha256:[a-f0-9]{64}$ observedAt: type: string format: date-time kind: enum: - official_docs - openapi - terms - pricing - authenticated_test - internal_review CreateProviderActivationBundle: type: object additionalProperties: false required: - revisionId properties: revisionId: type: string pattern: ^ppr_[a-f0-9]{32}$ SubmitProviderActivationEvidence: type: object additionalProperties: false required: - reportId - blockerCode - claim - evidenceRefs properties: reportId: type: string pattern: ^par_[a-f0-9]{32}$ blockerCode: enum: - rights_approval_required - adapter_required - authenticated_test_required - connection_required - driver_required - production_approval_required - price_currency_unsupported - price_evidence_required claim: type: string minLength: 1 maxLength: 2000 evidenceRefs: type: array minItems: 1 maxItems: 20 items: $ref: '#/components/schemas/CompatibilityEvidenceRef' securitySchemes: bearerAuth: type: http scheme: bearer