Skip to main content

Authentication methods

Codika supports four authentication methods on its public API: For custom dashboards, use instance keys (ck_). They’re auto-generated, scoped to exactly one process instance, and require no setup beyond copying the key. For external platforms that sign webhooks (Resend, Stripe, GitHub, Clerk), use webhook signature verification. The external platform creates the signing secret — you just paste it into Codika. For platforms that can’t set custom headers (GCP Pub/Sub, IoT devices, simple webhook senders), use URL query parameter authentication.

Where to find your instance API key

  1. Open the Codika dashboard
  2. Go to your process instance
  3. Open the trigger panel (playground)
  4. Find the “Public API Access” section
  5. Copy the API key (format: ck_...)
The API key is also visible in the cURL examples shown in the trigger panel.
Instance API keys are secrets. Treat them like passwords. Never expose them in client-side code, public repositories, or browser network requests.

Store keys server-side only

Your custom app should never send the API key from the browser. Instead, proxy all Codika calls through your own server-side API routes.

Example: SvelteKit server endpoint

Example: Next.js API route

Environment variables

Store these in your .env file (gitignored):

Key regeneration

If an instance API key is compromised, you can regenerate it from the Codika dashboard. The old key is immediately invalidated. Update your app’s environment variables with the new key.

When to use org keys instead

Use cko_ organization keys when your app needs to:
  • Access multiple process instances (not just one)
  • Deploy use cases programmatically
  • Read agent skills via the API
  • Operate across the organization
For most custom dashboards that serve one use case, ck_ instance keys are simpler and more secure (narrower scope).

URL query parameter authentication

Some platforms (GCP Pub/Sub, IoT devices, simple webhook senders) can only configure a URL — they can’t set custom HTTP headers. For these, pass your instance API key as a query parameter:
This uses the same ck_ instance key and the same validation — just a different delivery method.
Prefer headers when possible. Query parameters can appear in server access logs and monitoring dashboards. Use this method only when the calling platform doesn’t support custom headers. HTTPS encrypts the full URL in transit, so the key is protected on the wire.

When to use query parameter auth