{
  "aod": "0.1",
  "provider": {
    "name": "Archstone",
    "url": "https://archstone.dev",
    "portalUrl": "https://console.archstone.dev",
    "apisJsonUrl": "https://archstone.dev/apis.json"
  },
  "maturity": "self-serve",
  "account": {
    "required": true,
    "signupUrl": "https://console.archstone.dev/sign-up",
    "agentPolicy": "allowed",
    "prerequisites": [
      "An email address you can receive mail at — the signup verification link is delivered there and a credential cannot be minted until it is redeemed.",
      "Acceptance of the current terms of service and privacy notice at signup."
    ],
    "plans": [
      {
        "name": "Free",
        "requiredFor": "Everything the console does, at the smallest limits: one hosted deployment, seven days of audit retention, community support.",
        "url": "https://console.archstone.dev/pricing"
      },
      {
        "name": "Starter",
        "requiredFor": "Higher call allowance, thirty days of retention, email support, and an optional hosting add-on with a larger hosted call pool.",
        "url": "https://console.archstone.dev/pricing"
      },
      {
        "name": "Growth",
        "requiredFor": "Real traffic across several APIs, one year of retention.",
        "url": "https://console.archstone.dev/pricing"
      },
      {
        "name": "Enterprise",
        "requiredFor": "Negotiated volume, retention and terms.",
        "url": "https://console.archstone.dev/pricing"
      }
    ],
    "termsOfService": {
      "url": "https://console.archstone.dev/terms",
      "acceptance": "explicit-field"
    }
  },
  "verification": [],
  "registration": {
    "applicationNoun": "deployment",
    "owner": "organization",
    "mechanisms": [
      {
        "type": "open",
        "description": "The public API verifier — check an OpenAPI document for compliance with no account, no key, and no form. Reaches nothing tenant-scoped and yields no credential.",
        "baseUrl": "https://console.archstone.dev/api/v1",
        "docsUrls": [
          "https://archstone.dev/openapi.yaml",
          "https://archstone.dev/verify"
        ],
        "auth": "none"
      },
      {
        "type": "management-api",
        "description": "The console's own JSON plane: create an account, verify email, log in, register a deployment, and mint a collector credential.",
        "baseUrl": "https://console.archstone.dev/api/v1",
        "docsUrls": [
          "https://archstone.dev/openapi.yaml"
        ],
        "auth": "session"
      }
    ]
  },
  "authentication": {
    "methods": [
      {
        "id": "none",
        "type": "none",
        "bootstrap": ""
      },
      {
        "id": "session",
        "type": "cookie-login",
        "bootstrap": "Sign up at console.archstone.dev/sign-up and click the verification link mailed to you; both ends of that exchange are plain API calls, only the mail delivery is not."
      }
    ]
  },
  "credentials": [
    {
      "type": "api-key",
      "fields": {
        "api_key": "collectorToken"
      },
      "ttl": "none",
      "rotation": "POST /api/v1/deployments/:id/credential revokes the current collector credential and mints a replacement in one transaction; the console UI confirms twice before calling it. Rotation invalidates the old token immediately.",
      "oneTimeDisplay": true
    }
  ],
  "scopes": {
    "model": "permission-matrix",
    "notes": "Two operator roles, viewer and admin, assigned per membership; a separate collector trust domain authenticates deployments and is not a role on this axis."
  },
  "flow": {
    "args": [],
    "steps": [
      {
        "id": "probe",
        "description": "Fetch the published OpenAPI document — proves the open door is reachable with no account, key, or form. Does not prove account creation or credential issuance, which require the mailed verification link.",
        "auth": "none",
        "request": {
          "method": "GET",
          "url": "https://archstone.dev/openapi.yaml"
        }
      }
    ],
    "outputs": {}
  },
  "economics": {
    "pricingUrl": "https://console.archstone.dev/pricing",
    "freeTier": "A permanent Free plan; paid Starter and Growth plans by card or crypto, Enterprise negotiated. Current prices and limits are published at pricingUrl and as JSON at https://console.archstone.dev/api/v1/pricing."
  },
  "gaps": [
    "Verification-link delivery depends on a human-held inbox: an agent with no inbox cannot complete signup alone, even though every request on both sides of that link is a plain JSON call.",
    "No published rate-limit or SLA page — signup is IP-rate-limited and the verifier returns 429 with retryAfterMinutes, but there is no page to point rateLimitsUrl or slaUrl at.",
    "No DCR, no CIMD, no AAuth, and no OAuth client this API issues — the only credential is a bearer token minted through the management API.",
    "No securityProfile: Archstone publishes no RFC 8414 authorization-server metadata and its tokens are not sender-constrained, so no authorization-profile tier is claimed.",
    "This file previously published an invented shape (name/access/plans) that validates against nothing; corrected 2026-09-20.",
    "This machine-readable description is served from archstone.dev today, not from the API itself; the API does not yet publish its own onboarding descriptor."
  ]
}
