Skip to main content
Dashboard hiring does not need a key. Automations, SDKs, MCP, and custom ATS flows do.

Do you need an API key?

If you only use the dashboard, you can skip the rest of this page.

Create a key (Starter+)

1

Open API Keys

Go to Assess → Developer → API Keys. Owners, admins, and developers can create keys.
2

Create and copy

Create a key and copy it immediately — Assess shows it once. Live keys start with ct_live_. Test keys start with ct_test_. The dashboard Live / Test toggle decides which kind you mint.
3

Choose permissions (scopes)

Limit what the key can do. Empty scopes = full access (legacy). Prefer the smallest set — see Scopes.
4

Optional: restrict this key by IP

Add CIDR ranges on create or later under IPs on that key. Empty = any IP. Each key has its own list — this is not an org-wide or MCP setting.
5

Store it safely

Put it in your secrets manager or env var PRAXICRAFT_API_KEY. Never commit it to git or paste it into a public chat.
There is no Public API to create, list, or revoke keys. Manage them only in the dashboard.

How software uses the key

Base URL: https://assess.praxicraft.com
Prefix: /api/v1/public/
Auth: Authorization: Bearer ct_live_… or ct_test_…
Every Public API request sends:
Use a ct_test_… key the same way when you are in Test mode. The prefix selects the environment — you do not send a livemode header on Public API requests. Full route shape:

What success and errors look like

Success bodies are plain JSON objects/lists (not wrapped in { "status", "data" }). Errors look like:
Full list: Errors.

IP allowlists (per key)

Set CIDRs on that key in Developer → API Keys. Empty list = any IP. When a list is set, Public API requests that use Authorization: Bearer ct_live_… or ct_test_… must come from one of those networks. Otherwise Assess returns 403 IP_NOT_ALLOWED.
IP allowlists do not apply to MCP OAuth (Cursor, Claude, and other hosted agents). Those clients do not have stable IPs. Use a dedicated key with an empty allowlist for stdio MCP (PRAXICRAFT_API_KEY) if you also restrict other keys by CIDR.

Webhook secrets are different

When Assess calls your URL, it uses a webhook secret (whsec_…), not your API key. See Webhooks.

Rotate a key safely

  1. Create a new key with the same scopes.
  2. Update Zapier / n8n / workers / MCP to use the new key.
  3. Revoke the old key in the dashboard once traffic has moved.

Live and Test mode

Same organisation, two isolated environments. Switch Live / Test in the dashboard. Shared across modes: org profile, team members, billing, platform case catalog, org case library. Copy to test mode on a live assessment duplicates the assessment and its case links (new slug, draft, no invites). Wrong-mode GET returns 404 (a test key cannot see a live assessment id). Objects include "livemode": true|false in Public API JSON. Dashboard session requests send X-Praxicraft-Livemode: true|false. Public API mode comes only from the key prefix.
A key that does not start with ct_live_ or ct_test_ is not treated as an organisation key (MCP tokens use a different format). Do not mint a fake prefix that still points at production data — use Test mode instead.

Next

Scopes

What each permission allows.

Quickstart

First invite with your new key.
Last modified on August 24, 2026