{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/sochain-com/json-schema/sochain-com-account-info-schema.json",
  "title": "AccountInfo",
  "description": "Answered without the status/data envelope, as it always has been.",
  "x-generated": "2026-10-31",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/sochain-com-openapi.json#/components/schemas/AccountInfo",
  "type": "object",
  "required": [
    "last_login_at",
    "plan",
    "num_requests_used",
    "quota_resets_in_seconds"
  ],
  "properties": {
    "last_login_at": {
      "type": [
        "integer",
        "null"
      ],
      "description": "Last dashboard sign-in (Unix time)."
    },
    "plan": {
      "type": "object",
      "required": [
        "name",
        "max_monthly_requests",
        "max_daily_requests",
        "current_period_ends_at",
        "will_renew_at_period_end"
      ],
      "properties": {
        "name": {
          "enum": [
            "free",
            "hobby",
            "starter",
            "professional",
            "behemoth"
          ]
        },
        "max_monthly_requests": {
          "type": "integer",
          "description": "Your plan’s requests a month. Past it, lookups carry on at the free rate and webhooks and streams pause until the month resets."
        },
        "max_daily_requests": {
          "type": "integer",
          "description": "Kept for older clients: the monthly number divided by 30. Nothing stops at it."
        },
        "current_period_ends_at": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time",
          "description": "End of the paid period (UTC); null on Free."
        },
        "will_renew_at_period_end": {
          "type": "boolean"
        }
      }
    },
    "num_requests_used": {
      "type": "object",
      "required": [
        "today",
        "yesterday",
        "this_month"
      ],
      "properties": {
        "today": {
          "type": "integer",
          "description": "Counted so far today (UTC): API calls, MCP tool calls and webhook notifications."
        },
        "yesterday": {
          "type": "integer",
          "description": "The same count for yesterday."
        },
        "this_month": {
          "type": "integer",
          "description": "Requests counted this calendar month (UTC)."
        }
      }
    },
    "quota_resets_in_seconds": {
      "type": "integer",
      "description": "Seconds until the month’s count resets (the 1st, 00:00 UTC)."
    },
    "key": {
      "type": "object",
      "description": "The key this request used.",
      "properties": {
        "name": {
          "type": "string",
          "description": "Its name on the dashboard."
        },
        "access": {
          "enum": [
            "full",
            "read_only"
          ],
          "description": "read_only keys get 403 on any change to webhooks or buckets."
        }
      }
    }
  }
}