registry

Pay-per-call API gateway for AI agents. 10 services available via x402 — no API keys, no subscriptions.

Skill file

Preview skill file
---
name: registry
version: 1.0.0
description: Pay-per-call API gateway for AI agents. 10 services available via x402 — no API keys, no subscriptions.
homepage: https://registry.frames.ag
metadata:
  category: api-gateway
  api_base: https://registry.frames.ag/api
  x402:
    supported: true
    chains:
      - evm
      - solana
    networks:
    - eip155:8453
    - eip155:84532
    - solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp
    - solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1
    tokens:
      - USDC
      - USDT
      - CASH
  services:
    count: 10
    slugs:
    - twitter
    - ai-gen
    - test
    - exa
    - wordspace
    - openrouter
    - jupiter
    - near-intents
    - agentmail
    - coingecko
    endpoints:
    twitter: /api/service/twitter
    ai-gen: /api/service/ai-gen
    test: /api/service/test
    exa: /api/service/exa
    wordspace: /api/service/wordspace
    openrouter: /api/service/openrouter
    jupiter: /api/service/jupiter
    near-intents: /api/service/near-intents
    agentmail: /api/service/agentmail
    coingecko: /api/service/coingecko
    skill_docs: /api/service/{slug}/skill.md
  wallet:
    recommended: agentwallet
    skill: https://frames.ag/skill.md
    endpoint: /x402/fetch
---

# Frames Registry

Pay-per-call API gateway for AI agents. 10 services available via the x402 payment protocol. No API keys, no subscriptions — just pay per request with crypto.

## Base URL

```
https://registry.frames.ag
```

## Prerequisites

A crypto wallet funded with USDC is required to use paid endpoints. Two options:

- **[AgentWallet](https://frames.ag/skill.md) (recommended for agents)** — server-side wallet that handles 402 detection, payment signing, and retries automatically via a single `POST /x402/fetch` call. No private key management needed on your side.
- **Self-managed wallet** — any EVM wallet (Base) or Solana wallet with USDC. You sign x402 payment headers directly.

## Quick Start

1. **Set up a wallet** — create an [AgentWallet](https://frames.ag/skill.md) or fund your own wallet with USDC
2. **Discover services:** `GET https://registry.frames.ag/api/services`
3. **Read service docs:** `GET https://registry.frames.ag/api/service/{slug}/skill.md`
4. **Check pricing:** `GET https://registry.frames.ag/api/pricing`
5. **Make a paid request** — via AgentWallet's `/x402/fetch` or directly with x402 headers (see Payment Protocol below)

## Services (10)

| Service | Slug | Description | Endpoints | Price Range |
|---------|------|-------------|-----------|-------------|
| [Twitter API](https://registry.frames.ag/api/service/twitter/skill.md) | `twitter` | Full Twitter API access - users, tweets, search, communities, spaces, trends, and more via twitterapi.io | 26 | $0.005 - $0.02 |
| [AI Generation API](https://registry.frames.ag/api/service/ai-gen/skill.md) | `ai-gen` | Run AI models for image, video, audio, and 3D generation | 1 | $0.01 |
| [x402 Test Service](https://registry.frames.ag/api/service/test/skill.md) | `test` | Test x402 payment flows on Base Sepolia (EVM) and Solana Devnet. Use this service to verify your x402 client integration is working correctly. | 2 | $0.001 |
| [Exa API](https://registry.frames.ag/api/service/exa/skill.md) | `exa` | Semantic web search via Exa | 4 | $0.002 - $0.01 |
| [Wordspace Agent](https://registry.frames.ag/api/service/wordspace/skill.md) | `wordspace` | AI agent loop with sandboxed execution and OpenProse skills | 1 | $2 |
| [OpenRouter](https://registry.frames.ag/api/service/openrouter/skill.md) | `openrouter` | Text generation via 300+ models (OpenAI, Anthropic, Google, Meta, etc.) | 0 | free |
| [Jupiter API](https://registry.frames.ag/api/service/jupiter/skill.md) | `jupiter` | Solana token swap, price, search, and portfolio via Jupiter | 4 | $0.002 - $0.01 |
| [NEAR Intents API](https://registry.frames.ag/api/service/near-intents/skill.md) | `near-intents` | Cross-chain token swaps via 1Click deposit addresses | 1 | $0.01 |
| [AgentMail API](https://registry.frames.ag/api/service/agentmail/skill.md) | `agentmail` | Email infrastructure for AI agents — create inboxes, send/receive emails, manage threads | 5 | $0.005 - $0.01 |
| [CoinGecko API](https://registry.frames.ag/api/service/coingecko/skill.md) | `coingecko` | Crypto price data, market info, and token search — prices, market caps, trending tokens, and search across 10,000+ cryptocurrencies | 5 | $0.002 - $0.005 |

## Service Endpoints

Each service lives at `https://registry.frames.ag/api/service/{slug}` and exposes:

| Endpoint | Description |
|----------|-------------|
| `GET /` | Service info |
| `GET /health` | Health check |
| `GET /docs` | Interactive API docs |
| `GET /openapi.json` | OpenAPI 3.x spec |
| `GET /skill.md` | Agent-friendly documentation |

## Pricing Details

### Twitter API (`twitter`)

Base: `https://registry.frames.ag/api/service/twitter` | [Docs](https://registry.frames.ag/api/service/twitter/docs) | [OpenAPI](https://registry.frames.ag/api/service/twitter/openapi.json) | [Skill](https://registry.frames.ag/api/service/twitter/skill.md)

| Endpoint | Price | Description |
|----------|-------|-------------|
| `POST /api/user-info` | $0.005 | Look up a Twitter user's profile by username — returns bio, follower/following counts, verification status, and profile metadata |
| `POST /api/user-tweets` | $0.01 | Fetch a user's recent tweets by username or user ID, with optional reply inclusion and cursor pagination |
| `POST /api/user-followers` | $0.01 | List accounts following a user, paginated up to 200 per page with cursor-based navigation |
| `POST /api/user-following` | $0.01 | List accounts a user follows, paginated up to 200 per page with cursor-based navigation |
| `POST /api/verified-followers` | $0.01 | List only verified (blue-check) accounts following a user, by user ID with cursor pagination |
| `POST /api/search-users` | $0.01 | Search for Twitter users by keyword — matches against names, bios, and usernames |
| `POST /api/user-mentions` | $0.01 | Fetch tweets that @mention a user, with optional time range filtering (sinceTime/untilTime unix timestamps) |
| `POST /api/check-follow` | $0.005 | Check whether one user follows another — returns the follow relationship between two usernames |
| `POST /api/batch-users` | $0.02 | Fetch multiple user profiles in one request by comma-separated user IDs |
| `POST /api/tweets-by-ids` | $0.01 | Fetch full tweet data for multiple tweets by comma-separated tweet IDs |
| `POST /api/tweet-replies` | $0.01 | Get replies to a specific tweet, sortable by Relevance, Latest, or Likes with cursor pagination |
| `POST /api/search-tweets` | $0.01 | Advanced tweet search with operators — supports from:, to:, has:media, date ranges, engagement filters, and boolean logic |
| `POST /api/tweet-quotes` | $0.01 | Get all quote tweets of a specific tweet, with optional time range and reply inclusion filters |
| `POST /api/tweet-retweeters` | $0.01 | List users who retweeted a specific tweet, with cursor pagination |
| `POST /api/tweet-thread` | $0.01 | Retrieve the full conversation thread for a tweet — parent tweets and replies in context |
| `POST /api/list-tweets` | $0.01 | Fetch tweets from a Twitter List by list ID, with optional time range and reply filters |
| `POST /api/list-followers` | $0.01 | List users who follow a specific Twitter List, with cursor pagination |
| `POST /api/list-members` | $0.01 | List all members of a Twitter List, with cursor pagination |
| `POST /api/community-info` | $0.005 | Get a Twitter Community's metadata — name, description, member count, rules, and creation date |
| `POST /api/community-members` | $0.01 | List members of a Twitter Community, with cursor pagination |
| `POST /api/community-tweets` | $0.01 | Fetch tweets posted in a Twitter Community, with cursor pagination |
| `POST /api/space-detail` | $0.005 | Get details about a Twitter Space — title, host, participants, schedule, and state (live/scheduled/ended) |
| `POST /api/article` | $0.01 | Retrieve a long-form Twitter Article (Notes) by the tweet ID that contains it |
| `POST /api/trends` | $0.01 | Get trending topics for a location by WOEID (1=Worldwide, 23424977=US, 2459115=NYC) |
| `POST /api/invoke` | $0.01 | Search tweets (legacy — use /api/search-tweets instead) |
| `POST /api/search` | $0.01 | Search tweets (legacy — use /api/search-tweets instead) |

### AI Generation API (`ai-gen`)

Base: `https://registry.frames.ag/api/service/ai-gen` | [Docs](https://registry.frames.ag/api/service/ai-gen/docs) | [OpenAPI](https://registry.frames.ag/api/service/ai-gen/openapi.json) | [Skill](https://registry.frames.ag/api/service/ai-gen/skill.md)

| Endpoint | Price | Description |
|----------|-------|-------------|
| `POST /api/invoke` | $0.01 | Run AI model prediction (price varies by model) |

### x402 Test Service (`test`)

Base: `https://registry.frames.ag/api/service/test` | [Docs](https://registry.frames.ag/api/service/test/docs) | [OpenAPI](https://registry.frames.ag/api/service/test/openapi.json) | [Skill](https://registry.frames.ag/api/service/test/skill.md)

| Endpoint | Price | Description |
|----------|-------|-------------|
| `POST /api/invoke` | $0.001 | Test x402 payment flow (Base Sepolia & Solana Devnet) |
| `POST /api/echo` | $0.001 | Echo data with payment verification |

### Exa API (`exa`)

Base: `https://registry.frames.ag/api/service/exa` | [Docs](https://registry.frames.ag/api/service/exa/docs) | [OpenAPI](https://registry.frames.ag/api/service/exa/openapi.json) | [Skill](https://registry.frames.ag/api/service/exa/skill.md)

| Endpoint | Price | Description |
|----------|-------|-------------|
| `POST /api/search` | $0.01 | Semantic web search |
| `POST /api/find-similar` | $0.01 | Find similar pages |
| `POST /api/contents` | $0.002 | Extract URL contents |
| `POST /api/answer` | $0.01 | AI-powered answer |

### Wordspace Agent (`wordspace`)

Base: `https://registry.frames.ag/api/service/wordspace` | [Docs](https://registry.frames.ag/api/service/wordspace/docs) | [OpenAPI](https://registry.frames.ag/api/service/wordspace/openapi.json) | [Skill](https://registry.frames.ag/api/service/wordspace/skill.md)

| Endpoint | Price | Description |
|----------|-------|-------------|
| `POST /api/invoke` | $2 | Run wordspace AI agent loop |

### Jupiter API (`jupiter`)

Base: `https://registry.frames.ag/api/service/jupiter` | [Docs](https://registry.frames.ag/api/service/jupiter/docs) | [OpenAPI](https://registry.frames.ag/api/service/jupiter/openapi.json) | [Skill](https://registry.frames.ag/api/service/jupiter/skill.md)

| Endpoint | Price | Description |
|----------|-------|-------------|
| `POST /api/swap` | $0.01 | Get swap quote and unsigned transaction |
| `POST /api/price` | $0.002 | Token price lookup |
| `POST /api/tokens` | $0.002 | Token search and metadata |
| `POST /api/portfolio` | $0.005 | Wallet portfolio positions |

### NEAR Intents API (`near-intents`)

Base: `https://registry.frames.ag/api/service/near-intents` | [Docs](https://registry.frames.ag/api/service/near-intents/docs) | [OpenAPI](https://registry.frames.ag/api/service/near-intents/openapi.json) | [Skill](https://registry.frames.ag/api/service/near-intents/skill.md)

| Endpoint | Price | Description |
|----------|-------|-------------|
| `POST /api/quote` | $0.01 | Cross-chain swap quote and deposit address |

### AgentMail API (`agentmail`)

Base: `https://registry.frames.ag/api/service/agentmail` | [Docs](https://registry.frames.ag/api/service/agentmail/docs) | [OpenAPI](https://registry.frames.ag/api/service/agentmail/openapi.json) | [Skill](https://registry.frames.ag/api/service/agentmail/skill.md)

| Endpoint | Price | Description |
|----------|-------|-------------|
| `POST /api/inbox/create` | $0.01 | Create a new email inbox for an AI agent |
| `POST /api/send` | $0.01 | Send an email from an agent inbox |
| `POST /api/messages` | $0.005 | List messages in an inbox |
| `POST /api/message` | $0.005 | Get a specific message by ID |
| `POST /api/threads` | $0.005 | List email threads in an inbox |

### CoinGecko API (`coingecko`)

Base: `https://registry.frames.ag/api/service/coingecko` | [Docs](https://registry.frames.ag/api/service/coingecko/docs) | [OpenAPI](https://registry.frames.ag/api/service/coingecko/openapi.json) | [Skill](https://registry.frames.ag/api/service/coingecko/skill.md)

| Endpoint | Price | Description |
|----------|-------|-------------|
| `POST /api/price` | $0.002 | Get token prices in any fiat/crypto currency |
| `POST /api/token-info` | $0.005 | Get detailed token information and market data |
| `POST /api/trending` | $0.005 | Get currently trending tokens |
| `POST /api/markets` | $0.005 | Get token market data with sorting and pagination |
| `POST /api/search` | $0.003 | Search tokens by name or symbol |

### AI Model Pricing (`ai-gen`)

Price is set dynamically based on the `model` field in the request body.

**Image Models:**

| Model | Price |
|-------|-------|
| `flux/schnell` | $0.004/image |
| `flux/2-pro` | $0.02 |
| `flux/kontext-pro` | $0.05/image |
| `bytedance/seedream-4` | $0.04/image |
| `google/nano-banana` | $0.05/image |
| `google/nano-banana-2` | $0.09/image (1K), $0.13/image (2K), $0.19/image (4K) |
| `google/nano-banana-pro` | $0.18/image |
| `google/imagen-4-fast` | $0.03/image |
| `ideogram/v3-turbo` | $0.04/image |
| `prunaai/z-image-turbo` | $0.006/image |
| `prunaai/p-image` | $0.006/image |
| `fofr/sdxl-emoji` | $0.01 |
| `qwen/qwen-image-edit-2511` | $0.04/image |
| `openai/dall-e-3` | $0.15/image |
| `nightmareai/real-esrgan` | $0.003/image |

**Video Models:**

| Model | Price |
|-------|-------|
| `google/veo-3` | $0.48/sec (audio), $0.24/sec (no audio) |
| `google/veo-3-fast` | $0.18/sec (audio), $0.12/sec (no audio) |
| `google/veo-3.1` | $0.48/sec (audio), $0.24/sec (no audio) |
| `google/veo-3.1-fast` | $0.18/sec (audio), $0.12/sec (no audio) |
| `openai/sora-2` | $0.12/sec |
| `openai/sora-2-pro` | $0.36/sec (720p), $0.60/sec (1080p) |
| `kwaivgi/kling-v2.5-turbo-pro` | $0.09/sec |
| `kwaivgi/kling-v2.6` | $0.09/sec |
| `kwaivgi/kling-v2.6-motion-control` | $0.09/sec (std), $0.15/sec (pro) |
| `bytedance/seedance-1-pro` | $0.04/sec (480p), $0.08/sec (720p), $0.18/sec (1080p) |
| `bytedance/seedance-1-lite` | $0.03/sec (480p), $0.05/sec (720p), $0.09/sec (1080p) |
| `bytedance/seedance-1-pro-fast` | $0.02/sec (480p), $0.03/sec (720p), $0.08/sec (1080p) |
| `bytedance/seedance-1.5-pro` | $0.04/sec (720p), $0.07/sec (720p+audio) |
| `minimax/video-01` | $0.60 |
| `wan-video/wan-2.2-t2v-fast` | $0.12 |
| `wan-video/wan-2.2-i2v-fast` | $0.07 |
| `wan-video/wan-2.5-i2v-fast` | $0.09/sec (720p), $0.13/sec (1080p) |
| `runwayml/gen4-turbo` | $0.06/sec |
| `runwayml/gen4-aleph` | $0.22/sec |
| `veed/fabric-1.0` | $0.10/sec (480p), $0.18/sec (768p) |
| `shreejalmaharjan-27/tiktok-short-captions` | $0.002/sec |

## Payment Protocol (x402)

All paid endpoints use the [x402](https://www.x402.org/) payment protocol. No API keys needed.

**Flow:**

1. Call any paid endpoint without a payment header
2. Receive `402 Payment Required` with a `PAYMENT-REQUIRED` header (Base64 JSON with price, network, payTo address)
3. Sign a payment for the requested amount on your chosen network
4. Retry the same request with the `PAYMENT-SIGNATURE` header
5. Receive the response plus a `PAYMENT-RESPONSE` confirmation header

Failed requests are automatically refunded.

**Supported Networks:**

| Network | ID | Type | Environment |
|---------|----|------|-------------|
| Base | `eip155:8453` | EVM | Mainnet |
| Base Sepolia | `eip155:84532` | EVM | Testnet |
| Solana | `solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp` | Solana | Mainnet |
| Solana Devnet | `solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1` | Solana | Devnet |

**Accepted Tokens:** USDC, USDT, CASH (availability varies by network)

## Platform Endpoints (FREE)

| Endpoint | Description |
|----------|-------------|
| `GET https://registry.frames.ag/api` | Platform info and version |
| `GET https://registry.frames.ag/api/services` | List all services with metadata |
| `GET https://registry.frames.ag/api/services/:slug` | Single service details |
| `GET https://registry.frames.ag/api/pricing` | All pricing policies |
| `GET https://registry.frames.ag/api/networks` | Supported payment networks |
| `GET https://registry.frames.ag/api/health` | Health check |
| `GET https://registry.frames.ag/api/packages` | Skill/agent package catalog |
| `GET https://registry.frames.ag/api/packages/:slug/bundle` | Download package bundle |
| `GET https://registry.frames.ag/.well-known/x402` | x402 discovery document |
| `GET https://registry.frames.ag/docs` | Interactive docs (HTML) |

## Agent Integration

### With AgentWallet (recommended)

[AgentWallet](https://frames.ag/skill.md) is a server-side wallet for AI agents. It manages keys, balances, and x402 payment signing so agents don't need to handle crypto directly.

1. Authenticate with AgentWallet (email OTP → API token)
2. Fund your wallet with USDC on Base or Solana
3. Call any Frames Registry endpoint through AgentWallet's proxy:

```
POST https://frames.ag/x402/fetch
{
  "url": "https://registry.frames.ag/api/service/twitter/api/search-tweets",
  "method": "POST",
  "body": { "query": "AI agents" }
}
```

AgentWallet detects the 402 response, signs payment, and retries automatically.

### Direct x402 (self-managed wallet)

Requires an EVM or Solana wallet with USDC and the ability to sign EIP-3009 or SPL transfers.

1. Make the request to the paid endpoint
2. Parse the `PAYMENT-REQUIRED` header from the 402 response (Base64 JSON with price, network, payTo)
3. Sign a payment authorization for the exact amount
4. Retry with the `PAYMENT-SIGNATURE` header

Source

Creator's repository · frames-engineering/skills

View on GitHub

Security

Security checks in progress
Results will appear here once audits complete
What this skill can do
Reads your filesConnects to the internetRuns code on your machine
Checked by 3 independent security firms
Does it try to trick the AI?Not yet checkedPending · Gen Agent Trust Hub
Does it sneak in hidden code?Not yet checkedPending · Socket
Does it have known bugs?Not yet checkedPending · Snyk