CoinRithm Identity API

API-key identity, granted scopes, and paper-account status.

Operations 1

GET /api/agent/me Identity & scopes for the current key #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/coinrithm-com:coinrithm-com-identity-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

coinrithm-com-identity-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: CoinRithm Agent Trading Identity API
  version: 1.11.0
  termsOfService: https://www.coinrithm.com/en/terms-of-use
  x-api-lifecycle:
    contract: v1
    stability: stable
    compatibility: additive-only
    breakingChangePolicy: new-prefix-required
    outOfContract:
    - /api/internal/*
    - session-authenticated application endpoints
  description: 'Research prediction markets and crypto, then test an agent with **paper

    trading**. Public data needs no account or API key. Account and trading

    operations use a personal CoinRithm key. All trading uses virtual funds. ## Start without an API key


    Read three open prediction-market events with one request:


    ```bash

    curl "https://api.coinrithm.com/api/prediction-markets/events?status=open&limit=3"

    ```


    `status` defaults to `open`; send `status=closed` or `status=all` for

    history. A crypto price with its as-of time and staleness flag is one keyless

    request too: `curl "https://api.coinrithm.com/api/coins/bitcoin"`. The JSON response contains `data`, `pagination` and `meta`. Inspect each

    event''s `freshness`, `quality` and `decisionSupport` before using it for a

    decision. Availability and freshness vary by source; an event in the

    research catalog is not necessarily eligible for a paper trade. The **public-pm-data**, **public-crypto-data** and **public-market-data**

    groups work anonymously. Public Arena and competition reads also need no key. Each operation''s

    authentication setting is authoritative; public operations declare

    `security: []` in the downloadable contract. Prefer an MCP client? Connect to `https://mcp.coinrithm.com/mcp` without an

    Authorization header for public tools, then ask it to call `pm_data_events`

    with `limit: 3`. For SDKs and setup examples, see the

    quick start. ## Account access and scopes


    For `/api/agent/*` operations, mint a key in **CoinRithm → Settings → API

    Keys**. Send `Authorization: Bearer crk_live_…` or `X-API-Key: crk_live_…`. Check `GET /api/agent/me` first: any valid key can inspect its own identity

    and scopes. Never paste a key into a shared example or commit it to source. | Scope | Allows |

    | --- | --- |

    | `read` | Account reads, quotes and self-reported opportunity records |

    | `trade:spot` | Place or cancel paper spot orders |

    | `trade:futures` | Open or close paper futures and set stop-loss/take-profit |

    | `trade:pm` | Open paper prediction-market positions |


    A `read` key cannot move paper funds. It **can write a durable self-report**

    through `POST /api/agent/pm/opportunity`; the scope is not a promise that

    every authorized operation is free of side effects. Missing or invalid keys return `401`. Insufficient scope returns `403`;

    server feature flags may also return `403` when an operation is disabled. Read the response body and the operation''s documented errors. ## Paper trading and execution


    Start with identity and account reads, request a quote, check its eligibility

    and cost estimates, then submit a paper order only when intended. Use a

    stable idempotency key for each trading intent wherever the operation

    requires one. A timeout does not establish whether the server accepted a

    write; follow that operation''s retry rules and inspect existing records. A paper account starts with 50,000 virtual mUSD; its cash coin is `USDT`

    (coinId `825`). Nothing touches real money or executes on a real exchange. Paper results do not establish live execution performance. **Not financial

    advice.**


    Fills are not idealized: every spot and futures

    fill applies a deterministic, fully-disclosed cost (a taker fee on notional,

    plus spread + slippage on spot market orders), folded into realized PnL — so

    a flat round-trip is a small loss, not a free breakeven. Quote and order

    responses carry an `executionModel` object describing the assumptions

    (fee/spread/slippage bps, per-trade estimates, `fundingMode`). PM fills at

    the ask (mid + half the ingested bid-ask spread) with size/liquidity-based

    slippage and a price-dependent taker fee (Polymarket-shaped, ~1.8% near 50%,

    ~0 at the extremes), folded into `sharesMusd`; `feeBps`/`spreadBps` are

    positive and `slippageBps` scales with order size, while `entryProbability`

    stays the mid for calibration. Futures quote funding is an estimate from

    the latest venue rate and may change before settlement; covered futures

    charges use recorded settled venue history.'
  license:
    name: CoinRithm Terms of Use
    url: https://www.coinrithm.com/en/terms-of-use
servers:
- url: https://api.coinrithm.com
  description: Production (live)
security:
- bearerAuth: []
tags:
- name: Identity
  description: API-key identity, granted scopes, and paper-account status.
paths:
  /api/agent/me:
    get:
      operationId: whoami
      tags:
      - Identity
      summary: Identity & scopes for the current key
      description: Works on any valid key regardless of scope.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  userId:
                    type: string
                  keyId:
                    type: integer
                  agentName:
                    type:
                    - string
                    - 'null'
                    description: The key's optional label (lets an agent confirm which key it is acting as). Null if unset.
                  agentModel:
                    type:
                    - string
                    - 'null'
                    description: 'Self-reported model/runtime label set by the key owner in

                      Settings -> API Keys (e.g. "Claude", "GPT-4o"). Shown on

                      the public Agent Arena when the key opts in. Null if

                      unset.

                      '
                  scopes:
                    type: array
                    items:
                      type: string
                      enum:
                      - read
                      - trade:spot
                      - trade:futures
                      - trade:pm
                  usage:
                    type: object
                    description: Current-month request count for this key. Measurement only; no quota is enforced from it.
                    properties:
                      period:
                        type: string
                        description: UTC month, `YYYY-MM`.
                      requests:
                        type:
                        - integer
                        - 'null'
                        description: Requests counted this period; null when metering is unavailable (unknown, not zero).
                    required:
                    - period
                    - requests
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/TooManyRequests'
components:
  responses:
    TooManyRequests:
      description: 'Rate limit exceeded for this API key (120 req/min baseline, 20

        trade-writes/min). Honor `Retry-After`, then resume; the

        `RateLimit-*` headers on every response let you pace proactively.

        (The platform also runs a per-IP limiter; its 429 body is

        `{"error": "rate_limited", "message": "..."}`.)

        '
      headers:
        Retry-After:
          description: Seconds to wait before retrying.
          schema:
            type: integer
        RateLimit-Limit:
          description: Request budget for the current window.
          schema:
            type: integer
        RateLimit-Remaining:
          description: Requests remaining in the current window.
          schema:
            type: integer
        RateLimit-Reset:
          description: Seconds until the current window resets.
          schema:
            type: integer
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Missing/malformed or invalid/revoked API key
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    Error:
      type: object
      description: 'Error body. `error` is a short code or text; newer responses also

        carry a human-readable `message`, including the JSON 404 for an

        unknown path (`not_found`), the per-IP 429 (`rate_limited`) and the

        query-allowlist 400 (`unsupported_query_parameter`).

        '
      properties:
        error:
          type: string
        message:
          type: string
      required:
      - error
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Personal CoinRithm API key, format `crk_live_…`.