REST API

Crm API

Manage contacts, pipeline, and activity.

Generated from the Celerp 2.4.0 OpenAPI schema, 16 September 2026.

GET /crm/contacts

List Contacts

Parameters

NameInRequiredTypeDescription
qquery--string--
limitquery--integer--
offsetquery--integer--
contact_typequery--string, optional--
include_deletedquery--boolean--

Responses

StatusDescriptionBody
200Successful Responseobject
422Validation ErrorHTTPValidationError

Example

curl -X GET http://localhost:8000/crm/contacts \
  -H "Authorization: Bearer $TOKEN"

POST /crm/contacts

Create Contact

Request body

FieldTypeRequiredDescription
namestringyesName
company_namestring, optional--Company Name
websitestring, optional--Website
currencystring, optional--Currency
emailstring, optional--Email
phonestring, optional--Phone
billing_addressstring, optional--Billing Address
shipping_addressstring, optional--Shipping Address
contact_typestring--Contact Type
attributesobject--Attributes
idempotency_keystring, optional--Idempotency Key

Responses

StatusDescriptionBody
200Successful Responseobject
422Validation ErrorHTTPValidationError

Example

curl -X POST http://localhost:8000/crm/contacts \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ ... }'

POST /crm/contacts/bulk/delete

Bulk Delete Contacts

Request body

FieldTypeRequiredDescription
contact_idsarray of stringyesContact Ids

Responses

StatusDescriptionBody
200Successful Responseobject
422Validation ErrorHTTPValidationError

Example

curl -X POST http://localhost:8000/crm/contacts/bulk/delete \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ ... }'

GET /crm/contacts/export/csv

Export Contacts Csv

Parameters

NameInRequiredTypeDescription
qquery--string, optional--
selectedquery--array of string--

Responses

StatusDescriptionBody
200Successful Response--
422Validation ErrorHTTPValidationError

Example

curl -X GET http://localhost:8000/crm/contacts/export/csv \
  -H "Authorization: Bearer $TOKEN"

POST /crm/contacts/import

Import Contact

Accept only the canonical contact-create CIF snapshot transport.

Request body

FieldTypeRequiredDescription
entity_idstringyesEntity Id
event_typestringyesEvent Type
dataobjectyesData
sourcestringyesSource
idempotency_keystringyesIdempotency Key
source_tsstring, optional--Source Ts

Responses

StatusDescriptionBody
200Successful Responseobject
422Validation ErrorHTTPValidationError

Example

curl -X POST http://localhost:8000/crm/contacts/import \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ ... }'

POST /crm/contacts/import/batch

Batch Import Contacts

Batch-import CIF contact records. Idempotent on idempotency_key. Max 500 per call.

Request body

FieldTypeRequiredDescription
recordsarray of CRMImportRecordyesRecords

Responses

StatusDescriptionBody
200Successful Responsecelerp_contacts__routes__BatchImportResult
422Validation ErrorHTTPValidationError

Example

curl -X POST http://localhost:8000/crm/contacts/import/batch \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ ... }'

POST /crm/contacts/merge

Merge Contacts

Request body

FieldTypeRequiredDescription
target_contact_idstringyesTarget Contact Id
source_contact_idsarray of stringyesSource Contact Ids

Responses

StatusDescriptionBody
200Successful Responseobject
422Validation ErrorHTTPValidationError

Example

curl -X POST http://localhost:8000/crm/contacts/merge \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ ... }'

GET /crm/contacts/{contact_id}

Get Contact

Parameters

NameInRequiredTypeDescription
contact_idpathyesstring--

Responses

StatusDescriptionBody
200Successful Responseobject
422Validation ErrorHTTPValidationError

Example

curl -X GET http://localhost:8000/crm/contacts/:contact_id \
  -H "Authorization: Bearer $TOKEN"

PATCH /crm/contacts/{contact_id}

Update Contact

Parameters

NameInRequiredTypeDescription
contact_idpathyesstring--

Request body

FieldTypeRequiredDescription
fields_changedobject--Fields Changed
idempotency_keystring, optional--Idempotency Key

Responses

StatusDescriptionBody
200Successful Responseobject
422Validation ErrorHTTPValidationError

Example

curl -X PATCH http://localhost:8000/crm/contacts/:contact_id \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ ... }'

POST /crm/contacts/{contact_id}/addresses

Add Contact Address

Parameters

NameInRequiredTypeDescription
contact_idpathyesstring--

Request body

FieldTypeRequiredDescription
address_typestring--Address Type
line1string, optional--Line1
line2string, optional--Line2
citystring, optional--City
statestring, optional--State
postal_codestring, optional--Postal Code
countrystring, optional--Country
attnstring, optional--Attn
is_defaultboolean--Is Default

Responses

StatusDescriptionBody
200Successful Responseobject
422Validation ErrorHTTPValidationError

Example

curl -X POST http://localhost:8000/crm/contacts/:contact_id/addresses \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ ... }'

PATCH /crm/contacts/{contact_id}/addresses/{address_id}

Update Contact Address

Parameters

NameInRequiredTypeDescription
contact_idpathyesstring--
address_idpathyesstring--

Request body

FieldTypeRequiredDescription
address_typestring, optional--Address Type
line1string, optional--Line1
line2string, optional--Line2
citystring, optional--City
statestring, optional--State
postal_codestring, optional--Postal Code
countrystring, optional--Country
attnstring, optional--Attn
is_defaultboolean, optional--Is Default

Responses

StatusDescriptionBody
200Successful Responseobject
422Validation ErrorHTTPValidationError

Example

curl -X PATCH http://localhost:8000/crm/contacts/:contact_id/addresses/:address_id \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ ... }'

DELETE /crm/contacts/{contact_id}/addresses/{address_id}

Remove Contact Address

Parameters

NameInRequiredTypeDescription
contact_idpathyesstring--
address_idpathyesstring--

Responses

StatusDescriptionBody
200Successful Responseobject
422Validation ErrorHTTPValidationError

Example

curl -X DELETE http://localhost:8000/crm/contacts/:contact_id/addresses/:address_id \
  -H "Authorization: Bearer $TOKEN"

POST /crm/contacts/{contact_id}/files

Upload Contact File

Parameters

NameInRequiredTypeDescription
contact_idpathyesstring--

Responses

StatusDescriptionBody
200Successful Responseobject
422Validation ErrorHTTPValidationError

Example

curl -X POST http://localhost:8000/crm/contacts/:contact_id/files \
  -H "Authorization: Bearer $TOKEN"

GET /crm/contacts/{contact_id}/files/{file_id}

Download Contact File

Parameters

NameInRequiredTypeDescription
contact_idpathyesstring--
file_idpathyesstring--

Responses

StatusDescriptionBody
200Successful Response--
422Validation ErrorHTTPValidationError

Example

curl -X GET http://localhost:8000/crm/contacts/:contact_id/files/:file_id \
  -H "Authorization: Bearer $TOKEN"

DELETE /crm/contacts/{contact_id}/files/{file_id}

Delete Contact File

Parameters

NameInRequiredTypeDescription
contact_idpathyesstring--
file_idpathyesstring--

Responses

StatusDescriptionBody
200Successful Responseobject
422Validation ErrorHTTPValidationError

Example

curl -X DELETE http://localhost:8000/crm/contacts/:contact_id/files/:file_id \
  -H "Authorization: Bearer $TOKEN"

PATCH /crm/contacts/{contact_id}/files/{file_id}/description

Update Contact File Description

Parameters

NameInRequiredTypeDescription
contact_idpathyesstring--
file_idpathyesstring--

Responses

StatusDescriptionBody
200Successful Responseobject
422Validation ErrorHTTPValidationError

Example

curl -X PATCH http://localhost:8000/crm/contacts/:contact_id/files/:file_id/description \
  -H "Authorization: Bearer $TOKEN"

POST /crm/contacts/{contact_id}/files/{file_id}/tag

Tag Contact File

Update the document_tag on an existing uploaded file.

Parameters

NameInRequiredTypeDescription
contact_idpathyesstring--
file_idpathyesstring--

Responses

StatusDescriptionBody
200Successful Responseobject
422Validation ErrorHTTPValidationError

Example

curl -X POST http://localhost:8000/crm/contacts/:contact_id/files/:file_id/tag \
  -H "Authorization: Bearer $TOKEN"

GET /crm/contacts/{contact_id}/notes

List Contact Notes

Parameters

NameInRequiredTypeDescription
contact_idpathyesstring--

Responses

StatusDescriptionBody
200Successful Responsearray of object
422Validation ErrorHTTPValidationError

Example

curl -X GET http://localhost:8000/crm/contacts/:contact_id/notes \
  -H "Authorization: Bearer $TOKEN"

POST /crm/contacts/{contact_id}/notes

Add Contact Note

Parameters

NameInRequiredTypeDescription
contact_idpathyesstring--

Request body

FieldTypeRequiredDescription
notestringyesNote
idempotency_keystring, optional--Idempotency Key

Responses

StatusDescriptionBody
200Successful Responseobject
422Validation ErrorHTTPValidationError

Example

curl -X POST http://localhost:8000/crm/contacts/:contact_id/notes \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ ... }'

PATCH /crm/contacts/{contact_id}/notes/{note_id}

Update Contact Note

Parameters

NameInRequiredTypeDescription
contact_idpathyesstring--
note_idpathyesstring--

Request body

FieldTypeRequiredDescription
notestringyesNote
idempotency_keystring, optional--Idempotency Key

Responses

StatusDescriptionBody
200Successful Responseobject
422Validation ErrorHTTPValidationError

Example

curl -X PATCH http://localhost:8000/crm/contacts/:contact_id/notes/:note_id \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ ... }'

DELETE /crm/contacts/{contact_id}/notes/{note_id}

Delete Contact Note

Parameters

NameInRequiredTypeDescription
contact_idpathyesstring--
note_idpathyesstring--

Responses

StatusDescriptionBody
200Successful Responseobject
422Validation ErrorHTTPValidationError

Example

curl -X DELETE http://localhost:8000/crm/contacts/:contact_id/notes/:note_id \
  -H "Authorization: Bearer $TOKEN"

POST /crm/contacts/{contact_id}/people

Add Contact Person

Parameters

NameInRequiredTypeDescription
contact_idpathyesstring--

Request body

FieldTypeRequiredDescription
namestringyesName
rolestring, optional--Role
emailstring, optional--Email
phonestring, optional--Phone
is_primaryboolean--Is Primary

Responses

StatusDescriptionBody
200Successful Responseobject
422Validation ErrorHTTPValidationError

Example

curl -X POST http://localhost:8000/crm/contacts/:contact_id/people \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ ... }'

PATCH /crm/contacts/{contact_id}/people/{person_id}

Update Contact Person

Parameters

NameInRequiredTypeDescription
contact_idpathyesstring--
person_idpathyesstring--

Request body

FieldTypeRequiredDescription
namestring, optional--Name
rolestring, optional--Role
emailstring, optional--Email
phonestring, optional--Phone
is_primaryboolean, optional--Is Primary

Responses

StatusDescriptionBody
200Successful Responseobject
422Validation ErrorHTTPValidationError

Example

curl -X PATCH http://localhost:8000/crm/contacts/:contact_id/people/:person_id \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ ... }'

DELETE /crm/contacts/{contact_id}/people/{person_id}

Remove Contact Person

Parameters

NameInRequiredTypeDescription
contact_idpathyesstring--
person_idpathyesstring--

Responses

StatusDescriptionBody
200Successful Responseobject
422Validation ErrorHTTPValidationError

Example

curl -X DELETE http://localhost:8000/crm/contacts/:contact_id/people/:person_id \
  -H "Authorization: Bearer $TOKEN"

POST /crm/contacts/{contact_id}/tags

Tag Contact

Parameters

NameInRequiredTypeDescription
contact_idpathyesstring--

Request body

FieldTypeRequiredDescription
tagsarray of stringyesTags
idempotency_keystring, optional--Idempotency Key

Responses

StatusDescriptionBody
200Successful Responseobject
422Validation ErrorHTTPValidationError

Example

curl -X POST http://localhost:8000/crm/contacts/:contact_id/tags \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ ... }'