Overview
Amplitude is a product analytics platform – events, user identifies, cohorts, segmentation, and exports. The Automize connector talks to the HTTP V2, Identify, Group Identify, Batch, Export, Behavioral Cohorts, and User Search APIs.
- Regions: Amplitude has separate US (api.amplitude.com) and EU (api.eu.amplitude.com) regions. Pick the region that matches the project you're sending data into – events posted to the wrong region are silently dropped from the destination project.
- Plans: Event ingest (HTTP V2 + Batch + Identify + Group Identify) is on every plan. Behavioral Cohorts, Cohort Download, and User Search require Growth or higher. Raw event export is Growth+ with the API add-on enabled.
Setting up the connection
Auth type: HTTP Basic.
- In Amplitude, open Settings → Projects → <your project> and copy the API Key and Secret Key.
- The connector sends them as HTTP Basic credentials (api_key:secret_key). API Key alone covers HTTP V2 / Identify / Group Identify / Batch; the Secret Key is required for Export, Cohort Download, Segmentation, and User Search.
- Paste the API Key as the username and the Secret Key as the password. Leave the secret blank if you only need ingest endpoints.
- If your project lives in the EU residency, the connector will route to api.eu.amplitude.com automatically based on the API key prefix.
Find your credentials at https://help.amplitude.com/hc/en-us/articles/360058073772-Create-and-manage-organizations-and-projects#api-credentials.
Rate limits
HTTP V2 / Batch – 1000 events/request, no fixed per-second cap but smoothed throttling around 1000 events/sec per device_id. Export and Segmentation are billed in events scanned and rate-limited per minute. Connector backs off + retries on 429 and 500-class responses.
Data model
Amplitude's analytics graph:
Organization
└─ Projects (region-pinned: US or EU)
├─ Events (event_type + properties + time)
│ └─ user_id OR device_id (one is required)
├─ User profiles ($set, $setOnce, $add, $append, $unset)
├─ Group profiles (account/team-level analytics – paid)
├─ Cohorts (saved behavioural or property segments)
└─ Charts (Funnels, Retention, Pathfinder)
Identity:
user_id authenticated user (your stable ID)
device_id anonymous user (per-install UUID)
amplitude_id Amplitude-internal canonical ID (merged across
user_id + device_id once $identify resolves)
Reserved event types ($identify, $groupidentify) carry property
operators in user_properties. Regular events stamp the property
state at event time.
Region matters: Amplitude US (api.amplitude.com) and EU
(api.eu.amplitude.com) hold different projects. The API-key prefix
encodes region; events posted to the wrong region are silently
rejected (no error, no event). Use US/EU per data-residency need.Available operations
10 operations available. Click any row to jump to its detail.
| Operation | Category | What it does |
|---|---|---|
| Batch Ingest | General | Ingest up to 1000 events with rate-limit-friendlier batch endpoint |
| Delete User | General | Submit a GDPR/CCPA user deletion request |
| Event Segmentation | General | Run an event segmentation query |
| Export Events | General | Raw event export between two timestamps |
| Get Cohort Members | General | Download cohort members CSV (Dashboard REST) |
| Group Identify | General | Set group properties (Group Identify API) |
| Track Events (HTTP API v2) | General | Ingest events via HTTP API v2 |
| Identify | General | Set user properties (Identify API) |
| List Cohorts | General | List cohorts in the project (Dashboard REST) |
| User Search | General | Search for a user by amplitude_id, user_id, device_id, or property |
Operations
Batch Ingest
Ingest up to 1000 events with rate-limit-friendlier batch endpoint
| Parameter | Required | Type | Description |
|---|---|---|---|
Api Key api_key | No | text | |
Events events | No | text |
Tips
- POST /batch – same payload as HTTP V2 but with deduplication on insert_id. Use this when retrying ingests, otherwise you'll double-count events.
Delete User
Submit a GDPR/CCPA user deletion request
| Parameter | Required | Type | Description |
|---|---|---|---|
User Ids user_ids | No | text | |
Amplitude Ids amplitude_ids | No | text | |
Requester requester | No | text | |
Ignore Invalid Id ignore_invalid_id | No | text | |
Delete From Org delete_from_org | No | text |
Tips
- POST /api/2/deletions/users – GDPR-style erasure. Body: user_ids[] or amplitude_ids[]; requester (your email) for the audit trail.
- Async – Amplitude queues the delete and confirms via email when complete (typically 1-7 days). Status field 'staging' = queued.
- ignore_invalid_id=true skips IDs that don't exist instead of failing the whole batch.
Event Segmentation
Run an event segmentation query
No input parameters.
Tips
- POST /api/2/events/segmentation – supports e (event), s (segment definitions), and m (metric).
- Set i=30 (interval days) for daily granularity. Larger windows count against your monthly query quota.
Export Events
Raw event export between two timestamps
No input parameters.
Tips
- GET /api/2/export – returns a zip of JSON files for an hour window in UTC. start and end are YYYYMMDDTHH; don't query more than a day at a time or the response can take minutes.
Errors
404– No events in the requested window – common during initial backfills before any data has flowed.
Get Cohort Members
Download cohort members CSV (Dashboard REST)
| Parameter | Required | Type | Description |
|---|---|---|---|
Cohort Id cohort_id | Yes | text |
Tips
- GET /api/5/cohorts/request/{cohort_id} – kicks off a cohort download job; returns request_id.
- Async two-step: poll /api/5/cohorts/request-status/{request_id} until status='succeeded', then download CSV from /api/5/cohorts/download-file/{request_id}. The connector wraps this flow.
- Cohort downloads count against your Behavioral Cohort export quota (Growth+ feature).
Group Identify
Set group properties (Group Identify API)
| Parameter | Required | Type | Description |
|---|---|---|---|
Api Key api_key | No | text | |
Identification identification | No | text |
Tips
- POST /groupidentify – set properties on a Group (account, team, company-level entity). Requires Group Analytics (Growth+).
- Body: group_type (e.g. 'company') + group_value (the group identifier) + group_properties (operator dict: $set, $add, etc.)
Track Events (HTTP API v2)
Ingest events via HTTP API v2
| Parameter | Required | Type | Description |
|---|---|---|---|
Api Key api_key | No | text | |
Events events | No | text | |
Options options | No | text |
Tips
- POST /2/httpapi – the high-throughput ingest endpoint. Sends one or more events in a single request; up to 1000 events / 1 MB total.
- Each event needs user_id OR device_id plus event_type. Set time as ms-epoch; without it Amplitude stamps server-side and you lose client-time fidelity.
Identify
Set user properties (Identify API)
| Parameter | Required | Type | Description |
|---|---|---|---|
Api Key api_key | No | text | |
Identification identification | No | text |
Tips
- Sets user properties without sending an event. Use $set, $setOnce, $add, $append, $unset on user_properties to avoid clobbering existing values.
List Cohorts
List cohorts in the project (Dashboard REST)
No input parameters.
Tips
- GET /api/3/cohorts – every Behavioral Cohort in the project. Each entry has id, name, definition, size, last_computed, lastMod.
- Cohorts are computed daily; size = last computed count. Pass /sync to force re-computation (Enterprise only).
User Search
Search for a user by amplitude_id, user_id, device_id, or property
No input parameters.
Tips
- GET /api/2/usersearch – match user_id, device_id, Amplitude ID, or user_properties.email exactly. Wildcards are not supported.
FAQ
- Why are events not showing up in my project?
- Three causes: wrong region (US/EU), event timestamps too far in the past (>7 days is silently dropped), or a project key/secret mismatch. Set min_id_length=1 if you're using short device IDs (<5 chars).
- Do I need both keys?
- For ingest-only (HTTP V2, Identify, Batch) – just the API key. For Export, Segmentation, Cohort, and User Search – both. Leaving the secret blank disables those operations cleanly.
- How do I dedupe retries?
- Set insert_id (a random UUID per event) and use the /batch endpoint. Amplitude keeps a 7-day insert_id window; replays within that window are dropped.
- EU vs US – how do I pick?
- Region is project-level on Amplitude's side, not connector-level. Use the API key from the project whose region you want; the connector reads the prefix and routes accordingly.