Agent Card Reader

Decode A2A Agent Cards in your browser

Open the reader

Agent Card Reader / Migrating from 0.3 to 1.0

Migrating an agent card from A2A 0.3 to 1.0

A2A 1.0 moves interfaces into supportedInterfaces, wraps each security scheme in a named object instead of an OpenAPI type field, and renames security to securityRequirements. Compared from the 0.3.0 and 1.0 specifications.

Field by field

0.31.0Notes
protocolVersion (top level)supportedInterfaces[].protocolVersionOne version per interface.
url + preferredTransportsupportedInterfaces[0] with url, protocolBinding, protocolVersionThe first entry is the preferred interface. 0.3 defaulted an empty transport to JSONRPC.
additionalInterfaces[] with url, transportFurther supportedInterfaces entriestransport becomes protocolBinding.
—supportedInterfaces[].tenantNew, optional: routes requests when several agents share an endpoint.
{"type": "apiKey", "in", "name"}{"apiKeySecurityScheme": {"location", "name"}}in becomes location.
{"type": "http", "scheme", "bearerFormat"}{"httpAuthSecurityScheme": {"scheme", "bearerFormat"}}
{"type": "oauth2", "flows", "oauth2MetadataUrl"}{"oauth2SecurityScheme": {"flows", "oauth2MetadataUrl"}}1.0 adds the deviceCode flow and pkceRequired; implicit and password are deprecated; flows holds exactly one flow.
{"type": "openIdConnect", "openIdConnectUrl"}{"openIdConnectSecurityScheme": {"openIdConnectUrl"}}
{"type": "mutualTLS"}{"mtlsSecurityScheme": {}}
security: [{"name": ["scope"]}]securityRequirements: [{"schemes": {"name": {"list": ["scope"]}}}]Same meaning: a list of alternatives, each a set of schemes.
skills[].securityskills[].securityRequirementsSame new shape.
supportsAuthenticatedExtendedCardcapabilities.extendedAgentCard
capabilities.stateTransitionHistory—Not in the 1.0 AgentCapabilities table.

Before and after

The route-planner sample that both specifications use, trimmed to the parts that change.

0.3

{
  "protocolVersion": "0.3.0",
  "name": "GeoSpatial Route Planner Agent",
  "url": "https://georoute-agent.example.com/a2a/v1",
  "preferredTransport": "JSONRPC",
  "additionalInterfaces": [
    {
      "url": "https://georoute-agent.example.com/a2a/grpc",
      "transport": "GRPC"
    }
  ],
  "securitySchemes": {
    "google": {
      "type": "openIdConnect",
      "openIdConnectUrl": "https://accounts.google.com/.well-known/openid-configuration"
    }
  },
  "security": [
    {
      "google": [
        "openid",
        "profile",
        "email"
      ]
    }
  ]
}

1.0

{
  "name": "GeoSpatial Route Planner Agent",
  "supportedInterfaces": [
    {
      "url": "https://georoute-agent.example.com/a2a/v1",
      "protocolBinding": "JSONRPC",
      "protocolVersion": "1.0"
    },
    {
      "url": "https://georoute-agent.example.com/a2a/grpc",
      "protocolBinding": "GRPC",
      "protocolVersion": "1.0"
    }
  ],
  "securitySchemes": {
    "google": {
      "openIdConnectSecurityScheme": {
        "openIdConnectUrl": "https://accounts.google.com/.well-known/openid-configuration"
      }
    }
  },
  "securityRequirements": [
    {
      "schemes": {
        "google": {
          "list": [
            "openid",
            "profile",
            "email"
          ]
        }
      }
    }
  ]
}

Check your card

Paste the old or the new card into the reader: it reads both, explains each 0.3 field it finds, and validates the 1.0 shape against the spec.

Based on the A2A specification (latest, 1.0). Updated 2026-10-14. Check a card now: open the reader.