{"openapi":"3.1.0","info":{"title":"BaseCite Stable AI Context API","version":"v1-phase28","summary":"Bounded API for customer-submitted/unverified AI-readable context.","description":"This API exposes controlled, bounded AI context only. It does not verify truth, companies, sources, legal authority, rankings, certification, endorsements, or AI/search adoption."},"servers":[{"url":"https://api.basecite.com"}],"paths":{"/api/v1/ai/capabilities":{"get":{"summary":"Describe BaseCite AI-readable surfaces and boundaries.","responses":{"200":{"description":"Capability metadata"}}}},"/portal/config":{"get":{"summary":"Return customer and Solution Company portal route/config metadata.","responses":{"200":{"description":"Portal config"}}}},"/admin/tenant-keys/policy":{"get":{"summary":"Return tenant-scoped credential issuance policy metadata.","responses":{"200":{"description":"Tenant credential policy metadata only"}}}},"/admin/tenant-keys/issue":{"post":{"summary":"Issue an HMAC-signed tenant-scoped beta credential for one org_id and role.","responses":{"201":{"description":"Tenant token returned once to admin caller"},"400":{"description":"Invalid tenant credential request"}}}},"/api/v1/ai/access-policy":{"get":{"summary":"Return AI/MCP anti-scraping and access policy metadata.","responses":{"200":{"description":"AI access policy"}}}},"/api/v1/organizations/{org_id}/customer-uploads":{"post":{"summary":"Accept customer or solution-company submitted artifacts with provenance and non-evaluation labels.","responses":{"201":{"description":"Upload accepted as non-evaluated provenance record"},"400":{"description":"Invalid upload or forbidden verification claim"},"403":{"description":"Workspace access boundary blocks customer canonical write"}}}},"/api/v1/organizations/{org_id}/customer-uploads/{upload_id}/origin-cairn-review":{"post":{"summary":"Attach an optional OriginCairn review reference without changing original provenance.","responses":{"200":{"description":"Reference attached; evaluation remains not_evaluated"},"400":{"description":"Invalid or overclaiming reference"}}}},"/api/v1/organizations/{org_id}/ai-context/{upload_id}":{"get":{"summary":"Return bounded AI context for one upload when visibility allows.","security":[{"aiReaderApiKey":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"upload_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Bounded customer-submitted/unverified AI context"},"401":{"description":"AI reader API key required"},"403":{"description":"Visibility tier does not allow AI context"},"404":{"description":"Upload not found"}}}}},"components":{"securitySchemes":{"aiReaderApiKey":{"type":"apiKey","in":"header","name":"x-api-key"}}},"x-basecite-boundary":"customer_submitted_unverified_private_beta","x-basecite-public-downloadable":false,"x-basecite-bulk-export":false,"x-basecite-truth-verification-claim":false,"x-basecite-phase32-solution-company-upload":true,"x-basecite-phase33-self-documenting-status-sync":true,"x-basecite-phase34-portal-ux":true,"x-basecite-phase35-private-object-storage-boundary":true,"x-basecite-phase36-ai-mcp-anti-scraping-access-policy":true,"x-basecite-phase37-tenant-scoped-credentials":true}