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 task catalog, org task library. Copy to test mode on a live assessment duplicates the assessment and its task 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 27, 2026