GriffNode API API

Accept Bitcoin, Litecoin, Dogecoin, Dash, Ethereum and ERC-20 tokens. Server-to-server, authenticated with a secret API key (`Authorization: Bearer sk_live_…` for live, or `sk_test_…` for test mode — same base URL). All monetary amounts in API responses are JSON numbers; **webhook** amounts are stri

GitHub OpenAPI

Operations 16

GET /health API health check #
GET /pay Hosted-checkout redirect (browser flow, publishable key) #
POST /transactions/create Create a payment transaction #
POST /transactions/create-detailed Create an itemized transaction (Professional/Enterprise plans) #
GET /transactions/list List the merchant's transactions (newest first) #
GET /transactions/{transaction_id} Retrieve a single transaction #
GET /prices Current crypto and fiat exchange rates (USD-denominated) #
GET /cryptos/list All supported cryptocurrencies and tokens #
GET /merchant/cryptos Cryptocurrencies this merchant has wallets configured for #
GET /account Merchant plan, usage and limits #
GET /plans Plan catalogue and pricing #
GET /balances Deprecated: always an empty list. GriffNode keeps no on-platform balance (no overage, no top-ups); crypto settles straight to your wallet. #
GET /stats Merchant transaction analytics #
GET /invoices GriffNode billing invoices (platform ↔ merchant) #
POST /transactions/{transaction_id}/simulate Simulate a test payment outcome #
POST /billing/checkout Start a plan upgrade #

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/griffnode-com:griffnode-api-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

griffnode-com-api-openapi.yml Raw ↑
openapi: 3.1.0

# ─────────────────────────────────────────────────────────────────────────────
# GriffNode Public Merchant API — SINGLE SOURCE OF TRUTH
#
# This file is CANONICAL. Code, docs, SDKs, and plugins are reconciled TO it.
# Governance: docs/sdk/api-contract-governance.md  (the contract is FROZEN).
#
# This spec describes the cleaned-up v1 TARGET (decided: clean break + trim + /v1):
#   - transaction_id everywhere (the old `txid` on create/get is removed)
#   - currency_fiat everywhere (the old `currency` on create/get is removed)
#   - one pagination style: limit + offset, with a { limit, offset, total } block
#   - one curated Transaction schema for create/get/list (capability tokens,
#     client_ip, address_index, and other internal fields are NOT exposed)
#   - all paths under /v1
# Migration status of the Go code → this spec is tracked in api-inconsistencies.md.
# ─────────────────────────────────────────────────────────────────────────────

info:
  title: GriffNode API
  version: "1.0.1"
  description: >
    Accept Bitcoin, Litecoin, Dogecoin, Dash, Ethereum and ERC-20 tokens.
    Server-to-server, authenticated with a secret API key
    (`Authorization: Bearer sk_live_…` for live, or `sk_test_…` for test mode — same base URL).
    All monetary amounts in API responses are JSON numbers; **webhook** amounts are
    strings to preserve decimal precision (see the `webhooks` section).


    **Rate limits.** Every request is rate-limited per API key in two windows — per minute
    and per hour — by plan tier (min/hour): starter 30/500, business 100/2000, professional
    300/5000, enterprise 1000/20000. Every response carries `X-RateLimit-Limit`,
    `X-RateLimit-Remaining` and `X-RateLimit-Reset` (Unix seconds) for the per-minute window.
    On `429` the body is `error: "RATE_LIMIT_EXCEEDED"` (either window) with a `Retry-After`
    header (seconds) — clients should retry after it. A separate `429` with
    `error: "MONTHLY_LIMIT_REACHED"` means the plan's monthly transaction quota (not the
    request rate).
  license:
    name: Apache-2.0
  contact:
    name: GriffNode Developers
    url: https://griffnode.com

servers:
  - url: https://api.griffnode.com/v1
    description: >
      Single base URL for both live and test traffic. A live secret key (`sk_live_`)
      settles real funds on mainnet. A test secret key (`sk_test_`) is validated the
      same way but creates test transactions (`TTX-` ids, `"test": true`): no real
      address, nothing on-chain, not counted toward plan limits, and moved to an
      outcome with POST /transactions/{transaction_id}/simulate (see
      https://docs.griffnode.com/test-mode). Each key sees only its own mode's
      transactions. There is no separate sandbox host.

security:
  - SecretKey: []

tags:
  - name: Transactions
    description: Create and read merchant payment transactions.
  - name: Market Data
    description: Live prices and the supported-currency catalogue.
  - name: Account
    description: Merchant plan, usage, stats and invoices.
  - name: Billing
    description: Plan upgrades.


# --- truncated at 32 KB (36 KB total) ---
# Full source: https://artifacts.apis.io/griffnode-com/openapi/_original/griffnode-com-api-openapi.yml