Privy Users API

Manage users and their linked accounts.

OpenAPI Specification

privy-users-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Privy REST Users 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: Users
  description: Manage users and their linked accounts.
paths:
  /users/{user_id}:
    get:
      tags:
      - Users
      summary: Get a user by ID
      description: Retrieves a Privy user object, including linked accounts, MFA methods, and metadata.
      operationId: getUser
      parameters:
      - $ref: '#/components/parameters/PrivyAppId'
      - name: user_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: User object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
        '404':
          description: User not found.
components:
  schemas:
    User:
      type: object
      properties:
        id:
          type: string
        created_at:
          type: integer
          description: Unix timestamp (seconds).
        linked_accounts:
          type: array
          items:
            type: object
            additionalProperties: true
        mfa_methods:
          type: array
          items:
            type: object
            additionalProperties: true
        custom_metadata:
          type: object
          additionalProperties: true
  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.

        '