{
  "$comment": "A2A 1.0.0 Agent Card. Path per the A2A spec: /.well-known/agent-card.json. NOT LIVE YET — the url and skills below describe the intended Convoy gateway; point url at a real A2A endpoint before publishing, or remove this file so clients do not discover a dead agent.",
  "protocolVersion": "1.0.0",
  "name": "Convoy Gateway",
  "description": "Convoy is the infrastructure layer that makes any product fully agentic, so customers can delegate workflows to AI, either through a native copilot you give them or through the external assistants they already use (ChatGPT, Claude, Grok).",
  "url": "https://api.convoy-ai.com/a2a",
  "preferredTransport": "JSONRPC",
  "version": "0.1.0",
  "documentationUrl": "https://convoy-ai.com/llms.txt",
  "iconUrl": "https://convoy-ai.com/favicon.svg",
  "provider": {
    "organization": "Convoy",
    "url": "https://convoy-ai.com"
  },
  "capabilities": {
    "streaming": true,
    "pushNotifications": false,
    "stateTransitionHistory": true
  },
  "defaultInputModes": [
    "text/plain",
    "application/json"
  ],
  "defaultOutputModes": [
    "text/plain",
    "application/json"
  ],
  "securitySchemes": {
    "oauth2": {
      "type": "oauth2",
      "description": "Scoped per merchant. Contact hello@convoy-ai.com for access.",
      "flows": {
        "clientCredentials": {
          "tokenUrl": "https://api.convoy-ai.com/oauth/token",
          "scopes": {
            "catalogue:read": "Read catalogue and availability",
            "booking:write": "Create and modify bookings"
          }
        }
      }
    }
  },
  "security": [
    {
      "oauth2": [
        "catalogue:read"
      ]
    }
  ],
  "skills": [
    {
      "id": "search_products",
      "name": "Search products",
      "description": "Search a merchant's live catalogue with constraints such as category, price cap and availability.",
      "tags": [
        "retail",
        "catalogue",
        "search"
      ],
      "examples": [
        "Find an organic olive oil under 10 euros available in Lyon"
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "search_availability",
      "name": "Search availability",
      "description": "Find bookable slots and match them to the right practitioner or resource, not just the first opening.",
      "tags": [
        "services",
        "booking"
      ],
      "examples": [
        "Book a physio near King's Cross this week, evening, who treats runners' knees"
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "get_report",
      "name": "Answer a reporting question",
      "description": "Aggregate the customer's own operational data and answer a question about it, scoped to what the caller may see.",
      "tags": [
        "saas",
        "reporting"
      ],
      "examples": [
        "How much overtime did the evening team run last month, and which week was worst?"
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    }
  ]
}
