Skip to main content
Every request to the Propal API must include an API key in the Authorization header.
API keys are scoped to a single organization. All data accessed through a key belongs to that organization — there’s no cross-organization access.

Creating API keys

You can create API keys from your Propal dashboard:
  1. Navigate to Settings > API Keys
  2. Click Create API Key
  3. Enter a name (e.g., “Zapier Integration”, “Internal Dashboard”)
  4. Select the scopes (permissions) the key should have
  5. Click Create Key
The full API key is displayed only once at creation time. Copy it immediately and store it securely.

Key format

API keys follow the format:
  • pp_live_ — fixed prefix, identifies this as a Propal API key
  • The rest is a cryptographically random string
Keys are stored as SHA-256 hashes in our database — we never store the raw key. If you lose it, you’ll need to create a new one.

Scopes

Each API key has a set of scopes that define what it can access. Scopes follow the format {resource}:{action}.

Available scopes

Scope combinations by use case

Ideal for syncing data from Propal to your CRM without modifying anything.
Create proposals automatically from your pipeline. Read-only on catalog, templates, and themes.
Build custom dashboards with your proposal metrics and pipeline data.
All scopes selected. Use this only for trusted internal tools.

Security best practices

1

Use minimal scopes

Only grant the scopes your integration actually needs. A read-only dashboard doesn’t need write or delete permissions.
2

Rotate keys periodically

Revoke and recreate API keys on a regular basis (e.g., every 90 days).
3

Never expose keys in client-side code

API keys should only be used in server-side code, backend services, or CI/CD pipelines. Never include them in JavaScript bundles, mobile apps, or public repositories.
4

Use environment variables

Store keys in environment variables or a secrets manager — never hardcode them.
5

Monitor usage

Check the “Last used” column in Settings > API Keys to detect unexpected activity.

Error responses

If authentication fails, you’ll receive a 401 Unauthorized response:
If your key doesn’t have the required scope for an endpoint, you’ll get a 403 Forbidden: