{
  "name": "IndexerPal",
  "description": "Website and backlink indexing agent. Send it URLs (or a sitemap) to get them indexed in Google, Bing and Yandex and verified in Google, ask whether URLs are indexed, follow a project's results, or buy credits.",
  "version": "1.0.0",
  "supportedInterfaces": [
    {
      "url": "https://indexerpal.com/a2a",
      "protocolBinding": "JSONRPC",
      "protocolVersion": "1.0"
    }
  ],
  "protocolVersion": "0.3.0",
  "url": "https://indexerpal.com/a2a",
  "preferredTransport": "JSONRPC",
  "provider": {
    "organization": "IndexerPal",
    "url": "https://indexerpal.com"
  },
  "iconUrl": "https://indexerpal.com/logo.png",
  "documentationUrl": "https://indexerpal.com/developers/agents",
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "extendedAgentCard": false,
    "extensions": [
      {
        "uri": "https://github.com/google-agentic-commerce/ap2/tree/v0.1",
        "description": "Agent Payments Protocol, merchant role. Buying credits returns a CartMandate (credit pack, price in USD, signed by IndexerPal) with a payment link; the account owner completes the payment there.",
        "required": false,
        "params": {
          "roles": [
            "merchant"
          ]
        }
      }
    ]
  },
  "securitySchemes": {
    "oauth": {
      "oauth2SecurityScheme": {
        "description": "OAuth 2.1, authorization code with PKCE. Clients can register themselves.",
        "oauth2MetadataUrl": "https://indexerpal.com/.well-known/oauth-authorization-server",
        "flows": {
          "authorizationCode": {
            "authorizationUrl": "https://indexerpal.com/oauth/authorize",
            "tokenUrl": "https://indexerpal.com/oauth/token",
            "refreshUrl": "https://indexerpal.com/oauth/token",
            "scopes": {
              "read": "See your balance, projects, link statuses, orders and usage.",
              "index": "Create indexing projects and index checks (spends credits), cancel unsent links, read sitemaps.",
              "purchase": "Start credit purchases: checkout links for a person to pay, or direct payments where enabled."
            },
            "pkceRequired": true
          }
        }
      }
    },
    "apiKey": {
      "httpAuthSecurityScheme": {
        "scheme": "Bearer",
        "description": "An IndexerPal API key (ipk_...) as a bearer token."
      }
    }
  },
  "securityRequirements": [
    {
      "schemes": {
        "oauth": {
          "list": [
            "read",
            "index",
            "purchase"
          ]
        }
      }
    },
    {
      "schemes": {
        "apiKey": {
          "list": []
        }
      }
    }
  ],
  "defaultInputModes": [
    "text/plain",
    "application/json"
  ],
  "defaultOutputModes": [
    "application/json",
    "text/plain"
  ],
  "skills": [
    {
      "id": "index-urls",
      "name": "Index URLs",
      "description": "Creates an indexing project for web pages or backlinks (a list of URLs, or a sitemap URL). Standard or instant mode. Spends credits.",
      "tags": [
        "seo",
        "indexing",
        "google",
        "bing",
        "backlinks",
        "sitemap"
      ],
      "examples": [
        "Index https://example.com/new-post and https://example.com/launch with instant indexing",
        "{\"skill\": \"index-urls\", \"urls\": [\"https://example.com/a\"], \"mode\": \"standard\"}",
        "Index the sitemap https://example.com/sitemap.xml"
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "check-indexed",
      "name": "Check if URLs are indexed",
      "description": "Looks URLs up in Google without sending anything (index checker). Results within about an hour.",
      "tags": [
        "seo",
        "index-check",
        "google"
      ],
      "examples": [
        "Are these indexed? https://example.com/a https://example.com/b",
        "{\"skill\": \"check-indexed\", \"urls\": [\"https://example.com/a\"]}"
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "project-status",
      "name": "Project status",
      "description": "Reports a project's counts, index rate and per-URL statuses. The A2A task id is the project id.",
      "tags": [
        "seo",
        "reporting"
      ],
      "examples": [
        "{\"skill\": \"project-status\", \"project_id\": \"...\"}",
        "How is my last project doing?"
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "buy-credits",
      "name": "Buy credits",
      "description": "Quotes a credit pack and returns an AP2 CartMandate with a secure payment link for the account owner.",
      "tags": [
        "payments",
        "ap2",
        "checkout"
      ],
      "examples": [
        "{\"skill\": \"buy-credits\", \"pack\": \"pro\"}",
        "Buy the Premium pack"
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "account",
      "name": "Account and pricing",
      "description": "Balance, whether the account can index yet, and prices.",
      "tags": [
        "account",
        "pricing"
      ],
      "examples": [
        "What's my balance?",
        "How much does instant indexing cost?"
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    }
  ]
}