Geniziz API

320 endpoints REST · BYOK · MCP Download Postman collection geniziz.com

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
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-separated fields to return.
GET Note activity
https://app.geniziz.com/api/v1/activity/note/?_limit=100&_skip=0&_fields=
Query parameters
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-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
_fieldsComma-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
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-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
_fieldsComma-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
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-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
_fieldsComma-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
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-separated fields to return.
GET Opportunity activity
https://app.geniziz.com/api/v1/activity/status_change/opportunity/?_limit=100&_skip=0&_fields=
Query parameters
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-separated fields to return.
GET Created activity
https://app.geniziz.com/api/v1/activity/created/?_limit=100&_skip=0&_fields=
Query parameters
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-separated fields to return.
GET Task completed activity
https://app.geniziz.com/api/v1/activity/task_completed/?_limit=100&_skip=0&_fields=
Query parameters
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-separated fields to return.
GET Custom activity
https://app.geniziz.com/api/v1/activity/custom/?_limit=100&_skip=0&_fields=
Query parameters
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-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
_fieldsComma-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
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-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
_fieldsComma-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
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-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
_fieldsComma-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
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-separated fields to return.
GET Get activity
https://app.geniziz.com/api/v1/activity/emailthread/:id/?_fields=
Query parameters
_fieldsComma-separated fields to return.
GET Meeting activity
https://app.geniziz.com/api/v1/activity/meeting/?_limit=100&_skip=0&_fields=
Query parameters
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-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
_fieldsComma-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/

AI

POST Summarize lead ai
https://app.geniziz.com/api/v1/ai/summarize_lead/
Request body (JSON)
{
}
POST Draft email ai
https://app.geniziz.com/api/v1/ai/draft_email/
Request body (JSON)
{
}
POST Summarize conversation ai
https://app.geniziz.com/api/v1/ai/summarize_conversation/
Request body (JSON)
{
}
POST Score lead ai
https://app.geniziz.com/api/v1/ai/score_lead/
Request body (JSON)
{
}
POST Suggest opportunity ai
https://app.geniziz.com/api/v1/ai/suggest_opportunity/
Request body (JSON)
{
}
POST Search ai
https://app.geniziz.com/api/v1/ai/search/
Request body (JSON)
{
}
POST Extract tasks ai
https://app.geniziz.com/api/v1/ai/extract_tasks/
Request body (JSON)
{
}

API Key

GET List api keys
https://app.geniziz.com/api/v1/api_key/?_limit=100&_skip=0&_fields=
Query parameters
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-separated fields to return.
POST Create api key
https://app.geniziz.com/api/v1/api_key/
Request body (JSON)
{
}
DELETE Delete api key
https://app.geniziz.com/api/v1/api_key/:id/

Automation

GET List automations
https://app.geniziz.com/api/v1/automation/?_limit=100&_skip=0&_fields=
Query parameters
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-separated fields to return.
POST Create automation
https://app.geniziz.com/api/v1/automation/
Request body (JSON)
{
}
GET Get automation
https://app.geniziz.com/api/v1/automation/:id/?_fields=
Query parameters
_fieldsComma-separated fields to return.
PUT Update automation
https://app.geniziz.com/api/v1/automation/:id/
Request body (JSON)
{
}
DELETE Delete automation
https://app.geniziz.com/api/v1/automation/:id/

Bulk Action

GET List bulk actions
https://app.geniziz.com/api/v1/bulk_action/?_limit=100&_skip=0&_fields=
Query parameters
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-separated fields to return.
POST Edit bulk action
https://app.geniziz.com/api/v1/bulk_action/edit/
Request body (JSON)
{
}
POST Delete bulk action
https://app.geniziz.com/api/v1/bulk_action/delete/
Request body (JSON)
{
}
POST Email bulk action
https://app.geniziz.com/api/v1/bulk_action/email/
Request body (JSON)
{
}
POST Sequence subscription bulk action
https://app.geniziz.com/api/v1/bulk_action/sequence_subscription/
Request body (JSON)
{
}
GET Get bulk action
https://app.geniziz.com/api/v1/bulk_action/:id/?_fields=
Query parameters
_fieldsComma-separated fields to return.
PUT Update bulk action
https://app.geniziz.com/api/v1/bulk_action/:id/

PUT pause/resume.

Request body (JSON)
{
}

Comment

GET List comments
https://app.geniziz.com/api/v1/comment/?_limit=100&_skip=0&_fields=

GET /comment/ — exactly one of object_id= or thread_id=.

Query parameters
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-separated fields to return.
POST Create comment
https://app.geniziz.com/api/v1/comment/
Request body (JSON)
{
}
PUT Update comment
https://app.geniziz.com/api/v1/comment/:id/
Request body (JSON)
{
}
DELETE Delete comment
https://app.geniziz.com/api/v1/comment/:id/

Tombstone; the thread disappears with its last comment.

Comment Thread

GET List comment threads
https://app.geniziz.com/api/v1/comment_thread/?_limit=100&_skip=0&_fields=
Query parameters
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-separated fields to return.
GET Get comment thread
https://app.geniziz.com/api/v1/comment_thread/:id/?_fields=
Query parameters
_fieldsComma-separated fields to return.

Connected Account

GET List connected accounts
https://app.geniziz.com/api/v1/connected_account/?_limit=100&_skip=0&_fields=
Query parameters
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-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
_fieldsComma-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/

Contact

POST Merge contact
https://app.geniziz.com/api/v1/contact/merge/

POST /contact/merge/ {source, destination}: the source's activities, conversations, enrollments, and files move to the destination, its emails/phones/urls are unioned in, and the source is deleted.

Request body (JSON)
{
}
POST Share bulk contact
https://app.geniziz.com/api/v1/contact/share_bulk/

POST /contact/share_bulk/ {organization_id, all|query|contact_ids} — queue a worker job sharing many contacts (e.g. an entire customer base into a sister product's workspace).

Request body (JSON)
{
}
GET Share bulk contact
https://app.geniziz.com/api/v1/contact/share_bulk/?_limit=100&_skip=0&_fields=

GET /contact/share_bulk/ — recent jobs; GET .../{id}/ — one job.

Query parameters
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-separated fields to return.
GET Get contact
https://app.geniziz.com/api/v1/contact/share_bulk/:id/?_fields=
Query parameters
_fieldsComma-separated fields to return.
GET List contacts
https://app.geniziz.com/api/v1/contact/?_limit=100&_skip=0&_fields=
Query parameters
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-separated fields to return.
Example response 200
{
    "data": [
        {
            "id": "cont_7h8i9j0k1l2m3n4o5p6q7r",
            "lead_id": "lead_2x9Qb1c3d4e5f6g7h8i9j0",
            "name": "Connie Carter",
            "title": "VP Sales",
            "emails": [
                {
                    "email": "connie@acme.example",
                    "type": "direct"
                }
            ],
            "phones": [
                {
                    "phone": "+15557654321",
                    "type": "mobile"
                }
            ],
            "tags": [
                "champion"
            ],
            "date_created": "2026-01-15T09:31:00.000Z"
        }
    ],
    "has_more": false
}
POST Create contact
https://app.geniziz.com/api/v1/contact/
Request body (JSON)
{
    "lead_id": "lead_2x9Qb1c3d4e5f6g7h8i9j0",
    "name": "Connie Carter",
    "title": "VP Sales",
    "emails": [
        {
            "email": "connie@acme.example",
            "type": "direct"
        }
    ],
    "phones": [
        {
            "phone": "+15557654321",
            "type": "mobile"
        }
    ],
    "tags": [
        "champion"
    ]
}
Example response 201
{
    "id": "cont_7h8i9j0k1l2m3n4o5p6q7r",
    "lead_id": "lead_2x9Qb1c3d4e5f6g7h8i9j0",
    "name": "Connie Carter",
    "title": "VP Sales",
    "emails": [
        {
            "email": "connie@acme.example",
            "type": "direct"
        }
    ],
    "phones": [
        {
            "phone": "+15557654321",
            "type": "mobile"
        }
    ],
    "tags": [
        "champion"
    ],
    "date_created": "2026-01-15T09:31:00.000Z"
}
POST Share contact
https://app.geniziz.com/api/v1/contact/:id/share/

POST /contact/{id}/share/ {organization_id, lead_id?}

Request body (JSON)
{
}
POST Unshare contact
https://app.geniziz.com/api/v1/contact/:id/unshare/

POST /contact/{id}/unshare/ {organization_id} — sever the link to one workspace. The contact there stays as an independent copy (nothing is deleted); it just stops syncing with the person. Passing the current workspace detaches THIS contact instead — useful when the person is shared with workspaces you cannot administer. When only one linked contact remains, the share dissolves entirely.

Request body (JSON)
{
}
POST Enrich contact
https://app.geniziz.com/api/v1/contact/:id/enrich/

POST /contact/{id}/enrich/ — queue a job for the worker.

Request body (JSON)
{
}
GET Shares contact
https://app.geniziz.com/api/v1/contact/:id/shares/?_limit=100&_skip=0&_fields=

GET /contact/{id}/shares/ — where else this person exists.

Query parameters
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-separated fields to return.
GET Get contact
https://app.geniziz.com/api/v1/contact/:id/?_fields=
Query parameters
_fieldsComma-separated fields to return.
Example response 200
{
    "id": "cont_7h8i9j0k1l2m3n4o5p6q7r",
    "lead_id": "lead_2x9Qb1c3d4e5f6g7h8i9j0",
    "name": "Connie Carter",
    "title": "VP Sales",
    "emails": [
        {
            "email": "connie@acme.example",
            "type": "direct"
        }
    ],
    "phones": [
        {
            "phone": "+15557654321",
            "type": "mobile"
        }
    ],
    "tags": [
        "champion"
    ],
    "date_created": "2026-01-15T09:31:00.000Z"
}
PUT Update contact
https://app.geniziz.com/api/v1/contact/:id/
Request body (JSON)
{
}
DELETE Delete contact
https://app.geniziz.com/api/v1/contact/:id/

Contact List

GET List contact lists
https://app.geniziz.com/api/v1/contact_list/?_limit=100&_skip=0&_fields=
Query parameters
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-separated fields to return.
POST Create contact list
https://app.geniziz.com/api/v1/contact_list/
Request body (JSON)
{
}
POST Copy getsales contact list
https://app.geniziz.com/api/v1/contact_list/copy_getsales/

POST /contact_list/copy_getsales/ {name} — materialize a read-only GetSales list as an internal one: every contact whose synced profile references that list becomes a member. Idempotent; re-copy adds newly synced members.

Request body (JSON)
{
}
PUT Update contact list
https://app.geniziz.com/api/v1/contact_list/:id/

PUT /contact_list/{id}/ {name} — rename.

Request body (JSON)
{
}
DELETE Delete contact list
https://app.geniziz.com/api/v1/contact_list/:id/
POST Members contact list
https://app.geniziz.com/api/v1/contact_list/:id/members/

POST /contact_list/{id}/members/ {contact_ids: [...]}

Request body (JSON)
{
}
DELETE Delete contact list
https://app.geniziz.com/api/v1/contact_list/:id/members/:contact_id/

DELETE /contact_list/{id}/members/{contact_id}/

Contact Tag

GET List contact tags
https://app.geniziz.com/api/v1/contact_tag/?_limit=100&_skip=0&_fields=
Query parameters
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-separated fields to return.
POST Create contact tag
https://app.geniziz.com/api/v1/contact_tag/
Request body (JSON)
{
}
PUT Update contact tag
https://app.geniziz.com/api/v1/contact_tag/:id/

PUT /contact_tag/{id}/ {name} — rename everywhere it is used.

Request body (JSON)
{
}
DELETE Delete contact tag
https://app.geniziz.com/api/v1/contact_tag/:id/

DELETE /contact_tag/{id}/ — strip from every contact, drop the registry row.

Conversation

GET List conversations
https://app.geniziz.com/api/v1/conversation/?_limit=100&_skip=0&_fields=
Query parameters
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-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
_fieldsComma-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)
{
}

Credentials

GET List credentialses
https://app.geniziz.com/api/v1/credentials/?_limit=100&_skip=0&_fields=
Query parameters
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-separated fields to return.
PUT Update credentials
https://app.geniziz.com/api/v1/credentials/:service/
Request body (JSON)
{
}
DELETE Delete credentials
https://app.geniziz.com/api/v1/credentials/:service/

Custom Activity

GET List custom activities
https://app.geniziz.com/api/v1/custom_activity/?_limit=100&_skip=0&_fields=
Query parameters
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-separated fields to return.
POST Create custom activity
https://app.geniziz.com/api/v1/custom_activity/
Request body (JSON)
{
}
GET Get custom activity
https://app.geniziz.com/api/v1/custom_activity/:id/?_fields=
Query parameters
_fieldsComma-separated fields to return.
PUT Update custom activity
https://app.geniziz.com/api/v1/custom_activity/:id/
Request body (JSON)
{
}
DELETE Delete custom activity
https://app.geniziz.com/api/v1/custom_activity/:id/

Custom Field

GET Get custom field
https://app.geniziz.com/api/v1/custom_field/:object_type/?_fields=
Query parameters
_fieldsComma-separated fields to return.
POST Post custom field
https://app.geniziz.com/api/v1/custom_field/:object_type/
Request body (JSON)
{
}
GET Get custom field
https://app.geniziz.com/api/v1/custom_field/:object_type/:id/?_fields=
Query parameters
_fieldsComma-separated fields to return.
PUT Update custom field
https://app.geniziz.com/api/v1/custom_field/:object_type/:id/
Request body (JSON)
{
}
DELETE Delete custom field
https://app.geniziz.com/api/v1/custom_field/:object_type/:id/

Custom Field Schema

GET List custom field schemas
https://app.geniziz.com/api/v1/custom_field_schema/?_limit=100&_skip=0&_fields=

GET /custom_field_schema/?object_type=lead

Query parameters
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-separated fields to return.

Custom Object

GET List custom objects
https://app.geniziz.com/api/v1/custom_object/?_limit=100&_skip=0&_fields=
Query parameters
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-separated fields to return.
POST Create custom object
https://app.geniziz.com/api/v1/custom_object/
Request body (JSON)
{
}
GET Get custom object
https://app.geniziz.com/api/v1/custom_object/:id/?_fields=
Query parameters
_fieldsComma-separated fields to return.
PUT Update custom object
https://app.geniziz.com/api/v1/custom_object/:id/
Request body (JSON)
{
}
DELETE Delete custom object
https://app.geniziz.com/api/v1/custom_object/:id/

Custom Object Type

GET List custom object types
https://app.geniziz.com/api/v1/custom_object_type/?_limit=100&_skip=0&_fields=
Query parameters
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-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
_fieldsComma-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/

Data

POST Search data
https://app.geniziz.com/api/v1/data/search/
Request body (JSON)
{
    "query": {
        "type": "object_type",
        "object_type": "lead"
    },
    "_limit": 20
}
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
}

Dialer

GET Token dialer
https://app.geniziz.com/api/v1/dialer/token/?_limit=100&_skip=0&_fields=
Query parameters
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-separated fields to return.
POST Call dialer
https://app.geniziz.com/api/v1/dialer/call/
Request body (JSON)
{
}
GET List dialers
https://app.geniziz.com/api/v1/dialer/?_limit=100&_skip=0&_fields=
Query parameters
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-separated fields to return.
POST Create dialer
https://app.geniziz.com/api/v1/dialer/
Request body (JSON)
{
}
GET Get dialer
https://app.geniziz.com/api/v1/dialer/:id/?_fields=
Query parameters
_fieldsComma-separated fields to return.
PUT Update dialer
https://app.geniziz.com/api/v1/dialer/:id/

PUT pause/resume/done.

Request body (JSON)
{
}
POST Next dialer
https://app.geniziz.com/api/v1/dialer/:id/next/

The dialer's heartbeat: next lead with a dialable contact; advances the cursor. {"done": true} when the view is exhausted.

Request body (JSON)
{
}

Email Template

GET List email templates
https://app.geniziz.com/api/v1/email_template/?_limit=100&_skip=0&_fields=
Query parameters
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-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
_fieldsComma-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
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-separated fields to return.

Enrichment

GET List enrichments
https://app.geniziz.com/api/v1/enrichment/?_limit=100&_skip=0&_fields=
Query parameters
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-separated fields to return.
GET Get enrichment
https://app.geniziz.com/api/v1/enrichment/:id/?_fields=
Query parameters
_fieldsComma-separated fields to return.

Event

GET List events
https://app.geniziz.com/api/v1/event/?_limit=100&_skip=0&_fields=
Query parameters
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-separated fields to return.
GET Get event
https://app.geniziz.com/api/v1/event/:id/?_fields=
Query parameters
_fieldsComma-separated fields to return.

Export

POST Lead export
https://app.geniziz.com/api/v1/export/lead/
Request body (JSON)
{
}
POST Opportunity export
https://app.geniziz.com/api/v1/export/opportunity/
Request body (JSON)
{
}
GET Get export
https://app.geniziz.com/api/v1/export/:id/?_fields=
Query parameters
_fieldsComma-separated fields to return.
GET Download export
https://app.geniziz.com/api/v1/export/:id/download/?_limit=100&_skip=0&_fields=
Query parameters
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-separated fields to return.

File

GET List files
https://app.geniziz.com/api/v1/file/?_limit=100&_skip=0&_fields=
Query parameters
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-separated fields to return.
POST Create file
https://app.geniziz.com/api/v1/file/
Request body (JSON)
{
}
GET Get file
https://app.geniziz.com/api/v1/file/:id/?_fields=
Query parameters
_fieldsComma-separated fields to return.
GET Download file
https://app.geniziz.com/api/v1/file/:id/download/?_limit=100&_skip=0&_fields=
Query parameters
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-separated fields to return.
DELETE Delete file
https://app.geniziz.com/api/v1/file/:id/

Goal

GET List goals
https://app.geniziz.com/api/v1/goal/?_limit=100&_skip=0&_fields=
Query parameters
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-separated fields to return.
POST Create goal
https://app.geniziz.com/api/v1/goal/

POST /goal/ — upsert on (period, user_id). Admin-only.

Request body (JSON)
{
}
DELETE Delete goal
https://app.geniziz.com/api/v1/goal/:id/

Group

GET List groups
https://app.geniziz.com/api/v1/group/?_limit=100&_skip=0&_fields=
Query parameters
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-separated fields to return.
POST Create group
https://app.geniziz.com/api/v1/group/
Request body (JSON)
{
}
PUT Update group
https://app.geniziz.com/api/v1/group/:id/
Request body (JSON)
{
}
DELETE Delete group
https://app.geniziz.com/api/v1/group/:id/

Import

GET List imports
https://app.geniziz.com/api/v1/import/?_limit=100&_skip=0&_fields=
Query parameters
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-separated fields to return.
POST Create import
https://app.geniziz.com/api/v1/import/
Request body (JSON)
{
}
GET Presets import
https://app.geniziz.com/api/v1/import/presets/?_limit=100&_skip=0&_fields=

GET /import/presets/ — canned competitor mappings + valid targets.

Query parameters
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-separated fields to return.
GET Get import
https://app.geniziz.com/api/v1/import/:id/?_fields=
Query parameters
_fieldsComma-separated fields to return.
PUT Update import
https://app.geniziz.com/api/v1/import/:id/

PUT /import/{id}/ — set the mapping on a draft and queue it.

Request body (JSON)
{
}

Inbox Folder

GET List inbox folders
https://app.geniziz.com/api/v1/inbox_folder/?_limit=100&_skip=0&_fields=
Query parameters
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-separated fields to return.
POST Create inbox folder
https://app.geniziz.com/api/v1/inbox_folder/
Request body (JSON)
{
}
PUT Update inbox folder
https://app.geniziz.com/api/v1/inbox_folder/:id/
Request body (JSON)
{
}
DELETE Delete inbox folder
https://app.geniziz.com/api/v1/inbox_folder/:id/

Inbox Prospect

GET List inbox prospects
https://app.geniziz.com/api/v1/inbox_prospect/?_limit=100&_skip=0&_fields=
Query parameters
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-separated fields to return.
POST Convert inbox prospect
https://app.geniziz.com/api/v1/inbox_prospect/:id/convert/

POST /inbox_prospect/{id}/convert/ — lead + contact + the message.

Request body (JSON)
{
}
POST Dismiss inbox prospect
https://app.geniziz.com/api/v1/inbox_prospect/:id/dismiss/

POST /inbox_prospect/{id}/dismiss/

Request body (JSON)
{
}

Inbox Rule

GET List inbox rules
https://app.geniziz.com/api/v1/inbox_rule/?_limit=100&_skip=0&_fields=
Query parameters
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-separated fields to return.
POST Create inbox rule
https://app.geniziz.com/api/v1/inbox_rule/
Request body (JSON)
{
}
PUT Update inbox rule
https://app.geniziz.com/api/v1/inbox_rule/:id/
Request body (JSON)
{
}
DELETE Delete inbox rule
https://app.geniziz.com/api/v1/inbox_rule/:id/

Lead

GET List leads
https://app.geniziz.com/api/v1/lead/?_limit=100&_skip=0&_fields=
Query parameters
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-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
_fieldsComma-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
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-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
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-separated fields to return.
GET Get mailing export
https://app.geniziz.com/api/v1/mailing_export/:id/?_fields=
Query parameters
_fieldsComma-separated fields to return.

Me

GET Get current user
https://app.geniziz.com/api/v1/me/?_limit=100&_skip=0&_fields=
Query parameters
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-separated fields to return.
Example response 200
{
    "id": "user_0a1b2c3d4e5f6g7h8i9j0k",
    "email": "you@acme.example",
    "first_name": "Alex",
    "last_name": "Rivera",
    "organizations": [
        {
            "id": "orga_3c4d5e6f7g8h9i0j1k2l3m",
            "name": "Acme Inc"
        }
    ]
}
PUT Update current user
https://app.geniziz.com/api/v1/me/

PUT /me/ — the user edits their own profile (name, signature).

Request body (JSON)
{
}

Membership

GET List memberships
https://app.geniziz.com/api/v1/membership/?_limit=100&_skip=0&_fields=
Query parameters
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-separated fields to return.
POST Create membership
https://app.geniziz.com/api/v1/membership/

POST /membership/ {email, role_id?}: invite by email — creates the user when no account exists (they set a password via reset once email lands in Phase 6; until then an admin shares an API key).

Request body (JSON)
{
}
PUT Update membership
https://app.geniziz.com/api/v1/membership/:id/
Request body (JSON)
{
}
DELETE Delete membership
https://app.geniziz.com/api/v1/membership/:id/

Notification

GET List notifications
https://app.geniziz.com/api/v1/notification/?_limit=100&_skip=0&_fields=
Query parameters
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-separated fields to return.
PUT Update notification
https://app.geniziz.com/api/v1/notification/:id/

PUT /notification/{id}/ — mark (un)read; own notifications only.

Request body (JSON)
{
}
POST Mark all read notification
https://app.geniziz.com/api/v1/notification/mark_all_read/

POST /notification/mark_all_read/

Request body (JSON)
{
}

OAuth App

GET List oauth apps
https://app.geniziz.com/api/v1/oauth_app/?_limit=100&_skip=0&_fields=
Query parameters
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-separated fields to return.
POST Create oauth app
https://app.geniziz.com/api/v1/oauth_app/
Request body (JSON)
{
}
DELETE Delete oauth app
https://app.geniziz.com/api/v1/oauth_app/:id/

Opportunity

GET List opportunities
https://app.geniziz.com/api/v1/opportunity/?_limit=100&_skip=0&_fields=
Query parameters
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-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
_fieldsComma-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
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-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/

Organization

POST Create organization
https://app.geniziz.com/api/v1/organization/

POST /organization/ — create an additional workspace for the signed-in user. The caller becomes its admin and gets the same structural defaults as bin/bootstrap provisions. The workspace bills under an account the user owns: pass `account_id` to choose, or it defaults to their account (required when they own more than one).

Request body (JSON)
{
}
GET Get organization
https://app.geniziz.com/api/v1/organization/:id/?_fields=
Query parameters
_fieldsComma-separated fields to return.
PUT Update organization
https://app.geniziz.com/api/v1/organization/:id/
Request body (JSON)
{
}
DELETE Delete organization
https://app.geniziz.com/api/v1/organization/:id/

DELETE /organization/{id}/ — delete the CURRENT workspace and all its data (genizizcrm extension). Admin only; refused while it is the caller's only workspace, so nobody locks themselves out. Stored files are removed from disk; orphaned shared-person rows dissolve.

Phone Number

GET Available phone number
https://app.geniziz.com/api/v1/phone_number/available/?_limit=100&_skip=0&_fields=
Query parameters
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-separated fields to return.
GET List phone numbers
https://app.geniziz.com/api/v1/phone_number/?_limit=100&_skip=0&_fields=
Query parameters
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-separated fields to return.
POST Create phone number
https://app.geniziz.com/api/v1/phone_number/
Request body (JSON)
{
}
GET Get phone number
https://app.geniziz.com/api/v1/phone_number/:id/?_fields=
Query parameters
_fieldsComma-separated fields to return.
PUT Update phone number
https://app.geniziz.com/api/v1/phone_number/:id/
Request body (JSON)
{
}
DELETE Delete phone number
https://app.geniziz.com/api/v1/phone_number/:id/

Pipeline

GET List pipelines
https://app.geniziz.com/api/v1/pipeline/?_limit=100&_skip=0&_fields=
Query parameters
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-separated fields to return.
POST Create pipeline
https://app.geniziz.com/api/v1/pipeline/
Request body (JSON)
{
}
GET Get pipeline
https://app.geniziz.com/api/v1/pipeline/:id/?_fields=
Query parameters
_fieldsComma-separated fields to return.
PUT Update pipeline
https://app.geniziz.com/api/v1/pipeline/:id/
Request body (JSON)
{
}
DELETE Delete pipeline
https://app.geniziz.com/api/v1/pipeline/:id/

Port

POST Close port
https://app.geniziz.com/api/v1/port/close/
Request body (JSON)
{
}
GET List ports
https://app.geniziz.com/api/v1/port/?_limit=100&_skip=0&_fields=
Query parameters
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-separated fields to return.
GET Get port
https://app.geniziz.com/api/v1/port/:id/?_fields=
Query parameters
_fieldsComma-separated fields to return.

Product

GET List products
https://app.geniziz.com/api/v1/product/?_limit=100&_skip=0&_fields=
Query parameters
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-separated fields to return.
POST Create product
https://app.geniziz.com/api/v1/product/
Request body (JSON)
{
}
GET Get product
https://app.geniziz.com/api/v1/product/:id/?_fields=
Query parameters
_fieldsComma-separated fields to return.
PUT Update product
https://app.geniziz.com/api/v1/product/:id/
Request body (JSON)
{
}
DELETE Delete product
https://app.geniziz.com/api/v1/product/:id/

Project

GET List projects
https://app.geniziz.com/api/v1/project/?_limit=100&_skip=0&_fields=
Query parameters
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-separated fields to return.
POST Create project
https://app.geniziz.com/api/v1/project/
Request body (JSON)
{
}
GET Get project
https://app.geniziz.com/api/v1/project/:id/?_fields=
Query parameters
_fieldsComma-separated fields to return.
PUT Update project
https://app.geniziz.com/api/v1/project/:id/
Request body (JSON)
{
}
DELETE Delete project
https://app.geniziz.com/api/v1/project/:id/

Project Task

GET List project tasks
https://app.geniziz.com/api/v1/project_task/?_limit=100&_skip=0&_fields=
Query parameters
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-separated fields to return.
POST Create project task
https://app.geniziz.com/api/v1/project_task/
Request body (JSON)
{
}
GET Get project task
https://app.geniziz.com/api/v1/project_task/:id/?_fields=
Query parameters
_fieldsComma-separated fields to return.
PUT Update project task
https://app.geniziz.com/api/v1/project_task/:id/
Request body (JSON)
{
}
DELETE Delete project task
https://app.geniziz.com/api/v1/project_task/:id/

Quote

GET List quotes
https://app.geniziz.com/api/v1/quote/?_limit=100&_skip=0&_fields=
Query parameters
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-separated fields to return.
POST Create quote
https://app.geniziz.com/api/v1/quote/
Request body (JSON)
{
}
GET Get quote
https://app.geniziz.com/api/v1/quote/:id/?_fields=
Query parameters
_fieldsComma-separated fields to return.
PUT Update quote
https://app.geniziz.com/api/v1/quote/:id/
Request body (JSON)
{
}
DELETE Delete quote
https://app.geniziz.com/api/v1/quote/: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
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-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)
{
}

Role

GET List roles
https://app.geniziz.com/api/v1/role/?_limit=100&_skip=0&_fields=
Query parameters
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-separated fields to return.
POST Create role
https://app.geniziz.com/api/v1/role/
Request body (JSON)
{
}
PUT Update role
https://app.geniziz.com/api/v1/role/:id/
Request body (JSON)
{
}
DELETE Delete role
https://app.geniziz.com/api/v1/role/:id/

Send As

GET List send ases
https://app.geniziz.com/api/v1/send_as/?_limit=100&_skip=0&_fields=
Query parameters
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-separated fields to return.
POST Create send as
https://app.geniziz.com/api/v1/send_as/
Request body (JSON)
{
}
DELETE Delete send as
https://app.geniziz.com/api/v1/send_as/:id/

Sequence

GET List sequences
https://app.geniziz.com/api/v1/sequence/?_limit=100&_skip=0&_fields=
Query parameters
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-separated fields to return.
POST Create sequence
https://app.geniziz.com/api/v1/sequence/
Request body (JSON)
{
}
GET Get sequence
https://app.geniziz.com/api/v1/sequence/:id/?_fields=
Query parameters
_fieldsComma-separated fields to return.
PUT Update sequence
https://app.geniziz.com/api/v1/sequence/:id/
Request body (JSON)
{
}
DELETE Delete sequence
https://app.geniziz.com/api/v1/sequence/:id/

Sequence Subscription

GET List sequence subscriptions
https://app.geniziz.com/api/v1/sequence_subscription/?_limit=100&_skip=0&_fields=
Query parameters
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-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
_fieldsComma-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/

SMS Template

GET List sms templates
https://app.geniziz.com/api/v1/sms_template/?_limit=100&_skip=0&_fields=
Query parameters
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-separated fields to return.
POST Create sms template
https://app.geniziz.com/api/v1/sms_template/
Request body (JSON)
{
}
GET Get sms template
https://app.geniziz.com/api/v1/sms_template/:id/?_fields=
Query parameters
_fieldsComma-separated fields to return.
PUT Update sms template
https://app.geniziz.com/api/v1/sms_template/:id/
Request body (JSON)
{
}
DELETE Delete sms template
https://app.geniziz.com/api/v1/sms_template/:id/

Status

GET Lead status
https://app.geniziz.com/api/v1/status/lead/?_limit=100&_skip=0&_fields=
Query parameters
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-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
_fieldsComma-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
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-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
_fieldsComma-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/

Task

GET List tasks
https://app.geniziz.com/api/v1/task/?_limit=100&_skip=0&_fields=
Query parameters
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-separated fields to return.
Example response 200
{
    "data": [
        {
            "id": "task_4d5e6f7g8h9i0j1k2l3m4n",
            "lead_id": "lead_2x9Qb1c3d4e5f6g7h8i9j0",
            "_type": "call",
            "text": "Follow up on the proposal",
            "date": "2026-02-01",
            "is_complete": false,
            "assigned_to": "user_0a1b2c3d4e5f6g7h8i9j0k",
            "date_created": "2026-01-15T09:33:00.000Z"
        }
    ],
    "has_more": false
}
POST Create task
https://app.geniziz.com/api/v1/task/
Request body (JSON)
{
    "lead_id": "lead_2x9Qb1c3d4e5f6g7h8i9j0",
    "_type": "call",
    "text": "Follow up on the proposal",
    "date": "2026-02-01",
    "assigned_to": "user_0a1b2c3d4e5f6g7h8i9j0k"
}
Example response 201
{
    "id": "task_4d5e6f7g8h9i0j1k2l3m4n",
    "lead_id": "lead_2x9Qb1c3d4e5f6g7h8i9j0",
    "_type": "call",
    "text": "Follow up on the proposal",
    "date": "2026-02-01",
    "is_complete": false,
    "assigned_to": "user_0a1b2c3d4e5f6g7h8i9j0k",
    "date_created": "2026-01-15T09:33:00.000Z"
}
PUT Put task
https://app.geniziz.com/api/v1/task/

PUT /task/ — bulk update by id__in (by convention), e.g. marking a set of tasks complete.

Request body (JSON)
{
}
GET Get task
https://app.geniziz.com/api/v1/task/:id/?_fields=
Query parameters
_fieldsComma-separated fields to return.
Example response 200
{
    "id": "task_4d5e6f7g8h9i0j1k2l3m4n",
    "lead_id": "lead_2x9Qb1c3d4e5f6g7h8i9j0",
    "_type": "call",
    "text": "Follow up on the proposal",
    "date": "2026-02-01",
    "is_complete": false,
    "assigned_to": "user_0a1b2c3d4e5f6g7h8i9j0k",
    "date_created": "2026-01-15T09:33:00.000Z"
}
PUT Update task
https://app.geniziz.com/api/v1/task/:id/
Request body (JSON)
{
}
DELETE Delete task
https://app.geniziz.com/api/v1/task/:id/

User

GET List users
https://app.geniziz.com/api/v1/user/?_limit=100&_skip=0&_fields=
Query parameters
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-separated fields to return.
GET Availability user
https://app.geniziz.com/api/v1/user/availability/?_limit=100&_skip=0&_fields=

GET /user/availability/ — dialer presence of all members.

Query parameters
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-separated fields to return.
PUT Availability user
https://app.geniziz.com/api/v1/user/availability/

PUT /user/availability/ {availability: online|offline} — own status.

Request body (JSON)
{
}
GET Get user
https://app.geniziz.com/api/v1/user/:id/?_fields=
Query parameters
_fieldsComma-separated fields to return.

Webhook

GET List webhooks
https://app.geniziz.com/api/v1/webhook/?_limit=100&_skip=0&_fields=
Query parameters
_limitPage size (max 200). · e.g. 100
_skipOffset for pagination.
_fieldsComma-separated fields to return.
POST Create webhook
https://app.geniziz.com/api/v1/webhook/
Request body (JSON)
{
    "url": "https://hooks.example/geniziz",
    "events": [
        "lead.created",
        "lead.updated",
        "opportunity.status_updated"
    ],
    "status": "active",
    "verify_ssl": true
}
Example response 201
{
    "id": "whk_9i0j1k2l3m4n5o6p7q8r9s",
    "url": "https://hooks.example/geniziz",
    "events": [
        "lead.created",
        "lead.updated",
        "opportunity.status_updated"
    ],
    "status": "active",
    "verify_ssl": true,
    "date_created": "2026-01-15T09:35:00.000Z"
}
GET Get webhook
https://app.geniziz.com/api/v1/webhook/:id/?_fields=
Query parameters
_fieldsComma-separated fields to return.
PUT Update webhook
https://app.geniziz.com/api/v1/webhook/:id/
Request body (JSON)
{
}
DELETE Delete webhook
https://app.geniziz.com/api/v1/webhook/:id/