> **Can't find what you're looking for?** Use `search_docs` on the docs MCP server at `https://www.openfort.io/api/mcp` to find what you need.
>
> **Have feedback?** Use `submit_feedback` on the same MCP server.

# Openfort API

Version: `1.0.0`

The Openfort REST API lets you manage users, authentication, wallets, transactions, and gas sponsorship.

**Base URL**: `https://api.openfort.io`

Every request sends a Bearer token in the `Authorization` header — your **secret key** (`sk_test_…` / `sk_live_…`) for server-to-server calls, or your **publishable key** (`pk_test_…` / `pk_live_…`) for client-safe ones. Test keys operate on testnet chains, live keys on mainnet.

Read the guides before you start:

- [**Authentication**](https://www.openfort.io/docs/api-reference/authentication) — keys, user access tokens, third-party auth, and test vs live mode.
- [**Errors**](https://www.openfort.io/docs/api-reference/errors) — HTTP status codes and the JSON error envelope.
- [**Pagination**](https://www.openfort.io/docs/api-reference/pagination) — paging list endpoints with `limit` and `skip`, and expanding related data.

The machine-readable spec is served at [`/docs/openapi.json`](https://www.openfort.io/docs/openapi.json).

## Servers

- `https://api.openfort.io`: Openfort API Server

## Endpoints

### Users

The end users of your project: create and look up user records and the auth accounts linked to them.

- [`GET /v2/users`](https://www.openfort.io/docs/api-reference/users#getauthusers): List authenticated users
- [`GET /v2/users/{id}`](https://www.openfort.io/docs/api-reference/users#getauthuser): Get authenticated user by id
- [`DELETE /v2/users/{id}`](https://www.openfort.io/docs/api-reference/users#deleteuser): Delete user by id
- [`GET /v2/users/{id}/wallet`](https://www.openfort.io/docs/api-reference/users#getuserwallet): Get wallet for user
- [`POST /v2/users/pregenerate`](https://www.openfort.io/docs/api-reference/users#pregenerateuserv2): Pre-generate a user with an embedded account
- [`GET /iam/v2/me`](https://www.openfort.io/docs/api-reference/users#mev2): Get user information
- [`POST /iam/v2/user/third_party`](https://www.openfort.io/docs/api-reference/users#thirdpartyv2): Verify oauth token of a third party auth provider

### Sign In and Sign Up

Create user sessions: email and password, email OTP, phone, social providers, or anonymously — plus sign out.

- [`POST /iam/v2/auth/sign-in/social`](https://www.openfort.io/docs/api-reference/sign-in-and-sign-up#socialsignin): Sign in with a social provider
- [`POST /iam/v2/auth/sign-out`](https://www.openfort.io/docs/api-reference/sign-in-and-sign-up#signout): Sign out
- [`POST /iam/v2/auth/sign-up/email`](https://www.openfort.io/docs/api-reference/sign-in-and-sign-up#signupemail): Sign up with email and password
- [`POST /iam/v2/auth/sign-in/email`](https://www.openfort.io/docs/api-reference/sign-in-and-sign-up#signinemail): Sign in with email and password
- [`POST /iam/v2/auth/sign-in/anonymous`](https://www.openfort.io/docs/api-reference/sign-in-and-sign-up#signinanonymous): Anonymous sign in
- [`POST /iam/v2/auth/sign-in/phone-number`](https://www.openfort.io/docs/api-reference/sign-in-and-sign-up#signinphonenumber): Sign in with phone
- [`POST /iam/v2/auth/sign-in/email-otp`](https://www.openfort.io/docs/api-reference/sign-in-and-sign-up#signinemailotp): Sign in with email OTP

### Sign-In with Ethereum

Wallet-based authentication (SIWE): nonce and verify to sign in, and link or unlink additional wallets.

- [`POST /iam/v2/auth/siwe/nonce`](https://www.openfort.io/docs/api-reference/sign-in-with-ethereum#siwenonce): Initialize SIWE login
- [`POST /iam/v2/auth/siwe/verify`](https://www.openfort.io/docs/api-reference/sign-in-with-ethereum#siweverify): Login with SIWE
- [`POST /iam/v2/auth/link-siwe/nonce`](https://www.openfort.io/docs/api-reference/sign-in-with-ethereum#linksiwenonce): Initialize SIWE link
- [`POST /iam/v2/auth/link-siwe/verify`](https://www.openfort.io/docs/api-reference/sign-in-with-ethereum#linksiweverify): Verify and link SIWE wallet
- [`GET /iam/v2/auth/link-siwe/list-wallets`](https://www.openfort.io/docs/api-reference/sign-in-with-ethereum#linksiwelistwallets): List linked wallets
- [`POST /iam/v2/auth/link-siwe/unlink`](https://www.openfort.io/docs/api-reference/sign-in-with-ethereum#linksiweunlink): Unlink SIWE wallet

### Email OTP

One-time codes over email: send and check codes, verify an address, or reset a password.

- [`POST /iam/v2/auth/email-otp/send-verification-otp`](https://www.openfort.io/docs/api-reference/email-otp#emailotpsendverificationotp): Request email verification with OTP
- [`POST /iam/v2/auth/email-otp/check-verification-otp`](https://www.openfort.io/docs/api-reference/email-otp#checkverificationotp): Check email OTP
- [`POST /iam/v2/auth/email-otp/verify-email`](https://www.openfort.io/docs/api-reference/email-otp#emailotpverifyemail): Verify email with OTP
- [`POST /iam/v2/auth/email-otp/reset-password`](https://www.openfort.io/docs/api-reference/email-otp#emailotpresetpassword): Reset password with email OTP

### Phone

One-time codes over SMS: send and verify codes, and phone-based password resets.

- [`POST /iam/v2/auth/phone-number/send-otp`](https://www.openfort.io/docs/api-reference/phone#phonenumbersendotp): Send OTP to phone number
- [`POST /iam/v2/auth/phone-number/verify`](https://www.openfort.io/docs/api-reference/phone#phonenumberverify): Verify phone OTP
- [`POST /iam/v2/auth/phone-number/forget-password`](https://www.openfort.io/docs/api-reference/phone#phonenumberforgetpassword): Reset password reset with phone(forget password flow)
- [`POST /iam/v2/auth/phone-number/request-password-reset`](https://www.openfort.io/docs/api-reference/phone#phonenumberrequestpasswordreset): Request password reset with phone
- [`POST /iam/v2/auth/phone-number/reset-password`](https://www.openfort.io/docs/api-reference/phone#phonenumberresetpassword): Reset password with phone OTP

### Password and Email

Manage credentials: change or reset passwords and change or verify email addresses.

- [`POST /iam/v2/auth/forget-password`](https://www.openfort.io/docs/api-reference/password-and-email#forgetpassword): Forget password
- [`POST /iam/v2/auth/reset-password`](https://www.openfort.io/docs/api-reference/password-and-email#resetpassword): Reset password
- [`GET /iam/v2/auth/verify-email`](https://www.openfort.io/docs/api-reference/password-and-email#verifyemail): Verify email
- [`POST /iam/v2/auth/send-verification-email`](https://www.openfort.io/docs/api-reference/password-and-email#sendverificationemail): Send verification email
- [`POST /iam/v2/auth/change-email`](https://www.openfort.io/docs/api-reference/password-and-email#changeemail): Change email
- [`POST /iam/v2/auth/change-password`](https://www.openfort.io/docs/api-reference/password-and-email#changepassword): Change password
- [`GET /iam/v2/auth/reset-password/{token}`](https://www.openfort.io/docs/api-reference/password-and-email#resetpasswordbytoken): Reset password callback
- [`POST /iam/v2/auth/request-password-reset`](https://www.openfort.io/docs/api-reference/password-and-email#requestpasswordreset): Request password reset
- [`POST /iam/v2/auth/forget-password/email-otp`](https://www.openfort.io/docs/api-reference/password-and-email#forgetpasswordemailotp): Request password reset with email OTP

### Sessions and Tokens

Inspect and revoke auth sessions, and mint or refresh access tokens.

- [`GET /iam/v2/auth/get-session`](https://www.openfort.io/docs/api-reference/sessions-and-tokens#authgetsession): Get the current session
- [`GET /iam/v2/auth/list-sessions`](https://www.openfort.io/docs/api-reference/sessions-and-tokens#listsessions): List sessions
- [`POST /iam/v2/auth/revoke-session`](https://www.openfort.io/docs/api-reference/sessions-and-tokens#authrevokesession): Revoke session
- [`POST /iam/v2/auth/revoke-sessions`](https://www.openfort.io/docs/api-reference/sessions-and-tokens#revokesessions): Revoke sessions
- [`POST /iam/v2/auth/revoke-other-sessions`](https://www.openfort.io/docs/api-reference/sessions-and-tokens#revokeothersessions): Revoke other sessions
- [`POST /iam/v2/auth/refresh-token`](https://www.openfort.io/docs/api-reference/sessions-and-tokens#refreshtoken): Refresh access token
- [`POST /iam/v2/auth/get-access-token`](https://www.openfort.io/docs/api-reference/sessions-and-tokens#getaccesstoken): Get access token

### Linked Accounts

The auth identities linked to a user: list and inspect, link social, unlink.

- [`POST /iam/v2/auth/link-social`](https://www.openfort.io/docs/api-reference/linked-accounts#linksocial): Link social account
- [`GET /iam/v2/auth/list-accounts`](https://www.openfort.io/docs/api-reference/linked-accounts#listaccounts): List lined accounts
- [`POST /iam/v2/auth/unlink-account`](https://www.openfort.io/docs/api-reference/linked-accounts#unlinkaccount): Unlink account
- [`POST /iam/v2/auth/account-info`](https://www.openfort.io/docs/api-reference/linked-accounts#accountinfo): Get account info

### Accounts

Blockchain accounts (wallets) attached to your users: create, recover, and manage EVM and Solana accounts.

- [`GET /v2/accounts`](https://www.openfort.io/docs/api-reference/accounts#getaccountsv2): List user accounts
- [`POST /v2/accounts`](https://www.openfort.io/docs/api-reference/accounts#createaccountv2): Create new account
- [`GET /v2/accounts/signer`](https://www.openfort.io/docs/api-reference/accounts#getsigneridbyaddress): Get signer ID by address
- [`GET /v2/accounts/{id}`](https://www.openfort.io/docs/api-reference/accounts#getaccountv2): Get existing account
- [`DELETE /v2/accounts/{id}`](https://www.openfort.io/docs/api-reference/accounts#removeaccount): Delete account
- [`POST /v2/accounts/switch-chain`](https://www.openfort.io/docs/api-reference/accounts#switchchainv2): Switch account blockchain
- [`POST /v2/accounts/{accountUuid}/export-share`](https://www.openfort.io/docs/api-reference/accounts#exportaccountshare): Export account share

### Sessions

Session keys: scoped, time-boxed signing permissions granted to an account.

- [`GET /v1/sessions`](https://www.openfort.io/docs/api-reference/sessions#getplayersessions): List session keys of a player
- [`POST /v1/sessions`](https://www.openfort.io/docs/api-reference/sessions#createsession): Create a session key
- [`POST /v1/sessions/revoke`](https://www.openfort.io/docs/api-reference/sessions#revokesession): Revoke the session session key
- [`POST /v1/sessions/{id}/signature`](https://www.openfort.io/docs/api-reference/sessions#signaturesession): Send signed userOperationHash to create session
- [`GET /v1/sessions/{id}`](https://www.openfort.io/docs/api-reference/sessions#getsession): Returns a player session by session id

### Backend Wallets

Server-side wallets your backend controls, for automated signing and treasury operations.

- [`POST /v2/accounts/backend`](https://www.openfort.io/docs/api-reference/backend-wallets#createbackendwallet): Create backend wallet
- [`DELETE /v2/accounts/backend/{id}`](https://www.openfort.io/docs/api-reference/backend-wallets#deletebackendwallet): Delete backend wallet
- [`POST /v2/accounts/backend/{id}/sign`](https://www.openfort.io/docs/api-reference/backend-wallets#sign): Sign data via backend wallet
- [`POST /v2/accounts/backend/{id}/export`](https://www.openfort.io/docs/api-reference/backend-wallets#exportprivatekey): Export private key (E2E encrypted)
- [`POST /v2/accounts/backend/import`](https://www.openfort.io/docs/api-reference/backend-wallets#importprivatekey): Import private key (E2E encrypted)
- [`POST /v2/accounts/backend/register-secret`](https://www.openfort.io/docs/api-reference/backend-wallets#registerwalletsecret): Register wallet secret
- [`POST /v2/accounts/backend/revoke-secret`](https://www.openfort.io/docs/api-reference/backend-wallets#revokewalletsecret): Revoke wallet secret
- [`POST /v2/accounts/backend/rotate-secrets`](https://www.openfort.io/docs/api-reference/backend-wallets#rotatewalletsecret): Rotate wallet secret

### Transaction Intents

Create, sign, and track blockchain transactions executed through Openfort.

- [`GET /v1/transaction_intents`](https://www.openfort.io/docs/api-reference/transaction-intents#gettransactionintents): List transaction intents
- [`POST /v1/transaction_intents`](https://www.openfort.io/docs/api-reference/transaction-intents#createtransactionintent): Create a transaction intent object
- [`GET /v1/transaction_intents/{id}`](https://www.openfort.io/docs/api-reference/transaction-intents#gettransactionintent): Get a transaction intent object
- [`POST /v1/transaction_intents/estimate_gas_cost`](https://www.openfort.io/docs/api-reference/transaction-intents#estimatetransactionintentcost): Estimate gas cost of creating a transaction
- [`POST /v1/transaction_intents/{id}/signature`](https://www.openfort.io/docs/api-reference/transaction-intents#signature): Send a signed transaction signableHash

### Contracts

Register smart contracts so transactions and policies can reference them by id.

- [`GET /v1/contracts`](https://www.openfort.io/docs/api-reference/contracts#getcontracts): List contracts
- [`POST /v1/contracts`](https://www.openfort.io/docs/api-reference/contracts#createcontract): Create contract object
- [`GET /v1/contracts/{id}`](https://www.openfort.io/docs/api-reference/contracts#getcontract): Get a contract
- [`POST /v1/contracts/{id}`](https://www.openfort.io/docs/api-reference/contracts#updatecontract): Updates a contract object
- [`DELETE /v1/contracts/{id}`](https://www.openfort.io/docs/api-reference/contracts#deletecontract): Deletes a contract object
- [`GET /v1/contracts/{id}/read`](https://www.openfort.io/docs/api-reference/contracts#readcontract): Read on chain contract repositories

### Solana Transactions

Look up sponsored Solana transactions by id or external id.

- [`GET /v1/solana/transactions`](https://www.openfort.io/docs/api-reference/solana-transactions#getsolanatransactionstatus): Get Solana transaction status

### Fee Sponsorship

Gas sponsorship configuration: pay gas for your users or charge it in ERC-20 / SPL tokens.

- [`GET /v2/fee-sponsorship`](https://www.openfort.io/docs/api-reference/fee-sponsorship#listfeesponsorships): List fee sponsorship policies
- [`POST /v2/fee-sponsorship`](https://www.openfort.io/docs/api-reference/fee-sponsorship#createfeesponsorship): Create a fee sponsorship
- [`GET /v2/fee-sponsorship/{feeSponsorshipId}`](https://www.openfort.io/docs/api-reference/fee-sponsorship#getfeesponsorship): Get a fee sponsorship
- [`PUT /v2/fee-sponsorship/{feeSponsorshipId}`](https://www.openfort.io/docs/api-reference/fee-sponsorship#updatefeesponsorship): Update a fee sponsorship
- [`DELETE /v2/fee-sponsorship/{feeSponsorshipId}`](https://www.openfort.io/docs/api-reference/fee-sponsorship#deletefeesponsorship): Delete a fee sponsorship
- [`PUT /v2/fee-sponsorship/{feeSponsorshipId}/enable`](https://www.openfort.io/docs/api-reference/fee-sponsorship#enablefeesponsorship): Enable a fee sponsorship
- [`PUT /v2/fee-sponsorship/{feeSponsorshipId}/disable`](https://www.openfort.io/docs/api-reference/fee-sponsorship#disablefeesponsorship): Disable a fee sponsorship

### Policies

Criteria-based rules that decide which operations an account may perform or have sponsored.

- [`GET /v2/policies`](https://www.openfort.io/docs/api-reference/policies#listpolicies): List policies
- [`POST /v2/policies`](https://www.openfort.io/docs/api-reference/policies#createpolicyv2): Create a policy
- [`GET /v2/policies/{policyId}`](https://www.openfort.io/docs/api-reference/policies#getpolicyv2): Get a policy
- [`POST /v2/policies/{policyId}`](https://www.openfort.io/docs/api-reference/policies#updatepolicyv2): Update a policy
- [`DELETE /v2/policies/{policyId}`](https://www.openfort.io/docs/api-reference/policies#deletepolicyv2): Delete a policy
- [`POST /v2/policies/evaluate`](https://www.openfort.io/docs/api-reference/policies#evaluatepolicyv2): Evaluate policy
