{
  "openapi": "3.1.1",
  "info": {
    "title": "Podcli Agent Discovery API",
    "version": "1.0.0",
    "description": "Hosted discovery endpoints for Podcli. Podcli's media-processing CLI and MCP server run locally on the user's computer; this API does not accept media uploads.",
    "x-api-versioning": { "strategy": "URL path", "currentVersion": "v1", "policy": "New backwards-compatible fields may be added to v1. Breaking changes use a new /api/vN/ path. Podcli will send Deprecation and Sunset headers for a deprecated version at least 180 days before removal." }
  },
  "servers": [{ "url": "https://podcli.com/api/v1", "description": "Podcli Agent Discovery API v1" }],
  "paths": {
    "/agent-info": {
      "get": {
        "operationId": "getPodcliAgentInfo",
        "summary": "Get Podcli agent integration information",
        "description": "Returns documentation links and the exact local stdio MCP command for Podcli.",
        "responses": {
          "200": { "description": "Agent discovery information", "headers": { "API-Version": { "$ref": "#/components/headers/ApiVersion" }, "RateLimit-Limit": { "$ref": "#/components/headers/RateLimitLimit" }, "RateLimit-Remaining": { "$ref": "#/components/headers/RateLimitRemaining" }, "RateLimit-Reset": { "$ref": "#/components/headers/RateLimitReset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgentInfo" } } } },
          "429": { "$ref": "#/components/responses/RateLimited" },
          "404": { "$ref": "#/components/responses/NotFound" }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AgentInfo": {
        "type": "object",
        "required": ["product", "description", "resources", "mcp"],
        "properties": {
          "product": { "type": "string", "example": "Podcli" },
          "description": { "type": "string" },
          "resources": { "type": "object", "additionalProperties": { "type": "string", "format": "uri" } },
          "mcp": { "type": "object", "required": ["transport", "command", "args", "note"], "properties": { "transport": { "type": "string", "enum": ["stdio"] }, "command": { "type": "string", "example": "podcli" }, "args": { "type": "array", "items": { "type": "string" } }, "note": { "type": "string" } } }
        }
      },
      "Error": {
        "type": "object",
        "required": ["error"],
        "properties": { "error": { "type": "object", "required": ["code", "message", "resolution"], "properties": { "code": { "type": "string", "example": "RESOURCE_NOT_FOUND" }, "message": { "type": "string" }, "resolution": { "type": "string" } } } }
      }
    },
    "headers": { "ApiVersion": { "description": "The API version that processed the request.", "schema": { "type": "string", "example": "1" } }, "RateLimitLimit": { "description": "Maximum requests permitted in the current 60-second window.", "schema": { "type": "integer", "example": 100 } }, "RateLimitRemaining": { "description": "Requests remaining in the current window.", "schema": { "type": "integer", "example": 99 } }, "RateLimitReset": { "description": "Seconds until the current rate-limit window resets.", "schema": { "type": "integer", "example": 60 } } },
    "responses": { "NotFound": { "description": "The requested API resource does not exist.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "RateLimited": { "description": "The rate limit has been exceeded.", "headers": { "Retry-After": { "description": "Seconds to wait before retrying.", "schema": { "type": "integer", "example": 60 } }, "RateLimit-Limit": { "$ref": "#/components/headers/RateLimitLimit" }, "RateLimit-Remaining": { "$ref": "#/components/headers/RateLimitRemaining" }, "RateLimit-Reset": { "$ref": "#/components/headers/RateLimitReset" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } }
  }
}
