API: make your first call
The subscriber API you call with a Pro API key, and the public endpoints that need no key: hosts, a working curl call, rate limits, and error formats.
InfluencersKit has two kinds of API. The subscriber API reads and changes your list, and needs an API key from the Pro plan. The public endpoints answer public questions and accept signups, with no key.
Before you start
- For the subscriber API: a Pro plan and an API key. Create one under Settings → API keys & webhooks. See API keys.
- Call it from a server or a script, never from a web page.
- All requests go to
https://influencerskit.com, over HTTPS.
Your first call
- 1Put your key in an environment variable, so it stays out of your code.
- 2Run the request below in a terminal.
- 3Check that you get status 200 and a JSON page of subscribers.
export IK_API_KEY="ik_live_..." # your key
curl "https://influencerskit.com/api/subscribers?page=0&size=10" \
-H "Authorization: Bearer $IK_API_KEY"Response (shortened):
{
"content": [
{
"id": "6727f0c2a1b2c3d4e5f60718",
"email": "reader@example.com",
"firstName": "Ada",
"lastName": null,
"status": "active",
"tags": ["newsletter"],
"source": "form:your-handle/your-form",
"subscribedAt": "2026-11-01T09:12:00Z",
"subscriberCategory": "NORMAL"
}
],
"totalElements": 1,
"totalPages": 1,
"page": 0,
"size": 10
}Endpoints a key can call
Any other path returns 403 API_KEY_ENDPOINT_NOT_ALLOWED, including deleting subscribers, sequences, broadcasts, billing, team and settings.
| Method and path | What it does |
|---|---|
GET /api/subscribers?page=0&size=50 | One page of subscribers, newest first. page (from 0) and size (1 to 100) are required. Optional q searches email and name; status is active, unsubscribed, bounced, pending or inactive. |
GET /api/subscribers/status-counts | How many subscribers you have in each status: all, active, unsubscribed, bounced, pending, inactive. |
POST /api/subscribers | Adds a subscriber. If the address is already on your list, adds names where blank and merges tags instead. Body: email (required), firstName, lastName, tags, status, source. |
PUT /api/subscribers/{id} | Changes a subscriber. Body: email (required), and only the fields you change. tags replaces the whole list. |
Add or tag a subscriber
- The response is the subscriber, in the same shape as a row in the list.
- Calling it again for the same address adds the new tags and keeps the old ones. It never changes the status back to active.
- Send
"status":"unsubscribed"to record an unsubscribe that happened in your own system. - Over your plan's subscriber allowance you get 402. See plans.
Only add people who agreed to hear from you. A new subscriber added as active starts your active welcome sequences, and there's no confirmation email. See consent and unsubscribes.
curl -X POST https://influencerskit.com/api/subscribers \
-H "Authorization: Bearer $IK_API_KEY" \
-H "Content-Type: application/json" \
-d '{"email":"reader@example.com","firstName":"Ada","tags":["webinar-2026-11"]}'Rate limits
Responses to a key carry X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset (Unix seconds when the minute ends). Over the key limit you get 429 with a Retry-After header in seconds.
| Who | Limit |
|---|---|
| Each API key | 60 requests a minute |
Each IP address, all /api calls together | 120 a minute |
| Public subscribe endpoints | 10 a minute and 60 an hour per IP address |
Errors
Key errors look like {"message":"Invalid or revoked API key.","status":401,"code":"INVALID_API_KEY"}.
| Status | code | Meaning |
|---|---|---|
| 400 | PAGE_REQUIRED | A list call without page and size. |
| 400 | A missing or invalid field, such as a bad email. | |
| 401 | INVALID_API_KEY | The key is wrong, revoked, or keys are switched off. |
| 402 | Your list is at its plan limit. | |
| 403 | API_NOT_IN_PLAN | Your plan no longer includes API access. The key works again after an upgrade. |
| 403 | API_KEY_ENDPOINT_NOT_ALLOWED | That endpoint isn't open to keys. |
| 403 | ACCOUNT_SUSPENDED | Your account is suspended. |
| 404 | No subscriber with that id on your account. | |
| 409 | The change would reactivate someone who opted out. | |
| 429 | RATE_LIMITED | Wait for Retry-After seconds. |
Public endpoints, no key
- A public subscribe never reactivates an unsubscribed or bounced address. If it's eligible, the person is emailed a confirmation request instead.
- Store and checkout endpoints (
/api/public/{handle}/products,/api/public/checkout/create) are answered onhttps://your-handle.ikpages.com.
| Method and path | What it does |
|---|---|
GET /api/public/creators/search | Finds creators by name or handle. Query: q, page (from 0), size (default 12, max 24). |
GET /api/public/creators/{handle} | One creator: handle, name, bio, avatar, public URL. |
POST /api/public/creators/{handle}/subscribe | Adds a subscriber. Body: email (required), name or firstName and lastName, tags. |
POST /api/public/forms/{handle}/{formSlug}/subscribe | Adds a subscriber through a live form. Body: email (required), firstName, lastName, ref, referrerSubscriberId. |
GET /api/public/forms/{handle}/{formSlug}/embed | The form as an HTML page, for an iframe. See embed a form. |
GET /api/public/lp/{handle}/{pageSlug} | A landing page as JSON. |
POST /api/public/lp/{handle}/{pageSlug}/subscribe | Adds a subscriber through a landing page. Same body as forms. |
GET /api/public/platform/plans | The current InfluencersKit plans. |
Frequently asked questions
Which header carries my API key?
Authorization: Bearer ik_live_…. X-API-Key: ik_live_… works too. Use one, not both. See API keys.
Can I send a broadcast, enroll someone in a sequence, or delete a subscriber with a key?
No. A key can only call the four subscriber endpoints below. Everything else returns 403 API_KEY_ENDPOINT_NOT_ALLOWED.
Can I call the API from JavaScript on my website?
No. Your key would be visible to every visitor, and browsers block the call anyway. Call the API from your server. To collect signups on a web page, embed a form.
Can an API call resubscribe someone who unsubscribed?
No. Moving an unsubscribed, bounced or cleaned subscriber back to active needs a signed-in admin confirming it in the dashboard. A key gets 403 Reactivation needs a signed-in user.
Ready to try it?
Open your dashboard and follow along — or create a free account.