Skip to main content

Authentication

para login

Authenticate with your Para developer account. Opens your browser for a secure OAuth flow with PKCE verification.
After login, the CLI automatically selects your first organization and project if none are configured. Sessions are stored at ~/.config/para/credentials.json with 0600 file permissions. The session is validated server-side on each CLI invocation.
Sessions are shared across key environments — logging in once gives you access to both beta and prod keys.

para logout

Clear stored authentication credentials.
The CLI sends a best-effort server-side session invalidation.

para auth status

Check whether your current session is valid. This performs a server-side validation, not just a local check.
Output
With --json:

para whoami

Show the current authenticated user and active context — organization, project, and environment.
Output
Organization shows the name and your role. Project shows the raw project ID. If the organization ID can’t be resolved to a name, the raw ID is shown instead.

Configuration

Configuration resolves from multiple sources: CLI flags, environment variables (PARA_ENVIRONMENT, PARA_ORG_ID, PARA_PROJECT_ID), .pararc, global config, then defaults. See Installation for the full resolution chain.

para config get

Read configuration values. Without a key, shows all values from both global and project config with their source.
Output
Read a specific key:
Project config (.pararc) takes precedence over global config (~/.config/para/config.json).

para config set

Set a configuration value.

Valid Keys

Examples

para config set --local writes the key name as-is (e.g., defaultEnvironment) into .pararc, but para init uses different key names (environment, organizationId, projectId). Use para init to create project-level config — it ensures the correct key names are used.

para config unset

Remove a configuration value.

para init

Create a .pararc configuration file in the current directory. This pins the organization, project, and environment for anyone working in this directory.
In interactive mode, you’ll be prompted to select a key environment (beta or prod). In non-interactive mode (--no-input), the current key environment from global config is used. The resulting .pararc file:
The .pararc writer rejects keys that contain sensitive terms (session, token, secret, credential, password, apikey, api_key) to prevent accidental credential storage in version-controlled files.

Organizations

para orgs list

List all organizations you belong to.
Output
The (active) indicator shows which organization is currently selected. With --json, returns an array of organization objects.

para orgs switch

Set the active organization. This updates your global config so subsequent commands use this org.
Without an org-id, an interactive selector is shown:
Output
With a specific ID:
After switching organizations, your previous project ID remains in the config but may point to a project in the old org. Run para projects switch to select a project in the new organization.

Projects

All project commands require an active organization. Set one with para orgs switch if you haven’t already.

para projects list

List projects in your active organization.
Output

para projects switch

Set the active project.
Without a project-id, an interactive selector shows all active projects in the current organization.

para projects create

Create a new project in the active organization.
Without flags, you’ll be prompted interactively for a name.

para projects update

Update a project’s name, description, or framework.
Uses the active project if no project-id is given. Without flags, prompts interactively.

para projects archive

Archive a project. Its API keys stop working immediately. This is reversible with restore.
Uses the active project if no project-id is given.
Archiving a project immediately disables all of its API keys. Active users will lose access.

para projects restore

Restore a previously archived project.
Use para projects list --include-archived to find the ID of archived projects.

API Keys

All key commands require an active organization and project. Set them with para orgs switch and para projects switch.

para keys list

List API keys for the active project.
Output

para keys get

Get details of an API key. Without a key ID, the CLI auto-resolves the key from your active project and key environment.

para keys create

Create a new API key in the active project.
The secret key is only shown once at creation time. Save it immediately.

para keys rotate

Rotate an API key. The old key stops working immediately. Without a key ID, the CLI auto-resolves the key from your active project and key environment.
Key rotation is irreversible. The old key stops working immediately after rotation.

para keys archive

Archive (revoke) an API key. The key stops working immediately. Without a key ID, the CLI auto-resolves the key from your active project and key environment.

para keys config

Configure settings for an API key. Without a sub-category, opens an interactive menu to browse all categories.
The CLI auto-resolves the key from your active project and key environment (-e beta or -e prod). If multiple keys exist for the same environment, you’ll be prompted to choose one.

Show Configuration

View the current configuration for an API key without entering an edit flow. Shows all settings organized by category.
Example output
Use para keys config show --json to pipe configuration into other tools or audit scripts. The JSON output uses raw values (arrays, booleans, null) rather than display strings.

Security

Configure auth methods, origins, session length, and IP restrictions.

Branding

Configure colors, fonts, social links, and email settings.

Setup / Networks

Configure wallet types and native passkey settings.

On/Off Ramps

Configure buy, receive, and withdraw settings.

Webhooks

Configure webhook endpoints, events, and signing secrets.
See for event type details and signature verification.

Scaffold a Project

para create

Scaffold a new application with Para SDK pre-configured. The interactive wizard walks you through template, network, auth, and wallet selection.

Interactive Flow

Without flags, para create walks you through each step:
  1. App name — lowercase, numbers, and hyphens only
  2. Template — Next.js or Expo
  3. Networks — EVM, Solana, Cosmos, Stellar (Expo is EVM-only)
  4. Auth methods — Email, Phone/SMS, OAuth
  5. OAuth providers — Google, Apple, Twitter, Discord, Facebook, Farcaster (Expo supports Google and Apple only)
  6. External wallets — Varies by network:
    • EVM: MetaMask, Coinbase, WalletConnect, Rainbow, Zerion, Rabby
    • Solana: Phantom, Backpack, Solflare, Glow
    • Cosmos: Keplr, Leap
  7. Expo-specific — Bundle identifier (e.g., com.mycompany.myapp)

Non-Interactive Mode

Non-interactive mode activates when an app name is provided along with --networks (for Next.js) or --bundle-id (for Expo). Email auth is enabled by default if no other auth method is specified.

API Key Connection

If you’re authenticated, the CLI offers to connect a Para project after scaffolding. This creates or selects an organization, project, and API key, then writes the key to the app’s .env file.

Package Manager Detection

The CLI detects your package manager automatically:
  1. --package-manager flag (highest priority)
  2. How you invoked the CLI (npx, yarn dlx, pnpm dlx, bunx)
  3. Lock files in the current directory
  4. Falls back to npm

Example


Diagnostics

para doctor

Scan your project for common Para SDK integration issues. Checks configuration, dependencies, setup patterns, and best practices.

What It Checks

Example Output

Filtering

Run only dependency checks:
Show only errors (skip warnings and info):

JSON Output

Use --json for CI/CD pipelines:
The command exits with code 1 if any error-severity checks fail, making it suitable for CI gates.