{
  "aod": "0.1",
  "provider": {
    "name": "Rainplover",
    "url": "https://rainplover.com",
    "portalUrl": "https://rainplover.com/developers/"
  },
  "maturity": "self-serve",
  "account": {
    "required": true,
    "signupUrl": "https://rainplover.com/v1/accounts",
    "agentPolicy": "allowed",
    "prerequisites": [
      "An account owner (a person) who verifies an email address. One account works on every agent-first site."
    ],
    "plans": [
      {
        "name": "Pay as you go",
        "requiredFor": "Use beyond the free allowance, from a prepaid balance (card or x402).",
        "url": "https://rainplover.com/pricing/"
      }
    ]
  },
  "verification": [
    {
      "facet": "identity_anchor",
      "min_grade": "verified",
      "blocking": false,
      "description": "Optional: present an apis.io attestation in APIs-IO-Attestation on POST /v1/account/kya (a key-bound attestation on a Web Bot Auth-signed request). Shared with the other agent-first sites.",
      "vocabulary": "https://apis.io/kya/"
    }
  ],
  "registration": {
    "applicationNoun": "API key",
    "owner": "user",
    "mechanisms": [
      {
        "type": "api",
        "description": "POST /v1/accounts (or the create_account MCP tool) returns an API key once and an account_url for the owner.",
        "baseUrl": "https://rainplover.com/v1",
        "docsUrls": [
          "https://rainplover.com/developers/"
        ]
      }
    ]
  },
  "authentication": {
    "methods": [
      {
        "id": "api-key",
        "type": "bearer",
        "header": "Authorization",
        "bootstrap": "POST /v1/accounts. Shown once."
      },
      {
        "id": "oauth2",
        "type": "oauth-pkce-browser",
        "authorizationUrl": "https://rainplover.com/v1/oauth/authorize",
        "tokenUrl": "https://rainplover.com/v1/oauth/token",
        "metadata": "https://rainplover.com/.well-known/oauth-authorization-server"
      }
    ]
  },
  "scopes": {
    "model": "oauth-scopes",
    "list": [
      "weather:read",
      "weather:subscribe",
      "account:read"
    ],
    "notes": "API keys are not scoped. OAuth tokens carry these scopes and work only on this site."
  },
  "economics": {
    "freeTier": "500 calls a day; 8640 subscription checks a month",
    "pricing": "https://rainplover.com/v1/pricing",
    "payment": "Prepaid balance, topped up by card (Stripe) or by the agent over x402 (USDC on Base)."
  },
  "gaps": [
    "A person is needed once, to verify an email (and to approve an OAuth connection). Money can come from the owner's card or the agent's own wallet."
  ]
}
