EvoHub DocsEvoHub Docs Sign in

Get the organization's campaign standing

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/campaign

Where the organization stands with the credit campaigns running now.

  • campaign is the running sign-up campaign (credit for saving a first card), or null. status is the organization's standing with it: eligible (it will be paid when a card is saved), granted, pending (under review), ineligible, or not_applicable (no campaign, a card is already saved, or the organization signed up before the campaign began). reason is a short machine-readable explanation for pending and ineligible, otherwise "".
  • integration is the running first-integration campaign (credit for the first integration in a product), or null, and gifts the credit it — or an earlier one — paid the organization recently, newest first.

Requires the billing:usage:read scope.

Authorization

Any one of:

Responses

200

The campaign standing.

Content type: application/json

Type: object

  • data OrgCampaign
    Show OrgCampaign properties
    • campaign PublicCampaign | null

      One of:

      • PublicCampaign
        Show PublicCampaign properties
        • id string
        • kind string
          One of: card_signup first_integration
        • products array of string
          The products a first-integration campaign pays for; [] for a sign-up campaign.
        • name string
        • banner_text string
        • banner_link string
        • ehu number
          The credit paid, in EHU.
        • ends_at string (date-time)
      • null
    • status string
      One of: eligible granted pending ineligible not_applicable
    • reason string
    • integration PublicCampaign | null

      One of:

      • PublicCampaign
        Show PublicCampaign properties
        • id string
        • kind string
          One of: card_signup first_integration
        • products array of string
          The products a first-integration campaign pays for; [] for a sign-up campaign.
        • name string
        • banner_text string
        • banner_link string
        • ehu number
          The credit paid, in EHU.
        • ends_at string (date-time)
      • null
    • gifts array of object
      • id string
      • product string
      • ehu number
      • granted_at string (date-time) | null
      • expires_at string (date-time) | null

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

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 campaign could not be loaded (CAMPAIGN_UNAVAILABLE). 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/campaign' \
  -H 'Authorization: Bearer <TOKEN>'