RH CHAIN DATA API · Robinhood Chain 4663

One key. Every chain endpoint.

apio is a free, unauthenticated-signup read API over Robinhood Chain token, pool, price, and holder data. Register once, query all six endpoints. No card, no plans, no "upgrade" prompts anywhere.

No credit card  ·  No billing  ·  100 requests/hour, free forever

Data Pipeline Live
  • Token Discovery

    every 5 min

    Active
  • Holder Snapshots

    hourly

    Active
  • Price Snapshots

    awaiting provider

    Standby
  • Pool Tracking (Uniswap v4)

    awaiting PoolManager

    Standby

// Register once. Query everything.

POST /api/v1/keys/register

{
  "email": "you@x.com"
}

→ 6 endpoints unlocked, instantly

6

Endpoints

100/hr

Free Requests

$0

Forever

1

API Key

The Problem

Chain data is scattered across five tools. apio isn't.

To build a screener, wallet tracker, or trading bot on a new chain, you'd normally run your own RPC node, deploy a subgraph, glue together a block explorer API, and hunt down a price feed — then keep maintaining all four every time one of them changes shape. apio replaces the whole stack with one JSON API and a free key.

RPC Node

Raw eth_getLogs polling. No schema, no history, breaks on every re-org.

Block Explorer API

Rate-limited, and the response shape is different on every chain.

Custom Subgraph

Hours to design, deploy, and index — then more hours to keep it running.

Price Feed

No Chainlink on brand-new chains. You're left to source prices yourself.

Cron + Glue Code

The classic "just write a script" trap that nobody wants to own long-term.

You don't need to run any of this. Register with apio and every one of these becomes a single GET request.

How It Works

Three steps. Five minutes. Six endpoints.

01

Register for a free key

Submit an email address. No card, no verification flow, no quotas beyond the published rate limit — free, forever.

POST /api/v1/keys/register
{
  "email": "you@x.com"
}

← 200 { "apiKey": "rhk_..." }
02

Call any endpoint

Six endpoints cover tokens, pools, price history, and safety signals. Every request carries the same header.

GET /api/v1/screener/trending?window=24h
x-api-key: rhk_...

← 200 application/json
03

Get structured data back

No parsing raw logs, no reconciling explorer + RPC + subgraph responses against each other. Just clean JSON.

{
  "window": "24h",
  "tokens": [
    { "address": "0x...", "symbol": "RHX",
      "holderGrowth": 0.42, "priceChange": 0.18 }
  ]
}

Why apio

Four reasons you don't build this yourself.

Infrastructure isn't your product

Running and maintaining a chain indexer is a full-time job on its own. Every hour spent on it is an hour not spent on what you actually set out to build.

New chains have no data layer

Robinhood Chain has no Chainlink feeds and no mature subgraph ecosystem yet. apio reads directly from its own indexer to fill that gap today.

Consistent errors, real rate limits

Every failure returns the same {error:{code,message}} shape and a Retry-After header — never a silent timeout or an undocumented 500.

Actually free

No tiers, no card on file, no "contact sales" for higher limits. The published rate limit is the entire business model.

Under The Hood

One indexer. One key. Every dataset in sync.

A SvelteKit API sits in front of a dedicated background indexer and a PocketBase store. We run our own screener and safety checks on this exact same infrastructure — the same key, the same rate limit, the same endpoints every user gets.

01

Free forever, zero tiers

No card, no plans, no upgrade prompts anywhere in the product.

02

Six endpoints, one shape

Tokens, pools, price history, and safety checks — all consistent JSON.

03

Live background indexer

A dedicated Node process discovers tokens and snapshots holders on cron schedules.

04

Historical price snapshots

Query price history by address or pool, not just the current spot price.

05

Basic on-chain safety signals

Verification status, owner address, and holder concentration in one call.

06

Published, predictable limits

100 requests/hour per key, with a Retry-After header when you hit it.

07

Plain HTTP, no SDK

Every endpoint is a curl-able REST call. No client library to install or trust.

08

Backed by PocketBase

A single source of truth for tokens, pools, prices, holders, and key state.

Reference

Six endpoints. One consistent shape.

Every response is JSON. Every error is { "error": { "code", "message" } }. Every call is metered against the same 100 requests/hour published limit.

POST /api/v1/keys/register

Register for a free API key. No card, no plans, no quotas beyond the published rate limit.

curl -X POST https://your-deployment/api/v1/keys/register \
  -H "content-type: application/json" \
  -d '{"email":"you@x.com"}'
GET /api/v1/screener/new-tokens

Tokens deployed within the given lookback window (1–168 hours).

curl "https://your-deployment/api/v1/screener/new-tokens?hours=24" \
  -H "x-api-key: rhk_..."
GET /api/v1/screener/new-pools

Uniswap v4 pools created within the given lookback window.

curl "https://your-deployment/api/v1/screener/new-pools?hours=24" \
  -H "x-api-key: rhk_..."
GET /api/v1/screener/trending

Tokens ranked by holder growth blended with price change over a window.

curl "https://your-deployment/api/v1/screener/trending?window=24h" \
  -H "x-api-key: rhk_..."
GET /api/v1/safety-check/:address

Basic risk signals: verification status, owner, holder concentration.

curl "https://your-deployment/api/v1/safety-check/0xADDRESS" \
  -H "x-api-key: rhk_..."
GET /api/v1/history/price/:address

Historical USD price snapshots for a token address.

curl "https://your-deployment/api/v1/history/price/0xADDRESS?from=2026-01-01T00:00:00.000Z&to=2026-02-01T00:00:00.000Z" \
  -H "x-api-key: rhk_..."
GET /api/v1/history/pool/:poolAddress

Historical price snapshots for both tokens in a pool.

curl "https://your-deployment/api/v1/history/pool/0xPOOLID?from=2026-01-01T00:00:00.000Z&to=2026-02-01T00:00:00.000Z" \
  -H "x-api-key: rhk_..."

Integration

Plain HTTP. No SDK to install or trust.

Every endpoint is a normal REST call behind a single header. Missing or invalid keys get a clean 401, and hitting the rate limit returns a 429 with Retry-After.

curl "https://your-deployment/api/v1/safety-check/0xADDRESS" \
  -H "x-api-key: rhk_..."
# <- 200 { "isVerified": true, "owner": "0x...", "topHolderPct": 0.12 }

For Builders

Stop maintaining a data pipeline. Start shipping.

Screeners, safety bots, dashboards, and trading tools all need the same raw ingredients: fresh tokens, fresh pools, price history, and holder concentration. apio hands you all four behind one key.

Zero cost, forever

No tiers to compare, no card required, no surprise invoice.

Five minutes to first response

Register, grab your key, call an endpoint. That's the whole setup.

One consistent shape

Every one of the six endpoints returns predictable, typed JSON.

Real rate-limit visibility

100 requests/hour per key, with a Retry-After header telling you exactly when to come back.

Live and historical, together

Current screener rankings and historical price snapshots from one API.

No vendor lock-in

Plain REST over HTTP. Curl it today, swap frameworks tomorrow, nothing changes.

Why Now

Robinhood Chain is brand new. Clean data early matters.

New Arbitrum Orbit chains launch without a data layer — no mature subgraphs, no Chainlink feeds, sparse explorer coverage. apio's indexer is already watching this chain, so you don't have to bootstrap your own from block zero.

What you provide

  • 1.Your email address
  • 2.That's it.

What apio handles

  • Token & pool discovery
  • Holder snapshotting
  • Price history
  • Safety signal checks
  • Rate limiting & abuse prevention
  • Consistent error handling

Get Started

Register your email. Start querying.

Get a free API key

One email, one key, forever free. No card, no plans.

curl -X POST https://your-deployment/api/v1/keys/register \
  -H "content-type: application/json" \
  -d '{"email":"you@x.com"}'

Browse the endpoints

Six endpoints for tokens, pools, prices, holders, and safety signals.

View Endpoints →

Rate limit: 100 requests/hour per key. Errors always look like { "error": { "code", "message" } }.