List deals

GET/v1/crm/deals
Scope: crm:read

Deals in your organization, newest first, each with a summary of its lead. Filter by stage_id, owner_id or lead_id, and page with limit and offset.

Headers

  • AuthorizationstringRequired

    Bearer followed by a space and your API key, for example Bearer vk_….

Query parameters

  • stage_idstring · uuid or null

    Filter by stage ID

  • owner_idstring · uuid or null

    Filter by owner ID

  • lead_idstring · uuid or null

    Filter by lead ID

  • limitinteger

    Maximum number of deals to return

    ≥ 1≤ 100Default 50
  • offsetinteger

    Number of deals to skip

    ≥ 0Default 0

Response

200

  • totalintegerRequired

    Total rows matching the query, across all pages

  • limitintegerRequired

    Page size that was applied

  • offsetintegerRequired

    Rows skipped before this page

  • has_morebooleanRequired

    Whether a further page exists

  • messagestringRequired
  • dealsarray of objectsRequired

    List of deals

    Show 15 child attributes
    • namestringRequired

      Deal name/title

      Example "Acme Corp - Enterprise License"
    • actual_close_datestring · date-time or null

      Actual close date (set when deal is won/lost)

    • created_atstring · date-time or null

      When the deal was created

      Example "2024-01-15T10:30:00+00:00"
    • custom_fieldsobject or null

      Custom fields as key-value pairs

    • expected_close_datestring · date-time or null

      Expected close date

      Example "2024-03-31T00:00:00+00:00"
    • idstring or null

      Deal ID

      Example "e3f4a5b6-c7d8-9012-ef01-345678901234"
    • leadobject or null

      Associated lead data

    • lead_idstring or null

      Associated lead ID

      Example "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
    • metadataobject or null

      Additional metadata

    • notesstring or null

      Deal notes

      Example "Initial meeting scheduled for next week"
    • owner_idstring or null

      ID of the deal owner (user)

      Example "f4a5b6c7-d8e9-0123-f012-456789012345"
    • probabilityinteger or null

      Win probability percentage (0-100)

      Example 75
    • stage_idstring or null

      Current stage ID

      Example "d2e3f4a5-b6c7-8901-def0-234567890123"
    • updated_atstring · date-time or null

      When the deal was last updated

      Example "2024-01-20T14:45:00+00:00"
    • valuenumber or null

      Deal value in dollars

      Example 50000
  • countintegerRequired

    Deals in this page

  • successboolean
    Default true

Errors

Errors share one JSON body: success, error, message, optional details, and request_id.

StatusCodeMeaning
400VALIDATION_ERROR

The request didn't match the endpoint's schema: a missing or malformed field, a bad query parameter, or a value out of range. details.errors lists each failing field with its field, message and type.

401UNAUTHORIZED

The Authorization header is missing or malformed, or the API key is unknown or has been deactivated.

401API_KEY_EXPIRED

The API key is past its expiry date. Create a new key in the Victoria AI app.

403INSUFFICIENT_SCOPE

The API key doesn't have the scope this endpoint requires, such as leads:write.

403ORGANIZATION_DEACTIVATED

The organization that owns this API key has been deactivated.

429RATE_LIMITED

Too many requests for this API key: more than 100 a minute to one endpoint, or 600 a minute in total. Retry after the number of seconds in the Retry-After header. See Rate limits.

500INTERNAL_ERROR

Something failed on our side. The response never includes internal details; quote its request_id when you contact support.

503UPSTREAM_TIMEOUT

A service the API depends on timed out. The request is safe to retry.

503AUTH_UNAVAILABLE

The API key couldn't be checked because the authentication service was unavailable. The request is safe to retry.

Response headers

HeaderDescription
X-Request-ID

Correlation ID for the request, also returned as request_id in error bodies. Send your own X-Request-ID, up to 128 letters, digits, ., _, : or -, and it's used instead.

RateLimit-Limit

Requests allowed to this endpoint per minute.

RateLimit-Remaining

Requests you can still send to this endpoint right now.

RateLimit-Reset

Seconds until the endpoint's full limit is available again.

Retry-After

On a 429: seconds to wait before retrying.