# Create an API key

> To create a SkedX Flow API key: open Settings → Developers → API Keys (https://flow.skode.ai/settings/api-keys/) and click + New key. Name it after the system that will use it, tick only what it needs under “What may this key do?” — to send templates, “Send messages and templates” (messages:send) and “List templates” (templates:read); nothing ticked means full access — and click Create. Copy the key straight away: it starts with sk_flow_ and is shown only once, because Flow keeps only a fingerprint of it. Send it on every request as the header Authorization: Bearer <key>. Keys don’t expire; the list shows each key’s permissions, creation date and last use, and Revoke stops a key at once. A missing or revoked key gets 401 “Valid API key required”; a missing permission gets 403 naming it.

Product: SkedX Flow · Topic: APIs & Developers · Draft — steps not yet re-verified in the live product

An API key is the password your other systems use to work in Flow — to send a template, list your templates or read contacts. Make one key per system, give it only what that system needs, and keep it where no visitor can see it. About three minutes; you need admin rights in Flow.

## Step 1: Open API Keys

In Flow, go to **Settings** -> **Developers** -> **API Keys** and click **+ New key**.
Open it directly: https://flow.skode.ai/settings/api-keys/

## Step 2: Name it, and choose what it may do

Name the key after the system that will use it — Website, n8n, Class reminders — so you know which one to revoke later. Under **What may this key do?** tick only what that system needs: to send templates, **Send messages and templates** and **List templates**. Nothing ticked means the key can do everything. Click **Create**.

## Step 3: What each permission allows

- **Send messages and templates** (`messages:send`) — [send templates](https://skode.ai/help/flow/developers/send-a-whatsapp-template-over-the-api/) and free-text replies.
- **List templates** (`templates:read`) — see your templates, their status and how many blanks each has.
- **Read contacts** (`contacts:read`) and **Create and update contacts** (`contacts:write`) — [find and change contacts](https://skode.ai/help/flow/developers/contacts-and-conversations-api/).
- **Read conversations** (`conversations:read`) and **Update conversations** (`conversations:write`) — list conversations and change their status.

A system that only sends reminders needs the first two and nothing else.

## Step 4: Copy the key — it is shown once

Your key appears once, starting with `sk_flow_`. Click **Copy** and store it where your system keeps secrets — an environment variable such as `FLOW_API_KEY`, or your tool’s credentials. Flow keeps only a fingerprint of it, so a lost key can’t be shown again: make a new one. Never put a key in a web page, a phone app or a shared document. Below it, **Try it** has a ready-made command that sends a real template to a number you own.

## Step 5: Send it with every request

Put the key in the `Authorization` header, after the word `Bearer` and one space. This request lists your templates — a safe first test, because it sends nothing:

```bash
export FLOW_API_KEY="sk_flow_…your key…"

curl -s "https://flowserver.skode.ai/api/v1/templates/?channel=whatsapp" \
  -H "Authorization: Bearer $FLOW_API_KEY"
```

## Step 6: If a request says 401 or 403

**401** “Valid API key required” means the key is missing, mistyped or revoked — check the header. **403** means the key isn’t allowed to do that, and the message names the permission it lacks, such as `contacts:read`: create a key with that box ticked. A 403 saying “The Flow API is not enabled for this account yet” means the Developers tools are switched off for your workspace — message us.

## Step 7: Check when a key was used, and revoke it

The **API Keys** list shows each key’s name, the start of the key, its permissions, and its **Created** and **Last used** dates. A key nobody has used in months is a key to revoke. Click **Revoke** beside it: it stops working at once, everywhere, and there is no undo — if a live system still uses it, create the replacement first and switch the system over.

## Common questions

### Do API keys expire?

No. A key works until you revoke it. That’s why each system should have its own key: you can revoke one without breaking the others.

### I lost my key. Can Flow show it again?

No — Flow keeps only a fingerprint, so nobody can read the key back, not even us. Create a new key, put it in your system, then revoke the old one.

### Can two systems share one key?

They can, but don’t. With one key each, **Last used** tells you which system is active, and revoking one never breaks the other.

### Is it safe to paste my key into ChatGPT or Claude?

No. Have the code read it from a setting called `FLOW_API_KEY` and put the real key there yourself — [our AI prompt](https://skode.ai/help/flow/developers/build-your-flow-integration-with-ai/) is written that way.

### Where does the key go in Zapier or n8n?

In n8n, as a Header Auth credential — [step by step](https://skode.ai/help/flow/developers/connect-flow-to-n8n/). In Zapier you usually don’t need one: an [inbound hook](https://skode.ai/help/flow/developers/connect-flow-to-zapier/) does the job.

## Useful links
- API Keys in Flow — create, check and revoke keys: https://flow.skode.ai/settings/api-keys/
- Flow API reference — try a request with your new key: https://flow.skode.ai/docs/

Videos and screenshots © 2026 SkedX, with sample data only. Share and link to them freely; copying the SkedX product or its design is not allowed. Terms: https://skode.ai/terms/

## Related guides
- Send your first WhatsApp template in 5 minutes: https://skode.ai/help/flow/developers/send-your-first-template-in-5-minutes/
- What the Flow API can do: https://skode.ai/help/flow/developers/what-the-flow-api-can-do/
- Flow API errors, and how to fix each one: https://skode.ai/help/flow/developers/flow-api-errors/
- Contacts and conversations over the API: https://skode.ai/help/flow/developers/contacts-and-conversations-api/
- Send and check one-time codes (OTP): https://skode.ai/help/flow/developers/send-and-check-one-time-codes/
- Build your Flow integration with an AI assistant: https://skode.ai/help/flow/developers/build-your-flow-integration-with-ai/

Source: https://skode.ai/help/flow/developers/create-an-api-key/