{"openapi":"3.1.0","info":{"title":"Produtik Agent API","version":"1.0.0","description":"Public, read-only discovery endpoints for agents integrating with Produtik. Use the /api/v1/ URL prefix for stable integrations. The unversioned /api/agent/ aliases remain available for compatibility and are deprecated. Private producer, event, customer, payment, refund, and dashboard data requires authenticated producer scope.","contact":{"name":"Produtik","email":"hola@produtik.com","url":"https://produtik.com/contacto"}},"servers":[{"url":"https://produtik.com","description":"Produtik public API"}],"externalDocs":{"description":"Produtik developer documentation","url":"https://docs.produtik.com"},"tags":[{"name":"Agent discovery","description":"Safe public metadata for agents and integrations."}],"x-api-versioning":{"strategy":"path","currentVersion":"v1","stableBasePath":"/api/v1","deprecationPolicy":"Deprecated versions receive Deprecation and Sunset headers and remain supported until the published sunset date. Follow the deprecation link and re-check this document before upgrading."},"x-rate-limit":{"policy":"60 requests per minute per client; clients should honor RateLimit-Limit, RateLimit-Remaining, RateLimit-Reset, and Retry-After on 429 responses.","headers":["RateLimit-Limit","RateLimit-Remaining","RateLimit-Reset","Retry-After"]},"paths":{"/api/v1/agent/health":{"get":{"operationId":"getAgentHealth","summary":"Check public API availability","description":"Returns a small, unauthenticated health document without account or infrastructure secrets.","tags":["Agent discovery"],"parameters":[{"name":"X-API-Version","in":"header","required":false,"description":"Optional compatibility header. The versioned URL is authoritative and currently uses version 1.","schema":{"type":"string","enum":["1"],"default":"1"}}],"responses":{"200":{"description":"The public agent surface is available.","content":{"application/json":{"schema":{"type":"object","required":["status","service","timestamp"],"properties":{"status":{"type":"string","const":"ok"},"service":{"type":"string","const":"produtik-agent-api"},"timestamp":{"type":"string","format":"date-time"}}}}}},"400":{"description":"The request is invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Authentication is required for a private operation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"The requested API resource does not exist.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"The rate limit was exceeded. Retry after the advertised delay.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"The service could not complete the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/api/v1/agent/capabilities":{"get":{"operationId":"getAgentCapabilities","summary":"Discover Produtik capabilities","description":"Describes product jobs that agents can help with and links to public developer surfaces.","tags":["Agent discovery"],"parameters":[{"name":"X-API-Version","in":"header","required":false,"description":"Optional compatibility header. The versioned URL is authoritative and currently uses version 1.","schema":{"type":"string","enum":["1"],"default":"1"}}],"responses":{"200":{"description":"Public capability and integration links.","content":{"application/json":{"schema":{"type":"object","required":["name","description","useCases","links","authentication"],"properties":{"name":{"type":"string"},"description":{"type":"string"},"useCases":{"type":"array","items":{"type":"string"},"minItems":1},"links":{"type":"object","additionalProperties":{"type":"string","format":"uri"}},"authentication":{"type":"object","additionalProperties":{"type":"string"}}}}}}},"400":{"description":"The request is invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Authentication is required for a private operation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"The requested API resource does not exist.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"The rate limit was exceeded. Retry after the advertised delay.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"The service could not complete the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}},"components":{"schemas":{"HealthResponse":{"type":"object","required":["status","service","timestamp"],"properties":{"status":{"type":"string","const":"ok"},"service":{"type":"string","const":"produtik-agent-api"},"timestamp":{"type":"string","format":"date-time"}}},"CapabilitiesResponse":{"type":"object","required":["name","description","useCases","links","authentication"],"properties":{"name":{"type":"string"},"description":{"type":"string"},"useCases":{"type":"array","items":{"type":"string"},"minItems":1},"links":{"type":"object","required":["docs","openapi","llms","mcp"],"additionalProperties":{"type":"string","format":"uri"}},"authentication":{"type":"object","required":["privateData","publicDiscovery"],"additionalProperties":{"type":"string"}}}},"ErrorResponse":{"type":"object","required":["error","status"],"properties":{"error":{"type":"object","required":["code","message","resolution"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable explanation."},"resolution":{"type":"string","description":"Action an agent can take to recover."}}},"status":{"type":"integer","minimum":400,"maximum":599},"path":{"type":"string"}}}}}}