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.
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/privy-wallets-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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
openapi: 3.2.0
info:
title: Privy REST Users Wallets API
description: 'Privy is a wallet and authentication platform for Web3 apps. The Privy REST
API exposes endpoints for managing users, wallets, policies, and webhooks
across multiple blockchains (Ethereum, Solana, Cosmos, Stellar, Sui, Aptos,
Movement, Tron, Bitcoin Segwit/Taproot, Pearl, NEAR, TON, Starknet, Spark).
All requests must be made over HTTPS and include both the privy-app-id
header and an Authorization header using HTTP Basic auth with the app id as
the username and the app secret as the password. The API enforces per-app
rate limits and returns 429 on overage.
'
version: '1.0'
contact:
name: Privy
url: https://docs.privy.io/
license:
name: Privy Terms of Service
url: https://www.privy.io/legal/terms-of-use
servers:
- url: https://api.privy.io/v1
description: Production
security:
- appSecretAuth: []
tags:
- name: Wallets
description: Create and operate Privy-managed wallets.
paths:
/wallets:
post:
tags:
- Wallets
summary: Create a wallet
description: 'Creates a new wallet on the requested chain for the requested owner.
Supported chain types include ethereum, solana, cosmos, stellar, sui,
aptos, movement, tron, bitcoin-segwit, bitcoin-taproot, pearl, near,
ton, starknet, and spark.
'
operationId: createWallet
parameters:
- $ref: '#/components/parameters/PrivyAppId'
- name: privy-idempotency-key
in: header
required: false
schema:
type: string
description: Optional idempotency key.
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- chain_type
properties:
chain_type:
type: string
enum:
- ethereum
- solana
- cosmos
- stellar
- sui
- aptos
- movement
- tron
- bitcoin-segwit
- bitcoin-taproot
- pearl
- near
- ton
- starknet
- spark
owner_id:
type: string
description: Optional owner user id.
policy_ids:
type: array
items:
type: string
responses:
'200':
description: Created wallet.
content:
application/json:
schema:
$ref: '#/components/schemas/Wallet'
'429':
description: Rate limit exceeded.
/wallets/{wallet_id}/rpc:
post:
tags:
- Wallets
summary: Execute a wallet RPC method
description: 'JSON-RPC method passthrough for signing transactions and arbitrary RPC
calls against a Privy-managed wallet. The request body is a JSON-RPC
envelope; supported methods depend on the wallet''s chain type.
'
operationId: walletRpc
parameters:
- $ref: '#/components/parameters/PrivyAppId'
- name: wallet_id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- method
properties:
method:
type: string
description: RPC method name, e.g. eth_signTransaction, personal_sign, eth_sendTransaction.
params:
type: array
items: {}
responses:
'200':
description: RPC response.
content:
application/json:
schema:
type: object
additionalProperties: true
components:
schemas:
Wallet:
type: object
properties:
id:
type: string
chain_type:
type: string
address:
type: string
owner_id:
type: string
policy_ids:
type: array
items:
type: string
created_at:
type: integer
parameters:
PrivyAppId:
name: privy-app-id
in: header
required: true
schema:
type: string
description: Privy application ID. Required on every request.
securitySchemes:
appSecretAuth:
type: http
scheme: basic
description: 'HTTP Basic auth using your Privy app ID as the username and your app
secret as the password. Must be sent alongside the privy-app-id header.
'