The Geniziz REST API. Everything in the app is built on it, so anything you can do in the product you can automate.
Authentication
Send your API key as HTTP Basic auth — the key is the username, the password is blank. Set the api_key collection variable once and every request inherits it. Create keys under Settings → API & Webhooks.
curl -u YOUR_API_KEY: {{base_url}}/api/v1/me/
Base URL
The base_url variable (defaults to your app domain).
IDs
Opaque, prefixed strings — lead_…, cont_…, oppo_…, acti_…, task_…. Never assume a format beyond the prefix.
Responses & pagination
Single resources return the object. List endpoints return { "data": [ … ], "has_more": true|false } and page with _limit (default 100, max 200) and _skip (offset).
Field selection
Add _fields=id,name,date_created to any read to trim the response.
Errors
Non-2xx responses use { "error": "message", "field-errors": { "field": "why" } } with a matching HTTP status (400 validation, 401 auth, 402 billing, 404 not found, 405 method, 429 rate limit).
Rate limits
Per-endpoint-group limits with standard ratelimit-* response headers.
MCP
The same key authenticates the MCP server at {{base_url}}/mcp/ (send a Geniziz-Scope header) for AI agents.
Activity
GET
List activities
https://app.geniziz.com/api/v1/activity/?_limit=100&_skip=0&_fields=
GET /activity/ — the unified stream, newest first.
Query parameters
| _limit | Page size (max 200). · e.g. 100 |
| _skip | Offset for pagination. |
| _fields | Comma-separated fields to return. |
GET
Note activity
https://app.geniziz.com/api/v1/activity/note/?_limit=100&_skip=0&_fields=
Query parameters
| _limit | Page size (max 200). · e.g. 100 |
| _skip | Offset for pagination. |
| _fields | Comma-separated fields to return. |
POST
Note activity
https://app.geniziz.com/api/v1/activity/note/
Request body (JSON)
{
}
GET
Get activity
https://app.geniziz.com/api/v1/activity/note/:id/?_fields=
Query parameters
| _fields | Comma-separated fields to return. |
PUT
Update activity
https://app.geniziz.com/api/v1/activity/note/:id/
Request body (JSON)
{
}
DELETE
Delete activity
https://app.geniziz.com/api/v1/activity/note/:id/
GET
Call activity
https://app.geniziz.com/api/v1/activity/call/?_limit=100&_skip=0&_fields=
Query parameters
| _limit | Page size (max 200). · e.g. 100 |
| _skip | Offset for pagination. |
| _fields | Comma-separated fields to return. |
POST
Call activity
https://app.geniziz.com/api/v1/activity/call/
Request body (JSON)
{
}
GET
Get activity
https://app.geniziz.com/api/v1/activity/call/:id/?_fields=
Query parameters
| _fields | Comma-separated fields to return. |
PUT
Update activity
https://app.geniziz.com/api/v1/activity/call/:id/
Request body (JSON)
{
}
DELETE
Delete activity
https://app.geniziz.com/api/v1/activity/call/:id/
GET
Channel message activity
https://app.geniziz.com/api/v1/activity/channel_message/?_limit=100&_skip=0&_fields=
Query parameters
| _limit | Page size (max 200). · e.g. 100 |
| _skip | Offset for pagination. |
| _fields | Comma-separated fields to return. |
POST
Channel message activity
https://app.geniziz.com/api/v1/activity/channel_message/
Request body (JSON)
{
}
GET
Get activity
https://app.geniziz.com/api/v1/activity/channel_message/:id/?_fields=
Query parameters
| _fields | Comma-separated fields to return. |
PUT
Update activity
https://app.geniziz.com/api/v1/activity/channel_message/:id/
Request body (JSON)
{
}
DELETE
Delete activity
https://app.geniziz.com/api/v1/activity/channel_message/:id/
GET
Lead activity
https://app.geniziz.com/api/v1/activity/status_change/lead/?_limit=100&_skip=0&_fields=
Query parameters
| _limit | Page size (max 200). · e.g. 100 |
| _skip | Offset for pagination. |
| _fields | Comma-separated fields to return. |
GET
Opportunity activity
https://app.geniziz.com/api/v1/activity/status_change/opportunity/?_limit=100&_skip=0&_fields=
Query parameters
| _limit | Page size (max 200). · e.g. 100 |
| _skip | Offset for pagination. |
| _fields | Comma-separated fields to return. |
GET
Created activity
https://app.geniziz.com/api/v1/activity/created/?_limit=100&_skip=0&_fields=
Query parameters
| _limit | Page size (max 200). · e.g. 100 |
| _skip | Offset for pagination. |
| _fields | Comma-separated fields to return. |
GET
Task completed activity
https://app.geniziz.com/api/v1/activity/task_completed/?_limit=100&_skip=0&_fields=
Query parameters
| _limit | Page size (max 200). · e.g. 100 |
| _skip | Offset for pagination. |
| _fields | Comma-separated fields to return. |
GET
Custom activity
https://app.geniziz.com/api/v1/activity/custom/?_limit=100&_skip=0&_fields=
Query parameters
| _limit | Page size (max 200). · e.g. 100 |
| _skip | Offset for pagination. |
| _fields | Comma-separated fields to return. |
POST
Custom activity
https://app.geniziz.com/api/v1/activity/custom/
Request body (JSON)
{
}
GET
Get activity
https://app.geniziz.com/api/v1/activity/custom/:id/?_fields=
Query parameters
| _fields | Comma-separated fields to return. |
PUT
Update activity
https://app.geniziz.com/api/v1/activity/custom/:id/
Request body (JSON)
{
}
DELETE
Delete activity
https://app.geniziz.com/api/v1/activity/custom/:id/
GET
Email activity
https://app.geniziz.com/api/v1/activity/email/?_limit=100&_skip=0&_fields=
Query parameters
| _limit | Page size (max 200). · e.g. 100 |
| _skip | Offset for pagination. |
| _fields | Comma-separated fields to return. |
POST
Email activity
https://app.geniziz.com/api/v1/activity/email/
Request body (JSON)
{
}
GET
Get activity
https://app.geniziz.com/api/v1/activity/email/:id/?_fields=
Query parameters
| _fields | Comma-separated fields to return. |
PUT
Update activity
https://app.geniziz.com/api/v1/activity/email/:id/
Request body (JSON)
{
}
DELETE
Delete activity
https://app.geniziz.com/api/v1/activity/email/:id/
GET
SMS activity
https://app.geniziz.com/api/v1/activity/sms/?_limit=100&_skip=0&_fields=
Query parameters
| _limit | Page size (max 200). · e.g. 100 |
| _skip | Offset for pagination. |
| _fields | Comma-separated fields to return. |
POST
SMS activity
https://app.geniziz.com/api/v1/activity/sms/
Request body (JSON)
{
}
GET
Get activity
https://app.geniziz.com/api/v1/activity/sms/:id/?_fields=
Query parameters
| _fields | Comma-separated fields to return. |
PUT
Update activity
https://app.geniziz.com/api/v1/activity/sms/:id/
Request body (JSON)
{
}
DELETE
Delete activity
https://app.geniziz.com/api/v1/activity/sms/:id/
GET
Emailthread activity
https://app.geniziz.com/api/v1/activity/emailthread/?_limit=100&_skip=0&_fields=
Query parameters
| _limit | Page size (max 200). · e.g. 100 |
| _skip | Offset for pagination. |
| _fields | Comma-separated fields to return. |
GET
Get activity
https://app.geniziz.com/api/v1/activity/emailthread/:id/?_fields=
Query parameters
| _fields | Comma-separated fields to return. |
GET
Meeting activity
https://app.geniziz.com/api/v1/activity/meeting/?_limit=100&_skip=0&_fields=
Query parameters
| _limit | Page size (max 200). · e.g. 100 |
| _skip | Offset for pagination. |
| _fields | Comma-separated fields to return. |
POST
Meeting activity
https://app.geniziz.com/api/v1/activity/meeting/
Request body (JSON)
{
}
GET
Get activity
https://app.geniziz.com/api/v1/activity/meeting/:id/?_fields=
Query parameters
| _fields | Comma-separated fields to return. |
PUT
Update activity
https://app.geniziz.com/api/v1/activity/meeting/:id/
Request body (JSON)
{
}
DELETE
Delete activity
https://app.geniziz.com/api/v1/activity/meeting/:id/
Connected Account
GET
List connected accounts
https://app.geniziz.com/api/v1/connected_account/?_limit=100&_skip=0&_fields=
Query parameters
| _limit | Page size (max 200). · e.g. 100 |
| _skip | Offset for pagination. |
| _fields | Comma-separated fields to return. |
POST
Create connected account
https://app.geniziz.com/api/v1/connected_account/
Request body (JSON)
{
}
GET
Get connected account
https://app.geniziz.com/api/v1/connected_account/:id/?_fields=
Query parameters
| _fields | Comma-separated fields to return. |
PUT
Update connected account
https://app.geniziz.com/api/v1/connected_account/:id/
Request body (JSON)
{
}
DELETE
Delete connected account
https://app.geniziz.com/api/v1/connected_account/:id/
Conversation
GET
List conversations
https://app.geniziz.com/api/v1/conversation/?_limit=100&_skip=0&_fields=
Query parameters
| _limit | Page size (max 200). · e.g. 100 |
| _skip | Offset for pagination. |
| _fields | Comma-separated fields to return. |
POST
Create conversation
https://app.geniziz.com/api/v1/conversation/
Request body (JSON)
{
}
GET
Get conversation
https://app.geniziz.com/api/v1/conversation/:id/?_fields=
Query parameters
| _fields | Comma-separated fields to return. |
PUT
Update conversation
https://app.geniziz.com/api/v1/conversation/:id/
Request body (JSON)
{
}
DELETE
Delete conversation
https://app.geniziz.com/api/v1/conversation/:id/
Soft delete: hide the thread but keep its messages attached.
POST
Restore conversation
https://app.geniziz.com/api/v1/conversation/:id/restore/
POST /conversation/{id}/restore/ — undo a soft delete.
Request body (JSON)
{
}
POST
Message conversation
https://app.geniziz.com/api/v1/conversation/:id/message/
POST /conversation/{id}/message/ — add a message into the thread.
{type: note|email|sms, ...} — emails/SMS run through the real message
state machine (draft by default; "outbox" sends); recipients default
to the conversation's contact.
Request body (JSON)
{
}
Custom Object Type
GET
List custom object types
https://app.geniziz.com/api/v1/custom_object_type/?_limit=100&_skip=0&_fields=
Query parameters
| _limit | Page size (max 200). · e.g. 100 |
| _skip | Offset for pagination. |
| _fields | Comma-separated fields to return. |
POST
Create custom object type
https://app.geniziz.com/api/v1/custom_object_type/
Request body (JSON)
{
}
GET
Get custom object type
https://app.geniziz.com/api/v1/custom_object_type/:id/?_fields=
Query parameters
| _fields | Comma-separated fields to return. |
PUT
Update custom object type
https://app.geniziz.com/api/v1/custom_object_type/:id/
Request body (JSON)
{
}
DELETE
Delete custom object type
https://app.geniziz.com/api/v1/custom_object_type/:id/
Email Template
GET
List email templates
https://app.geniziz.com/api/v1/email_template/?_limit=100&_skip=0&_fields=
Query parameters
| _limit | Page size (max 200). · e.g. 100 |
| _skip | Offset for pagination. |
| _fields | Comma-separated fields to return. |
POST
Create email template
https://app.geniziz.com/api/v1/email_template/
Request body (JSON)
{
}
GET
Get email template
https://app.geniziz.com/api/v1/email_template/:id/?_fields=
Query parameters
| _fields | Comma-separated fields to return. |
PUT
Update email template
https://app.geniziz.com/api/v1/email_template/:id/
Request body (JSON)
{
}
DELETE
Delete email template
https://app.geniziz.com/api/v1/email_template/:id/
GET
Render email template
https://app.geniziz.com/api/v1/email_template/:id/render/?_limit=100&_skip=0&_fields=
GET /email_template/{id}/render/?lead_id=&contact_id=
Query parameters
| _limit | Page size (max 200). · e.g. 100 |
| _skip | Offset for pagination. |
| _fields | Comma-separated fields to return. |
Lead
GET
List leads
https://app.geniziz.com/api/v1/lead/?_limit=100&_skip=0&_fields=
Query parameters
| _limit | Page size (max 200). · e.g. 100 |
| _skip | Offset for pagination. |
| _fields | Comma-separated fields to return. |
Example response 200
{
"data": [
{
"id": "lead_2x9Qb1c3d4e5f6g7h8i9j0",
"name": "Acme Inc",
"url": "https://acme.example",
"status_id": "stat_1a2b3c4d5e6f7g8h9i0j1k",
"emails": [
{
"email": "hello@acme.example",
"type": "office"
}
],
"phones": [
{
"phone": "+15551234567",
"type": "office"
}
],
"mrr": 4900,
"date_created": "2026-01-15T09:30:00.000Z",
"date_updated": "2026-01-15T09:30:00.000Z"
}
],
"has_more": false
}
POST
Create lead
https://app.geniziz.com/api/v1/lead/
Request body (JSON)
{
"name": "Acme Inc",
"url": "https://acme.example",
"industry": "Software",
"status_id": "stat_1a2b3c4d5e6f7g8h9i0j1k",
"owner_id": "user_0a1b2c3d4e5f6g7h8i9j0k",
"mrr": 4900,
"emails": [
{
"email": "hello@acme.example",
"type": "office"
}
],
"phones": [
{
"phone": "+15551234567",
"type": "office"
}
],
"addresses": [
{
"city": "Austin",
"country": "US"
}
]
}
Example response 201
{
"id": "lead_2x9Qb1c3d4e5f6g7h8i9j0",
"name": "Acme Inc",
"url": "https://acme.example",
"status_id": "stat_1a2b3c4d5e6f7g8h9i0j1k",
"emails": [
{
"email": "hello@acme.example",
"type": "office"
}
],
"phones": [
{
"phone": "+15551234567",
"type": "office"
}
],
"mrr": 4900,
"date_created": "2026-01-15T09:30:00.000Z",
"date_updated": "2026-01-15T09:30:00.000Z"
}
POST
Merge lead
https://app.geniziz.com/api/v1/lead/merge/
POST /lead/merge/ {source, destination}: children move to the
destination, the source lead is deleted.
Request body (JSON)
{
}
POST
Move lead
https://app.geniziz.com/api/v1/lead/:id/move/
POST /lead/{id}/move/ {target_organization_id}: move a lead and all
its records into another workspace the caller administers. Org-scoped
references that don't exist in the target are remapped to defaults
(lead/opportunity status) or cleared (owner, assignee, custom fields),
so the lead lands valid. The caller must be an admin of both
workspaces.
Request body (JSON)
{
}
GET
Get lead
https://app.geniziz.com/api/v1/lead/:id/?_fields=
Query parameters
| _fields | Comma-separated fields to return. |
Example response 200
{
"id": "lead_2x9Qb1c3d4e5f6g7h8i9j0",
"name": "Acme Inc",
"url": "https://acme.example",
"status_id": "stat_1a2b3c4d5e6f7g8h9i0j1k",
"emails": [
{
"email": "hello@acme.example",
"type": "office"
}
],
"phones": [
{
"phone": "+15551234567",
"type": "office"
}
],
"mrr": 4900,
"date_created": "2026-01-15T09:30:00.000Z",
"date_updated": "2026-01-15T09:30:00.000Z"
}
PUT
Update lead
https://app.geniziz.com/api/v1/lead/:id/
Request body (JSON)
{
"name": "Acme Incorporated",
"status_id": "stat_won0000000000000000000"
}
Example response 200
{
"name": "Acme Incorporated",
"id": "lead_2x9Qb1c3d4e5f6g7h8i9j0",
"url": "https://acme.example",
"status_id": "stat_1a2b3c4d5e6f7g8h9i0j1k",
"emails": [
{
"email": "hello@acme.example",
"type": "office"
}
],
"phones": [
{
"phone": "+15551234567",
"type": "office"
}
],
"mrr": 4900,
"date_created": "2026-01-15T09:30:00.000Z",
"date_updated": "2026-01-15T09:30:00.000Z"
}
DELETE
Delete lead
https://app.geniziz.com/api/v1/lead/:id/
Mailing Export
GET
List mailing exports
https://app.geniziz.com/api/v1/mailing_export/?_limit=100&_skip=0&_fields=
Query parameters
| _limit | Page size (max 200). · e.g. 100 |
| _skip | Offset for pagination. |
| _fields | Comma-separated fields to return. |
POST
Create mailing export
https://app.geniziz.com/api/v1/mailing_export/
POST /mailing_export/ {platform, filters{...}, config{...}}. Dry-runs
the audience so the caller sees the match count immediately, then
queues the push for the worker.
Request body (JSON)
{
}
GET
Platforms mailing export
https://app.geniziz.com/api/v1/mailing_export/platforms/?_limit=100&_skip=0&_fields=
GET /mailing_export/platforms/ — the registry as the UI needs it:
each platform with its config fields and whether its credential is
connected for this workspace.
Query parameters
| _limit | Page size (max 200). · e.g. 100 |
| _skip | Offset for pagination. |
| _fields | Comma-separated fields to return. |
GET
Get mailing export
https://app.geniziz.com/api/v1/mailing_export/:id/?_fields=
Query parameters
| _fields | Comma-separated fields to return. |
Opportunity
GET
List opportunities
https://app.geniziz.com/api/v1/opportunity/?_limit=100&_skip=0&_fields=
Query parameters
| _limit | Page size (max 200). · e.g. 100 |
| _skip | Offset for pagination. |
| _fields | Comma-separated fields to return. |
Example response 200
{
"data": [
{
"id": "oppo_5e6f7g8h9i0j1k2l3m4n5o",
"lead_id": "lead_2x9Qb1c3d4e5f6g7h8i9j0",
"status_id": "stat_pipe000000000000000000",
"value": 1200000,
"value_period": "annual",
"value_formatted": "$12,000.00",
"confidence": 60,
"note": "Evaluating the Scale plan for 40 reps.",
"date_created": "2026-01-15T09:32:00.000Z"
}
],
"has_more": false
}
POST
Create opportunity
https://app.geniziz.com/api/v1/opportunity/
Request body (JSON)
{
"lead_id": "lead_2x9Qb1c3d4e5f6g7h8i9j0",
"status_id": "stat_pipe000000000000000000",
"value": 1200000,
"value_period": "annual",
"confidence": 60,
"note": "Evaluating the Scale plan for 40 reps."
}
Example response 201
{
"id": "oppo_5e6f7g8h9i0j1k2l3m4n5o",
"lead_id": "lead_2x9Qb1c3d4e5f6g7h8i9j0",
"status_id": "stat_pipe000000000000000000",
"value": 1200000,
"value_period": "annual",
"value_formatted": "$12,000.00",
"confidence": 60,
"note": "Evaluating the Scale plan for 40 reps.",
"date_created": "2026-01-15T09:32:00.000Z"
}
GET
Get opportunity
https://app.geniziz.com/api/v1/opportunity/:id/?_fields=
Query parameters
| _fields | Comma-separated fields to return. |
Example response 200
{
"id": "oppo_5e6f7g8h9i0j1k2l3m4n5o",
"lead_id": "lead_2x9Qb1c3d4e5f6g7h8i9j0",
"status_id": "stat_pipe000000000000000000",
"value": 1200000,
"value_period": "annual",
"value_formatted": "$12,000.00",
"confidence": 60,
"note": "Evaluating the Scale plan for 40 reps.",
"date_created": "2026-01-15T09:32:00.000Z"
}
PUT
Update opportunity
https://app.geniziz.com/api/v1/opportunity/:id/
Request body (JSON)
{
}
DELETE
Delete opportunity
https://app.geniziz.com/api/v1/opportunity/:id/
GET
Line item opportunity
https://app.geniziz.com/api/v1/opportunity/:id/line_item/?_limit=100&_skip=0&_fields=
Query parameters
| _limit | Page size (max 200). · e.g. 100 |
| _skip | Offset for pagination. |
| _fields | Comma-separated fields to return. |
POST
Line item opportunity
https://app.geniziz.com/api/v1/opportunity/:id/line_item/
Request body (JSON)
{
}
DELETE
Delete opportunity
https://app.geniziz.com/api/v1/opportunity/:id/line_item/:item_id/
Report
GET
Activity report
https://app.geniziz.com/api/v1/report/activity/?_limit=100&_skip=0&_fields=
GET /report/activity/ — the metrics catalog.
Query parameters
| _limit | Page size (max 200). · e.g. 100 |
| _skip | Offset for pagination. |
| _fields | Comma-separated fields to return. |
POST
Activity report
https://app.geniziz.com/api/v1/report/activity/
POST /report/activity/ — per-user activity metrics for a period.
Request body (JSON)
{
}
POST
Funnel report
https://app.geniziz.com/api/v1/report/funnel/
POST /report/funnel/ — pipeline totals by status (+ won in period).
Request body (JSON)
{
}
POST
Calls funnel report
https://app.geniziz.com/api/v1/report/calls_funnel/
POST /report/calls_funnel/ — call volume, outcomes, and connect funnel.
Request body (JSON)
{
}
POST
Opportunity funnels report
https://app.geniziz.com/api/v1/report/opportunity_funnels/
POST /report/opportunity_funnels/ — stage funnel per pipeline.
Request body (JSON)
{
}
POST
Sales report
https://app.geniziz.com/api/v1/report/sales/
POST /report/sales/ — won revenue by month, stage conversion,
forecast by expected close month, per-rep leaderboard, and workflow
performance, in one payload (feeds the dashboard and reports page).
Request body (JSON)
{
}
POST
Lead report
https://app.geniziz.com/api/v1/report/status_change/lead/
Request body (JSON)
{
}
POST
Opportunity report
https://app.geniziz.com/api/v1/report/status_change/opportunity/
Request body (JSON)
{
}
POST
Sent emails report
https://app.geniziz.com/api/v1/report/sent_emails/
POST /report/sent_emails/ — per-template performance.
Request body (JSON)
{
}
Sequence Subscription
GET
List sequence subscriptions
https://app.geniziz.com/api/v1/sequence_subscription/?_limit=100&_skip=0&_fields=
Query parameters
| _limit | Page size (max 200). · e.g. 100 |
| _skip | Offset for pagination. |
| _fields | Comma-separated fields to return. |
POST
Create sequence subscription
https://app.geniziz.com/api/v1/sequence_subscription/
Request body (JSON)
{
}
GET
Get sequence subscription
https://app.geniziz.com/api/v1/sequence_subscription/:id/?_fields=
Query parameters
| _fields | Comma-separated fields to return. |
PUT
Update sequence subscription
https://app.geniziz.com/api/v1/sequence_subscription/:id/
PUT: pause/resume.
Request body (JSON)
{
}
DELETE
Delete sequence subscription
https://app.geniziz.com/api/v1/sequence_subscription/:id/
Status
GET
Lead status
https://app.geniziz.com/api/v1/status/lead/?_limit=100&_skip=0&_fields=
Query parameters
| _limit | Page size (max 200). · e.g. 100 |
| _skip | Offset for pagination. |
| _fields | Comma-separated fields to return. |
POST
Lead status
https://app.geniziz.com/api/v1/status/lead/
Request body (JSON)
{
}
GET
Get status
https://app.geniziz.com/api/v1/status/lead/:id/?_fields=
Query parameters
| _fields | Comma-separated fields to return. |
PUT
Update status
https://app.geniziz.com/api/v1/status/lead/:id/
Request body (JSON)
{
}
DELETE
Delete status
https://app.geniziz.com/api/v1/status/lead/:id/
GET
Opportunity status
https://app.geniziz.com/api/v1/status/opportunity/?_limit=100&_skip=0&_fields=
Query parameters
| _limit | Page size (max 200). · e.g. 100 |
| _skip | Offset for pagination. |
| _fields | Comma-separated fields to return. |
POST
Opportunity status
https://app.geniziz.com/api/v1/status/opportunity/
Request body (JSON)
{
}
GET
Get status
https://app.geniziz.com/api/v1/status/opportunity/:id/?_fields=
Query parameters
| _fields | Comma-separated fields to return. |
PUT
Update status
https://app.geniziz.com/api/v1/status/opportunity/:id/
Request body (JSON)
{
}
DELETE
Delete status
https://app.geniziz.com/api/v1/status/opportunity/:id/