API reference
DEVELOPER PLATFORM · v1

An API you can build with

CRM, campaigns, analytics and integrations. Exact contracts, practical examples and signed webhooks.

Download OpenAPI

Private preview: use a project API key. Public SLA and support windows have not been established yet.

PATCH

Update Developer Crm Client

/api/v1/developer/crm/clients/{clientId}

Use the access scope below. The generated schemas specify the exact request and responses.

Access scopecrm.clients.write

Authorization: Bearer YOUR_PROJECT_TOKEN

Parameters

clientIdrequired · path

stringminLength: 1 · maxLength: 160

JSON Schema
{
  "type": "string",
  "minLength": 1,
  "maxLength": 160
}
idempotency-keyrequired · header

stringpattern: "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$"

JSON Schema
{
  "type": "string",
  "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$"
}

Request body

application/json

union

Variant 1

object

operationrequired
stringenum: ["display_name"]
displayNamerequired
stringminLength: 1 · maxLength: 160
JSON Schema
{
  "type": "object",
  "properties": {
    "operation": {
      "type": "string",
      "enum": [
        "display_name"
      ]
    },
    "displayName": {
      "type": "string",
      "minLength": 1,
      "maxLength": 160
    }
  },
  "required": [
    "operation",
    "displayName"
  ],
  "additionalProperties": false
}
Variant 2

object

operationrequired
stringenum: ["phone"]
phonerequired
string | nullmaxLength: 40
JSON Schema
{
  "type": "object",
  "properties": {
    "operation": {
      "type": "string",
      "enum": [
        "phone"
      ]
    },
    "phone": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 40
    }
  },
  "required": [
    "operation",
    "phone"
  ],
  "additionalProperties": false
}
Variant 3

object

operationrequired
stringenum: ["lifecycle"]
statusrequired
stringenum: ["active","archived"]
JSON Schema
{
  "type": "object",
  "properties": {
    "operation": {
      "type": "string",
      "enum": [
        "lifecycle"
      ]
    },
    "status": {
      "type": "string",
      "enum": [
        "active",
        "archived"
      ]
    }
  },
  "required": [
    "operation",
    "status"
  ],
  "additionalProperties": false
}
Variant 4

object

operationrequired
stringenum: ["metadata_patch"]
responsibleIdentityId
string | nullminLength: 1 · maxLength: 120
addTags
arraymaxItems: 12
Nested schema

arraymaxItems: 12

stringminLength: 1 · maxLength: 40

JSON Schema
{
  "type": "string",
  "minLength": 1,
  "maxLength": 40
}
JSON Schema
{
  "type": "array",
  "items": {
    "type": "string",
    "minLength": 1,
    "maxLength": 40
  },
  "maxItems": 12
}
removeTags
arraymaxItems: 12
Nested schema

arraymaxItems: 12

stringminLength: 1 · maxLength: 40

JSON Schema
{
  "type": "string",
  "minLength": 1,
  "maxLength": 40
}
JSON Schema
{
  "type": "array",
  "items": {
    "type": "string",
    "minLength": 1,
    "maxLength": 40
  },
  "maxItems": 12
}
JSON Schema
{
  "type": "object",
  "properties": {
    "operation": {
      "type": "string",
      "enum": [
        "metadata_patch"
      ]
    },
    "responsibleIdentityId": {
      "type": [
        "string",
        "null"
      ],
      "minLength": 1,
      "maxLength": 120
    },
    "addTags": {
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 40
      },
      "maxItems": 12
    },
    "removeTags": {
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 40
      },
      "maxItems": 12
    }
  },
  "required": [
    "operation"
  ],
  "additionalProperties": false
}
Variant 5

object

operationrequired
stringenum: ["organization_link"]
organizationIdrequired
stringminLength: 1 · maxLength: 160
role
string | nullminLength: 1 · maxLength: 120
JSON Schema
{
  "type": "object",
  "properties": {
    "operation": {
      "type": "string",
      "enum": [
        "organization_link"
      ]
    },
    "organizationId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 160
    },
    "role": {
      "type": [
        "string",
        "null"
      ],
      "minLength": 1,
      "maxLength": 120
    }
  },
  "required": [
    "operation",
    "organizationId"
  ],
  "additionalProperties": false
}
Variant 6

object

operationrequired
stringenum: ["organization_unlink"]
organizationIdrequired
stringminLength: 1 · maxLength: 160
JSON Schema
{
  "type": "object",
  "properties": {
    "operation": {
      "type": "string",
      "enum": [
        "organization_unlink"
      ]
    },
    "organizationId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 160
    }
  },
  "required": [
    "operation",
    "organizationId"
  ],
  "additionalProperties": false
}
JSON Schema
{
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "operation": {
          "type": "string",
          "enum": [
            "display_name"
          ]
        },
        "displayName": {
          "type": "string",
          "minLength": 1,
          "maxLength": 160
        }
      },
      "required": [
        "operation",
        "displayName"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "operation": {
          "type": "string",
          "enum": [
            "phone"
          ]
        },
        "phone": {
          "type": [
            "string",
            "null"
          ],
          "maxLength": 40
        }
      },
      "required": [
        "operation",
        "phone"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "operation": {
          "type": "string",
          "enum": [
            "lifecycle"
          ]
        },
        "status": {
          "type": "string",
          "enum": [
            "active",
            "archived"
          ]
        }
      },
      "required": [
        "operation",
        "status"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "operation": {
          "type": "string",
          "enum": [
            "metadata_patch"
          ]
        },
        "responsibleIdentityId": {
          "type": [
            "string",
            "null"
          ],
          "minLength": 1,
          "maxLength": 120
        },
        "addTags": {
          "type": "array",
          "items": {
            "type": "string",
            "minLength": 1,
            "maxLength": 40
          },
          "maxItems": 12
        },
        "removeTags": {
          "type": "array",
          "items": {
            "type": "string",
            "minLength": 1,
            "maxLength": 40
          },
          "maxItems": 12
        }
      },
      "required": [
        "operation"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "operation": {
          "type": "string",
          "enum": [
            "organization_link"
          ]
        },
        "organizationId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 160
        },
        "role": {
          "type": [
            "string",
            "null"
          ],
          "minLength": 1,
          "maxLength": 120
        }
      },
      "required": [
        "operation",
        "organizationId"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "operation": {
          "type": "string",
          "enum": [
            "organization_unlink"
          ]
        },
        "organizationId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 160
        }
      },
      "required": [
        "operation",
        "organizationId"
      ],
      "additionalProperties": false
    }
  ],
  "$ref": "#/components/schemas/UpdateDeveloperCrmClientRequest"
}

Request examples

curl --request PATCH   'https://YOUR_NOVA_HOST/api/v1/developer/crm/clients/CLIENT_ID'   --header 'Authorization: Bearer YOUR_PROJECT_TOKEN'   --header 'Idempotency-Key: YOUR_UNIQUE_COMMAND_ID'   --header 'Content-Type: application/json'   --data '{"operation":"metadata_patch","responsibleIdentityId":"MEMBER_ID","addTags":["priority"]}'

Responses

200 Updated CRM client receipt
application/json

object

resourceIdrequired
stringminLength: 1 · maxLength: 160
changedrequired
boolean
JSON Schema
{
  "type": "object",
  "properties": {
    "resourceId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 160
    },
    "changed": {
      "type": "boolean"
    }
  },
  "required": [
    "resourceId",
    "changed"
  ],
  "$ref": "#/components/schemas/DeveloperMutationResponse"
}
400 Invalid client command or idempotency key
application/problem+json

object

type
stringformat: "uri" · default: "about:blank"
titlerequired
string
statusrequired
integerminimum: 100 · maximum: 599
detail
string
instance
string
errors
object
JSON Schema
{
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "default": "about:blank"
    },
    "title": {
      "type": "string"
    },
    "status": {
      "type": "integer",
      "minimum": 100,
      "maximum": 599
    },
    "detail": {
      "type": "string"
    },
    "instance": {
      "type": "string"
    },
    "errors": {
      "type": "object",
      "additionalProperties": {}
    }
  },
  "required": [
    "title",
    "status"
  ]
}
401 Invalid developer credential
application/problem+json

object

type
stringformat: "uri" · default: "about:blank"
titlerequired
string
statusrequired
integerminimum: 100 · maximum: 599
detail
string
instance
string
errors
object
JSON Schema
{
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "default": "about:blank"
    },
    "title": {
      "type": "string"
    },
    "status": {
      "type": "integer",
      "minimum": 100,
      "maximum": 599
    },
    "detail": {
      "type": "string"
    },
    "instance": {
      "type": "string"
    },
    "errors": {
      "type": "object",
      "additionalProperties": {}
    }
  },
  "required": [
    "title",
    "status"
  ]
}
404 CRM client, responsible member, or organization not found
application/problem+json

object

type
stringformat: "uri" · default: "about:blank"
titlerequired
string
statusrequired
integerminimum: 100 · maximum: 599
detail
string
instance
string
errors
object
JSON Schema
{
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "default": "about:blank"
    },
    "title": {
      "type": "string"
    },
    "status": {
      "type": "integer",
      "minimum": 100,
      "maximum": 599
    },
    "detail": {
      "type": "string"
    },
    "instance": {
      "type": "string"
    },
    "errors": {
      "type": "object",
      "additionalProperties": {}
    }
  },
  "required": [
    "title",
    "status"
  ]
}
409 Archived client/organization or idempotency key conflict
application/problem+json

object

type
stringformat: "uri" · default: "about:blank"
titlerequired
string
statusrequired
integerminimum: 100 · maximum: 599
detail
string
instance
string
errors
object
JSON Schema
{
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "default": "about:blank"
    },
    "title": {
      "type": "string"
    },
    "status": {
      "type": "integer",
      "minimum": 100,
      "maximum": 599
    },
    "detail": {
      "type": "string"
    },
    "instance": {
      "type": "string"
    },
    "errors": {
      "type": "object",
      "additionalProperties": {}
    }
  },
  "required": [
    "title",
    "status"
  ]
}
429 Developer API rate limit exceeded
application/problem+json

object

type
stringformat: "uri" · default: "about:blank"
titlerequired
string
statusrequired
integerminimum: 100 · maximum: 599
detail
string
instance
string
errors
object
JSON Schema
{
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "default": "about:blank"
    },
    "title": {
      "type": "string"
    },
    "status": {
      "type": "integer",
      "minimum": 100,
      "maximum": 599
    },
    "detail": {
      "type": "string"
    },
    "instance": {
      "type": "string"
    },
    "errors": {
      "type": "object",
      "additionalProperties": {}
    }
  },
  "required": [
    "title",
    "status"
  ]
}
503 Developer API rate limiter unavailable
application/problem+json

object

type
stringformat: "uri" · default: "about:blank"
titlerequired
string
statusrequired
integerminimum: 100 · maximum: 599
detail
string
instance
string
errors
object
JSON Schema
{
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "default": "about:blank"
    },
    "title": {
      "type": "string"
    },
    "status": {
      "type": "integer",
      "minimum": 100,
      "maximum": 599
    },
    "detail": {
      "type": "string"
    },
    "instance": {
      "type": "string"
    },
    "errors": {
      "type": "object",
      "additionalProperties": {}
    }
  },
  "required": [
    "title",
    "status"
  ]
}