EvoHub DocsEvoHub Docs Sign in

Get one statement

Use with AI
View as MarkdownThis page as plain text, for pasting into an AI tool Open in ClaudeAsk Claude questions about this page Open in ChatGPTAsk ChatGPT questions about this page
Connect to Cursor / VS Code / ClaudeSearch and read these docs from your AI tool (MCP server)

MCP server URL

https://docs.evohub.io/mcp

Claude Code

claude mcp add --transport http evohub-docs https://docs.evohub.io/mcp

Claude (claude.ai and Claude Desktop): Settings → Connectors → Add custom connector, and paste the URL above.

Claude Desktop — claude_desktop_config.json

{
  "mcpServers": {
    "evohub-docs": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://docs.evohub.io/mcp"
      ]
    }
  }
}

Cursor — ~/.cursor/mcp.json

{
  "mcpServers": {
    "evohub-docs": {
      "url": "https://docs.evohub.io/mcp"
    }
  }
}

VS Code — .vscode/mcp.json

{
  "servers": {
    "evohub-docs": {
      "type": "http",
      "url": "https://docs.evohub.io/mcp"
    }
  }
}
GET/api/v1/billing/statements/{period}

One month's statement with its lines, one per metric. A line's ehu_billed is its exact EHU; the period total is rounded up to a whole EHU once, in billed_ehu.

Requires the billing:invoice:read scope.

Authorization

Any one of:

Parameters

Path parameters

  • period string required
    The month, YYYY-MM.
    Example: 2026-10 · Pattern: ^\d{4}-\d{2}$

Responses

200

The statement.

Content type: application/json

Type: object

  • data Statement
    Show Statement properties
    • id string
    • org_id string
    • period_start string (date-time)
    • period_end string (date-time)
      The first instant of the next month (exclusive).
    • status string
      open for the month in progress, predicted for a closed month computed but not yet charged, finalized once the amount is frozen.
      One of: open predicted finalized
    • rate_version integer
      The rate card version that priced the period.
    • pricing_tier string
      One of: on_demand commitment prepaid
    • total_ehu number
      Exact usage for the period, before rounding and the free allowance.
    • billed_ehu number
      total_ehu rounded up to a whole EHU.
    • allowance_ehu number
      How much the free allowance covered.
    • chargeable_ehu number
      billed_ehu minus allowance_ehu.
    • credit_ehu number
      How much of that was paid from the credit balance.
    • commitment_ehu number
      The committed volume billed, used or not.
    • overage_ehu number
      Usage beyond what the tier covered, priced on demand.
    • total_usd number
      The period's own charge. A month covered by the allowance costs 0.
    • carried_in_usd number
      Amounts owed by earlier months that were too small to charge alone, collected with this one.
    • carried_periods array of string (date-time)
      The months carried in. Left out when there are none.
    • settled_by_period string (date-time)
      The month whose payment collected this one, when it was carried forward. Left out while still owed.
    • generated_at string (date-time)
    • finalized_at string (date-time)
      When the amount was frozen. Left out while it can still change.
    • charge_status string
      What became of the money. Left out until collection has run. not_required: nothing was owed. below_minimum: too small to charge, carried forward. no_payment_method: owed with no card on file. invoiced: invoice raised and payment attempted. paid. failed: the card was declined or the invoice refused.
      One of: not_required below_minimum no_payment_method invoiced paid failed
    • charged_at string (date-time)
    • hosted_invoice_url string (uri)
    • invoice_pdf_url string (uri)
    • receipt_url string (uri)
    • lines array of object
      One line per metric. Only on a single statement, and left out when it has none.
      • metric_key string
      • quantity number
      • ehu number
      • ehu_billed number
      • usd number
    • amount_due_usd number
      What the statement asks for — total_usd plus carried_in_usd.

400

period is not YYYY-MM (INVALID_PERIOD).

Content type: application/json

Type: Error

  • error object required
    • code string required
      Example: STATEMENT_NOT_FOUND
    • message string required
      Example: No statement for that period.
    • request_id string

401

No API key was sent, or it is unknown, revoked or expired (UNAUTHORIZED).

Content type: application/json

Type: Error

  • error object required
    • code string required
      Example: STATEMENT_NOT_FOUND
    • message string required
      Example: No statement for that period.
    • request_id string

403

The key lacks the scope this endpoint needs (FORBIDDEN).

Content type: application/json

Type: Error

  • error object required
    • code string required
      Example: STATEMENT_NOT_FOUND
    • message string required
      Example: No statement for that period.
    • request_id string

404

There is no statement for that month (STATEMENT_NOT_FOUND).

Content type: application/json

Type: Error

  • error object required
    • code string required
      Example: STATEMENT_NOT_FOUND
    • message string required
      Example: No statement for that period.
    • request_id string

429

Too many requests (RATE_LIMITED). Wait for Retry-After seconds.

Headers

  • Retry-After integer
    Seconds to wait before retrying.

Content type: application/json

Type: Error

  • error object required
    • code string required
      Example: STATEMENT_NOT_FOUND
    • message string required
      Example: No statement for that period.
    • request_id string

500

The statement could not be loaded (STATEMENT_FAILED). Retry later.

Content type: application/json

Type: Error

  • error object required
    • code string required
      Example: STATEMENT_NOT_FOUND
    • message string required
      Example: No statement for that period.
    • request_id string

Example request

curl -X GET 'https://evohub.io/api/v1/billing/statements/2026-10' \
  -H 'Authorization: Bearer <TOKEN>'