# Iterable setup for PopMCP

You paste one Iterable API key, made in your project under Integrations, API Keys. It works for that one project, and PopMCP finds out whether the project is in the US or the EU for you. Keys do not expire.

- Auth: API credentials
- Setup time: 2 min
- API base URL: https://api.iterable.com (US) or https://api.eu.iterable.com (EU)
- Credentials screen: https://app.iterable.com/settings/apiKeys
- Provider docs: https://support.iterable.com/hc/articles/360043464871

## Before you begin

- An Iterable account with the project you want to connect
- To be an org admin, or a member with the Manage Integrations permission on that project. Others can't see the API Keys page.
- A few features need your Iterable customer success manager to turn them on first: the single-user subscription endpoints, double opt-in, SMS phone verification and opt-in message types. Everything else works straight away.

## Get your credentials

### 1. Open API Keys in your project

Sign in at `app.iterable.com` (`app.eu.iterable.com` for an EU account) and pick the project you want to connect. Open Integrations, then API Keys. The page lists the project's keys without showing them in full, so an old key can't be copied from here.

Screen: https://app.iterable.com/settings/apiKeys

### 2. Create a Server-side key

Click New API Key. In the Create API Key window, name it something you will recognise, like `PopMCP`, and select the Server-side type, then click Create. Server-side reaches everything: users, events, catalogs, exports and sending. Choose Read-only instead if you only want reports on campaigns, templates, lists and journeys; Iterable does not let that type see user profiles or events. JavaScript, Mobile and Web keys won't work here.

Screen: https://app.iterable.com/settings/apiKeys

### 3. Copy the key

The Copy Your New API Key window shows the key once. Copy it now: after you close the window, Iterable can't show it again, and you would need to make a new one.

Screen: https://app.iterable.com/settings/apiKeys

### 4. Paste the key into PopMCP

Paste it into Iterable API key. PopMCP tries the key in Iterable's US and EU data centers and remembers where it works. Under More options, you can add a Project name, which is how the connection is labelled: Iterable's API doesn't share project names.

## Fields PopMCP asks for

- Iterable API key (apiKey) [required]: From Integrations > API Keys in Iterable: New API Key, then the Server-side type. A key works for one project. Stored encrypted, used server-side only.
- Project name (optional) (projectName): What to call this project in PopMCP. Iterable does not share project names with its API.

## Verify

PopMCP shows Iterable as Verified, labelled with your project name or Iterable project, and US or EU. Ask for a list of your Iterable lists: iterable_list_lists answers with their ids and names.

## Troubleshooting

### "Iterable didn't recognise this key in its US or EU data center"

Cause: The key was copied incompletely or has been deleted.

Fix: Iterable can't show a key twice, so create a new Server-side key under Integrations, API Keys and paste that.

### "That is a JavaScript key" (or Mobile, or Web)

Cause: Client-side keys only work inside apps and sites.

Fix: Create a new key and select the Server-side type.

### "Iterable knows this key but refused it"

Cause: The key was disabled in Iterable.

Fix: Check it under Integrations, API Keys, or create a new Server-side key.

### A tool answers that a Read-only key can't use this endpoint

Cause: Iterable limits Read-only keys to reports and setup data. User profiles and events are not included.

Fix: Create a Server-side key and connect again with it.

### A tool answers 429, or says the rate limit was reached

Cause: Each Iterable endpoint has its own limit. Lists of users and exports are the tightest, at 4 or 5 calls a minute per project, and your other integrations share them.

Fix: Wait as long as the answer says, then try again. For large data, start an export job.

### A profile or event update seems to be missing

Cause: Iterable processes updates in the background: it asks for about 60 seconds between changes to one user, and about five minutes after adding a new field.

Fix: Wait, read it again, and space out changes to the same user.

### A field you wrote isn't on the profile

Cause: The project is set to drop unknown fields. The answer lists them under filteredOutFields.

Fix: Add the field to the project's data schema in Iterable, or send createNewFields as true if your project allows it.

---

Source: https://www.docs.popmcp.com/docs/integrations/iterable/