## TL;DR
Crisp scopes API keys to websites, and the website id is a long hex string, not your site's name or domain. 'Website id not found' means the id is wrong, belongs to a deleted website, or lives under a different account than the key. Copy the id from the website's settings and confirm the key belongs to the same account.

## The query

```text
crisp rest api 'website id not found'
```

## Use this when

- Crisp REST calls fail with 'website id not found'
- The id works in the dashboard but fails through the API
- Calls fail after a workspace or team change


## Not for

- Crisp API authentication errors
- Rate limit errors
- Crisp chat widget issues


## Steps

### 1. Copy the website id from settings

In Crisp, open the website's settings and copy the website id exactly. It's a hex string. People commonly paste the domain, the website name, or a truncated copy. Compare character by character.

Expected output: the exact website id string from Crisp settings.

### 2. Confirm the key's account owns the website

The API key must belong to an account with access to that website. Keys from a personal account can't see a company workspace's websites. Check which account issued the key.

Expected output: the key's account showing the website in its website list.

### 3. Check for deleted or transferred websites

If the id used to work, the website may have been deleted or moved to another workspace. Deleted websites keep their ids in your config but not in Crisp.

Expected output: the website present and active in the account's website list.

### 4. List websites with the key to verify

Call the website list endpoint with your key. If your id isn't in the response, the key can't see it, period. This distinguishes a wrong id from a wrong key in one call.

Expected output: the list response containing (or definitively missing) your website id.

## Variant phrasings

### crisp api website not found

Steps 1 and 4: exact id first, then the list call to prove visibility.

### crisp rest api authentication website id

Step 2 covers the key-account mismatch.

## Why it happens

Crisp has three similar-looking identifiers floating around: the website id, the website name, and the domain. Docs and dashboards show all three, and integrations grab whichever was on screen. The API only accepts the id, and it also enforces that the key's account can see the website, so there are two ways to fail and one error for both.

## Edge cases

- One key per website is the simple model for multi-site setups. Shared keys across sites cause exactly this.
- Website ids never change, but workspaces do. Re-verify after any workspace migration.
- The plugin API and REST API use different auth. Don't mix their credentials.

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_GamM6HqL7m6eQFZd5l4Cfw
