For the complete documentation index, see llms.txt. This page is also available as Markdown.

Contacts

All Contacts

get

This endpoint is used to fetch all contacts in the current organization

Authorizations
AuthorizationstringRequired

JWT token obtained from /api/login/. Pass as: Authorization: Bearer

Query parameters
items_per_pageintegerRequired

Items Per Page

pageintegerRequired

Page Number

reversebooleanOptional

Sorting Order

sortstringOptional

Sorting Key

Responses
200Success
application/json

Serializer for Documents.

Recognized primitve fields:

* ``StringField``
* ``URLField``
* ``EmailField``
* ``IntField``
* ``LongField``
* ``FloatField``
* ``DecimalField``
* ``BooleanField``
* ``DateTimeField``
* ``ComplexDateTimeField``
* ``ObjectIdField``
* ``SequenceField`` (assumes it has integer counter)
* ``UUIDField``
* ``GeoPointField``
* ``GeoJsonBaseField`` (all those fields)
* ``DateField``

Compound fields: ListField and DictField are mapped to corresponding DRF fields, with respect to nested field specification.

The ReferenceField is handled like ForeignKey in DRF: there nested serializer autogenerated if serializer depth greater then 0, otherwise it's handled by it's own (results as str(id)).

For EmbeddedDocumentField also nested serializer autogenerated for non-zero depth, otherwise it is skipped. TODO: THIS IS PROBABLY WRONG AND SHOULD BE FIXED.

Generic fields GenericReferenceField and GenericEmbeddedDocumentField are handled by their own with corresponding serializer fields.

Not well supported or untested:

``FileField``
``ImageField``
``BinaryField``

All other fields are mapped to DocumentField and probably will work wrong.

idstringRead-onlyRequired
contact_idstringRequired
display_idstring · max: 100 · nullableOptional
full_namestring · max: 255Required
profile_imagestring · nullableOptional
profile_image_urlstringRead-onlyRequired
primary_emailstringRead-onlyRequired
companystringRead-onlyRequired
lead_sourcestringRead-onlyRequired
contact_ownerstringRead-onlyRequired
lead_statusstring · nullableOptional
person_categorystringRead-onlyRequired
contact_stagestring · nullableOptional
is_draftbooleanOptional
job_titlestring · nullableOptional
departmentstring · nullableOptional
languagestring · nullableOptional
seniority_levelstringRead-onlyRequired
buying_rolestringRead-onlyRequired
influence_levelinteger · nullableOptional
interest_levelinteger · nullableOptional
preferred_communication_channelstring · nullableOptional
do_not_contactstring · max: 10 · nullableOptional
phonestringRead-onlyRequired
whatsapp_numberstringRead-onlyRequired
campaignstring · nullableOptional
timezonestring · nullableOptional
signoff_authoritystring · nullableOptional
lead_scorenumber · double · nullableOptional
last_activity_datestring · date-time · nullableOptional
linkedin_urlstringRead-onlyRequired
twitter_urlstringRead-onlyRequired
linked_userstringRead-onlyRequired
creation_timestring · date-timeOptional
last_update_timestring · date-timeOptional
reporting_hierarchy_levelinteger · nullableOptional
reporting_confidencenumber · double · nullableOptional
reporting_sourcestring · nullableOptional
associated_deal_projectstringRead-onlyRequired
login_infostringRead-onlyRequired
get/api/contact/
GET /api/contact/?items_per_page=1&page=1 HTTP/1.1
Host: api.app.projetly.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200Success
[
  {
    "id": "text",
    "contact_id": "text",
    "display_id": "text",
    "full_name": "text",
    "profile_image": "text",
    "profile_image_url": "text",
    "primary_email": "text",
    "company": "text",
    "lead_source": "text",
    "contact_owner": "text",
    "associated_deals": [],
    "lead_status": "text",
    "person_category": "text",
    "custom_fields": {
      "ANY_ADDITIONAL_PROPERTY": "anything"
    },
    "contact_stage": "text",
    "is_draft": true,
    "job_title": "text",
    "department": "text",
    "location": {
      "ANY_ADDITIONAL_PROPERTY": "anything"
    },
    "language": "text",
    "seniority_level": "text",
    "buying_role": "text",
    "influence_level": 1,
    "interest_level": 1,
    "preferred_communication_channel": "text",
    "do_not_contact": "text",
    "phone": "text",
    "whatsapp_number": "text",
    "campaign": "text",
    "timezone": "text",
    "signoff_authority": "text",
    "lead_score": 1,
    "last_activity_date": "2026-01-01T00:00:00.000Z",
    "linkedin_url": "text",
    "twitter_url": "text",
    "linked_user": "text",
    "creation_time": "2026-01-01T00:00:00.000Z",
    "last_update_time": "2026-01-01T00:00:00.000Z",
    "reports_to": {
      "ANY_ADDITIONAL_PROPERTY": "anything"
    },
    "reporting_hierarchy_level": 1,
    "reporting_confidence": 1,
    "reporting_source": "text",
    "associated_deal_project": "text",
    "login_info": "text"
  }
]

Creates a new contact

post

This endpoint is used to save a new contact for the current organization

Authorizations
AuthorizationstringRequired

JWT token obtained from /api/login/. Pass as: Authorization: Bearer

Body
Other propertiesanyOptional
Responses
200

No response body

No content

post/api/contact/
POST /api/contact/ HTTP/1.1
Host: api.app.projetly.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 63

{
  "full_name": "John Doe",
  "primary_email": "john.doe@example.com"
}
200

No response body

No content

Gets a contact with the given id

get

This endpoint is used to fetch a contact details for the current organization

Authorizations
AuthorizationstringRequired

JWT token obtained from /api/login/. Pass as: Authorization: Bearer

Path parameters
idstringRequired
Responses
200Success
application/json

Serializer for Documents.

Recognized primitve fields:

* ``StringField``
* ``URLField``
* ``EmailField``
* ``IntField``
* ``LongField``
* ``FloatField``
* ``DecimalField``
* ``BooleanField``
* ``DateTimeField``
* ``ComplexDateTimeField``
* ``ObjectIdField``
* ``SequenceField`` (assumes it has integer counter)
* ``UUIDField``
* ``GeoPointField``
* ``GeoJsonBaseField`` (all those fields)
* ``DateField``

Compound fields: ListField and DictField are mapped to corresponding DRF fields, with respect to nested field specification.

The ReferenceField is handled like ForeignKey in DRF: there nested serializer autogenerated if serializer depth greater then 0, otherwise it's handled by it's own (results as str(id)).

For EmbeddedDocumentField also nested serializer autogenerated for non-zero depth, otherwise it is skipped. TODO: THIS IS PROBABLY WRONG AND SHOULD BE FIXED.

Generic fields GenericReferenceField and GenericEmbeddedDocumentField are handled by their own with corresponding serializer fields.

Not well supported or untested:

``FileField``
``ImageField``
``BinaryField``

All other fields are mapped to DocumentField and probably will work wrong.

idstringRead-onlyRequired
contact_idstringRequired
display_idstring · max: 100 · nullableOptional
full_namestring · max: 255Required
profile_imagestring · nullableOptional
profile_image_urlstringRead-onlyRequired
primary_emailstringRead-onlyRequired
companystringRead-onlyRequired
lead_sourcestringRead-onlyRequired
contact_ownerstringRead-onlyRequired
lead_statusstring · nullableOptional
person_categorystringRead-onlyRequired
contact_stagestring · nullableOptional
is_draftbooleanOptional
job_titlestring · nullableOptional
departmentstring · nullableOptional
languagestring · nullableOptional
seniority_levelstringRead-onlyRequired
buying_rolestringRead-onlyRequired
influence_levelinteger · nullableOptional
interest_levelinteger · nullableOptional
preferred_communication_channelstring · nullableOptional
do_not_contactstring · max: 10 · nullableOptional
phonestringRead-onlyRequired
whatsapp_numberstringRead-onlyRequired
campaignstring · nullableOptional
timezonestring · nullableOptional
signoff_authoritystring · nullableOptional
lead_scorenumber · double · nullableOptional
last_activity_datestring · date-time · nullableOptional
linkedin_urlstringRead-onlyRequired
twitter_urlstringRead-onlyRequired
linked_userstringRead-onlyRequired
creation_timestring · date-timeOptional
last_update_timestring · date-timeOptional
reporting_hierarchy_levelinteger · nullableOptional
reporting_confidencenumber · double · nullableOptional
reporting_sourcestring · nullableOptional
associated_deal_projectstringRead-onlyRequired
login_infostringRead-onlyRequired
get/api/contact/{id}/
GET /api/contact/{id}/ HTTP/1.1
Host: api.app.projetly.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200Success
{
  "id": "text",
  "contact_id": "text",
  "display_id": "text",
  "full_name": "text",
  "profile_image": "text",
  "profile_image_url": "text",
  "primary_email": "text",
  "company": "text",
  "lead_source": "text",
  "contact_owner": "text",
  "associated_deals": [],
  "lead_status": "text",
  "person_category": "text",
  "custom_fields": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "contact_stage": "text",
  "is_draft": true,
  "job_title": "text",
  "department": "text",
  "location": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "language": "text",
  "seniority_level": "text",
  "buying_role": "text",
  "influence_level": 1,
  "interest_level": 1,
  "preferred_communication_channel": "text",
  "do_not_contact": "text",
  "phone": "text",
  "whatsapp_number": "text",
  "campaign": "text",
  "timezone": "text",
  "signoff_authority": "text",
  "lead_score": 1,
  "last_activity_date": "2026-01-01T00:00:00.000Z",
  "linkedin_url": "text",
  "twitter_url": "text",
  "linked_user": "text",
  "creation_time": "2026-01-01T00:00:00.000Z",
  "last_update_time": "2026-01-01T00:00:00.000Z",
  "reports_to": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "reporting_hierarchy_level": 1,
  "reporting_confidence": 1,
  "reporting_source": "text",
  "associated_deal_project": "text",
  "login_info": "text"
}

Edits the contact with the given id

put

This endpoint is used to edit a contact for the current organization

Authorizations
AuthorizationstringRequired

JWT token obtained from /api/login/. Pass as: Authorization: Bearer

Path parameters
idstringRequired
Body
Other propertiesanyOptional
Responses
200

No response body

No content

put/api/contact/{id}/
PUT /api/contact/{id}/ HTTP/1.1
Host: api.app.projetly.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 106

{
  "contact_id": "existing_contact_id",
  "full_name": "John Doe",
  "primary_email": "john.doe.updated@example.com"
}
200

No response body

No content

Deletes the contact with the given id

delete

This endpoint is used to delete a contact for the current organization

Authorizations
AuthorizationstringRequired

JWT token obtained from /api/login/. Pass as: Authorization: Bearer

Path parameters
idstringRequired
Responses
204

No response body

No content

delete/api/contact/{id}/
DELETE /api/contact/{id}/ HTTP/1.1
Host: api.app.projetly.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
204

No response body

No content

Get completed meetings for a contact

get

Returns completed meetings (start <= now) a contact is part of, paginated by start time descending.

Authorizations
AuthorizationstringRequired

JWT token obtained from /api/login/. Pass as: Authorization: Bearer

Path parameters
idstringRequired
Responses
200Success
application/json

Serializer for Documents.

Recognized primitve fields:

* ``StringField``
* ``URLField``
* ``EmailField``
* ``IntField``
* ``LongField``
* ``FloatField``
* ``DecimalField``
* ``BooleanField``
* ``DateTimeField``
* ``ComplexDateTimeField``
* ``ObjectIdField``
* ``SequenceField`` (assumes it has integer counter)
* ``UUIDField``
* ``GeoPointField``
* ``GeoJsonBaseField`` (all those fields)
* ``DateField``

Compound fields: ListField and DictField are mapped to corresponding DRF fields, with respect to nested field specification.

The ReferenceField is handled like ForeignKey in DRF: there nested serializer autogenerated if serializer depth greater then 0, otherwise it's handled by it's own (results as str(id)).

For EmbeddedDocumentField also nested serializer autogenerated for non-zero depth, otherwise it is skipped. TODO: THIS IS PROBABLY WRONG AND SHOULD BE FIXED.

Generic fields GenericReferenceField and GenericEmbeddedDocumentField are handled by their own with corresponding serializer fields.

Not well supported or untested:

``FileField``
``ImageField``
``BinaryField``

All other fields are mapped to DocumentField and probably will work wrong.

idstringRead-onlyRequired
contact_idstringRequired
display_idstring · max: 100 · nullableOptional
full_namestring · max: 255Required
profile_imagestring · nullableOptional
profile_image_urlstringRead-onlyRequired
primary_emailstringRead-onlyRequired
companystringRead-onlyRequired
lead_sourcestringRead-onlyRequired
contact_ownerstringRead-onlyRequired
lead_statusstring · nullableOptional
person_categorystringRead-onlyRequired
contact_stagestring · nullableOptional
is_draftbooleanOptional
job_titlestring · nullableOptional
departmentstring · nullableOptional
languagestring · nullableOptional
seniority_levelstringRead-onlyRequired
buying_rolestringRead-onlyRequired
influence_levelinteger · nullableOptional
interest_levelinteger · nullableOptional
preferred_communication_channelstring · nullableOptional
do_not_contactstring · max: 10 · nullableOptional
phonestringRead-onlyRequired
whatsapp_numberstringRead-onlyRequired
campaignstring · nullableOptional
timezonestring · nullableOptional
signoff_authoritystring · nullableOptional
lead_scorenumber · double · nullableOptional
last_activity_datestring · date-time · nullableOptional
linkedin_urlstringRead-onlyRequired
twitter_urlstringRead-onlyRequired
linked_userstringRead-onlyRequired
creation_timestring · date-timeOptional
last_update_timestring · date-timeOptional
reporting_hierarchy_levelinteger · nullableOptional
reporting_confidencenumber · double · nullableOptional
reporting_sourcestring · nullableOptional
associated_deal_projectstringRead-onlyRequired
login_infostringRead-onlyRequired
get/api/contact/{id}/completed-meetings/
GET /api/contact/{id}/completed-meetings/ HTTP/1.1
Host: api.app.projetly.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200Success
{
  "id": "text",
  "contact_id": "text",
  "display_id": "text",
  "full_name": "text",
  "profile_image": "text",
  "profile_image_url": "text",
  "primary_email": "text",
  "company": "text",
  "lead_source": "text",
  "contact_owner": "text",
  "associated_deals": [],
  "lead_status": "text",
  "person_category": "text",
  "custom_fields": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "contact_stage": "text",
  "is_draft": true,
  "job_title": "text",
  "department": "text",
  "location": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "language": "text",
  "seniority_level": "text",
  "buying_role": "text",
  "influence_level": 1,
  "interest_level": 1,
  "preferred_communication_channel": "text",
  "do_not_contact": "text",
  "phone": "text",
  "whatsapp_number": "text",
  "campaign": "text",
  "timezone": "text",
  "signoff_authority": "text",
  "lead_score": 1,
  "last_activity_date": "2026-01-01T00:00:00.000Z",
  "linkedin_url": "text",
  "twitter_url": "text",
  "linked_user": "text",
  "creation_time": "2026-01-01T00:00:00.000Z",
  "last_update_time": "2026-01-01T00:00:00.000Z",
  "reports_to": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "reporting_hierarchy_level": 1,
  "reporting_confidence": 1,
  "reporting_source": "text",
  "associated_deal_project": "text",
  "login_info": "text"
}

Get deals for a contact

get

This endpoint returns deals for a given contact based on their visibility.

Authorizations
AuthorizationstringRequired

JWT token obtained from /api/login/. Pass as: Authorization: Bearer

Path parameters
idstringRequired
Query parameters
next_cursorstringOptional

Cursor for next page

page_sizeintegerOptional

Items Per Page

Responses
200Success
application/json

Serializer for Documents.

Recognized primitve fields:

* ``StringField``
* ``URLField``
* ``EmailField``
* ``IntField``
* ``LongField``
* ``FloatField``
* ``DecimalField``
* ``BooleanField``
* ``DateTimeField``
* ``ComplexDateTimeField``
* ``ObjectIdField``
* ``SequenceField`` (assumes it has integer counter)
* ``UUIDField``
* ``GeoPointField``
* ``GeoJsonBaseField`` (all those fields)
* ``DateField``

Compound fields: ListField and DictField are mapped to corresponding DRF fields, with respect to nested field specification.

The ReferenceField is handled like ForeignKey in DRF: there nested serializer autogenerated if serializer depth greater then 0, otherwise it's handled by it's own (results as str(id)).

For EmbeddedDocumentField also nested serializer autogenerated for non-zero depth, otherwise it is skipped. TODO: THIS IS PROBABLY WRONG AND SHOULD BE FIXED.

Generic fields GenericReferenceField and GenericEmbeddedDocumentField are handled by their own with corresponding serializer fields.

Not well supported or untested:

``FileField``
``ImageField``
``BinaryField``

All other fields are mapped to DocumentField and probably will work wrong.

idstringRead-onlyRequired
contact_idstringRequired
display_idstring · max: 100 · nullableOptional
full_namestring · max: 255Required
profile_imagestring · nullableOptional
profile_image_urlstringRead-onlyRequired
primary_emailstringRead-onlyRequired
companystringRead-onlyRequired
lead_sourcestringRead-onlyRequired
contact_ownerstringRead-onlyRequired
lead_statusstring · nullableOptional
person_categorystringRead-onlyRequired
contact_stagestring · nullableOptional
is_draftbooleanOptional
job_titlestring · nullableOptional
departmentstring · nullableOptional
languagestring · nullableOptional
seniority_levelstringRead-onlyRequired
buying_rolestringRead-onlyRequired
influence_levelinteger · nullableOptional
interest_levelinteger · nullableOptional
preferred_communication_channelstring · nullableOptional
do_not_contactstring · max: 10 · nullableOptional
phonestringRead-onlyRequired
whatsapp_numberstringRead-onlyRequired
campaignstring · nullableOptional
timezonestring · nullableOptional
signoff_authoritystring · nullableOptional
lead_scorenumber · double · nullableOptional
last_activity_datestring · date-time · nullableOptional
linkedin_urlstringRead-onlyRequired
twitter_urlstringRead-onlyRequired
linked_userstringRead-onlyRequired
creation_timestring · date-timeOptional
last_update_timestring · date-timeOptional
reporting_hierarchy_levelinteger · nullableOptional
reporting_confidencenumber · double · nullableOptional
reporting_sourcestring · nullableOptional
associated_deal_projectstringRead-onlyRequired
login_infostringRead-onlyRequired
get/api/contact/{id}/deals/
GET /api/contact/{id}/deals/ HTTP/1.1
Host: api.app.projetly.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200Success
{
  "id": "text",
  "contact_id": "text",
  "display_id": "text",
  "full_name": "text",
  "profile_image": "text",
  "profile_image_url": "text",
  "primary_email": "text",
  "company": "text",
  "lead_source": "text",
  "contact_owner": "text",
  "associated_deals": [],
  "lead_status": "text",
  "person_category": "text",
  "custom_fields": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "contact_stage": "text",
  "is_draft": true,
  "job_title": "text",
  "department": "text",
  "location": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "language": "text",
  "seniority_level": "text",
  "buying_role": "text",
  "influence_level": 1,
  "interest_level": 1,
  "preferred_communication_channel": "text",
  "do_not_contact": "text",
  "phone": "text",
  "whatsapp_number": "text",
  "campaign": "text",
  "timezone": "text",
  "signoff_authority": "text",
  "lead_score": 1,
  "last_activity_date": "2026-01-01T00:00:00.000Z",
  "linkedin_url": "text",
  "twitter_url": "text",
  "linked_user": "text",
  "creation_time": "2026-01-01T00:00:00.000Z",
  "last_update_time": "2026-01-01T00:00:00.000Z",
  "reports_to": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "reporting_hierarchy_level": 1,
  "reporting_confidence": 1,
  "reporting_source": "text",
  "associated_deal_project": "text",
  "login_info": "text"
}

Get projects for a contact

get

This endpoint returns projects for a given contact based on their visibility.

Authorizations
AuthorizationstringRequired

JWT token obtained from /api/login/. Pass as: Authorization: Bearer

Path parameters
idstringRequired
Query parameters
next_cursorstringOptional

Cursor for next page

page_sizeintegerOptional

Items Per Page

Responses
200Success
application/json

Serializer for Documents.

Recognized primitve fields:

* ``StringField``
* ``URLField``
* ``EmailField``
* ``IntField``
* ``LongField``
* ``FloatField``
* ``DecimalField``
* ``BooleanField``
* ``DateTimeField``
* ``ComplexDateTimeField``
* ``ObjectIdField``
* ``SequenceField`` (assumes it has integer counter)
* ``UUIDField``
* ``GeoPointField``
* ``GeoJsonBaseField`` (all those fields)
* ``DateField``

Compound fields: ListField and DictField are mapped to corresponding DRF fields, with respect to nested field specification.

The ReferenceField is handled like ForeignKey in DRF: there nested serializer autogenerated if serializer depth greater then 0, otherwise it's handled by it's own (results as str(id)).

For EmbeddedDocumentField also nested serializer autogenerated for non-zero depth, otherwise it is skipped. TODO: THIS IS PROBABLY WRONG AND SHOULD BE FIXED.

Generic fields GenericReferenceField and GenericEmbeddedDocumentField are handled by their own with corresponding serializer fields.

Not well supported or untested:

``FileField``
``ImageField``
``BinaryField``

All other fields are mapped to DocumentField and probably will work wrong.

idstringRead-onlyRequired
contact_idstringRequired
display_idstring · max: 100 · nullableOptional
full_namestring · max: 255Required
profile_imagestring · nullableOptional
profile_image_urlstringRead-onlyRequired
primary_emailstringRead-onlyRequired
companystringRead-onlyRequired
lead_sourcestringRead-onlyRequired
contact_ownerstringRead-onlyRequired
lead_statusstring · nullableOptional
person_categorystringRead-onlyRequired
contact_stagestring · nullableOptional
is_draftbooleanOptional
job_titlestring · nullableOptional
departmentstring · nullableOptional
languagestring · nullableOptional
seniority_levelstringRead-onlyRequired
buying_rolestringRead-onlyRequired
influence_levelinteger · nullableOptional
interest_levelinteger · nullableOptional
preferred_communication_channelstring · nullableOptional
do_not_contactstring · max: 10 · nullableOptional
phonestringRead-onlyRequired
whatsapp_numberstringRead-onlyRequired
campaignstring · nullableOptional
timezonestring · nullableOptional
signoff_authoritystring · nullableOptional
lead_scorenumber · double · nullableOptional
last_activity_datestring · date-time · nullableOptional
linkedin_urlstringRead-onlyRequired
twitter_urlstringRead-onlyRequired
linked_userstringRead-onlyRequired
creation_timestring · date-timeOptional
last_update_timestring · date-timeOptional
reporting_hierarchy_levelinteger · nullableOptional
reporting_confidencenumber · double · nullableOptional
reporting_sourcestring · nullableOptional
associated_deal_projectstringRead-onlyRequired
login_infostringRead-onlyRequired
get/api/contact/{id}/projects/
GET /api/contact/{id}/projects/ HTTP/1.1
Host: api.app.projetly.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200Success
{
  "id": "text",
  "contact_id": "text",
  "display_id": "text",
  "full_name": "text",
  "profile_image": "text",
  "profile_image_url": "text",
  "primary_email": "text",
  "company": "text",
  "lead_source": "text",
  "contact_owner": "text",
  "associated_deals": [],
  "lead_status": "text",
  "person_category": "text",
  "custom_fields": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "contact_stage": "text",
  "is_draft": true,
  "job_title": "text",
  "department": "text",
  "location": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "language": "text",
  "seniority_level": "text",
  "buying_role": "text",
  "influence_level": 1,
  "interest_level": 1,
  "preferred_communication_channel": "text",
  "do_not_contact": "text",
  "phone": "text",
  "whatsapp_number": "text",
  "campaign": "text",
  "timezone": "text",
  "signoff_authority": "text",
  "lead_score": 1,
  "last_activity_date": "2026-01-01T00:00:00.000Z",
  "linkedin_url": "text",
  "twitter_url": "text",
  "linked_user": "text",
  "creation_time": "2026-01-01T00:00:00.000Z",
  "last_update_time": "2026-01-01T00:00:00.000Z",
  "reports_to": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "reporting_hierarchy_level": 1,
  "reporting_confidence": 1,
  "reporting_source": "text",
  "associated_deal_project": "text",
  "login_info": "text"
}

Get tasks for a contact

get

This endpoint returns tasks assigned to or owned by a given contact.

Authorizations
AuthorizationstringRequired

JWT token obtained from /api/login/. Pass as: Authorization: Bearer

Path parameters
idstringRequired
Query parameters
page_sizeintegerOptional

Items Per Page

Responses
200Success
application/json

Serializer for Documents.

Recognized primitve fields:

* ``StringField``
* ``URLField``
* ``EmailField``
* ``IntField``
* ``LongField``
* ``FloatField``
* ``DecimalField``
* ``BooleanField``
* ``DateTimeField``
* ``ComplexDateTimeField``
* ``ObjectIdField``
* ``SequenceField`` (assumes it has integer counter)
* ``UUIDField``
* ``GeoPointField``
* ``GeoJsonBaseField`` (all those fields)
* ``DateField``

Compound fields: ListField and DictField are mapped to corresponding DRF fields, with respect to nested field specification.

The ReferenceField is handled like ForeignKey in DRF: there nested serializer autogenerated if serializer depth greater then 0, otherwise it's handled by it's own (results as str(id)).

For EmbeddedDocumentField also nested serializer autogenerated for non-zero depth, otherwise it is skipped. TODO: THIS IS PROBABLY WRONG AND SHOULD BE FIXED.

Generic fields GenericReferenceField and GenericEmbeddedDocumentField are handled by their own with corresponding serializer fields.

Not well supported or untested:

``FileField``
``ImageField``
``BinaryField``

All other fields are mapped to DocumentField and probably will work wrong.

idstringRead-onlyRequired
contact_idstringRequired
display_idstring · max: 100 · nullableOptional
full_namestring · max: 255Required
profile_imagestring · nullableOptional
profile_image_urlstringRead-onlyRequired
primary_emailstringRead-onlyRequired
companystringRead-onlyRequired
lead_sourcestringRead-onlyRequired
contact_ownerstringRead-onlyRequired
lead_statusstring · nullableOptional
person_categorystringRead-onlyRequired
contact_stagestring · nullableOptional
is_draftbooleanOptional
job_titlestring · nullableOptional
departmentstring · nullableOptional
languagestring · nullableOptional
seniority_levelstringRead-onlyRequired
buying_rolestringRead-onlyRequired
influence_levelinteger · nullableOptional
interest_levelinteger · nullableOptional
preferred_communication_channelstring · nullableOptional
do_not_contactstring · max: 10 · nullableOptional
phonestringRead-onlyRequired
whatsapp_numberstringRead-onlyRequired
campaignstring · nullableOptional
timezonestring · nullableOptional
signoff_authoritystring · nullableOptional
lead_scorenumber · double · nullableOptional
last_activity_datestring · date-time · nullableOptional
linkedin_urlstringRead-onlyRequired
twitter_urlstringRead-onlyRequired
linked_userstringRead-onlyRequired
creation_timestring · date-timeOptional
last_update_timestring · date-timeOptional
reporting_hierarchy_levelinteger · nullableOptional
reporting_confidencenumber · double · nullableOptional
reporting_sourcestring · nullableOptional
associated_deal_projectstringRead-onlyRequired
login_infostringRead-onlyRequired
get/api/contact/{id}/tasks/
GET /api/contact/{id}/tasks/ HTTP/1.1
Host: api.app.projetly.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200Success
{
  "id": "text",
  "contact_id": "text",
  "display_id": "text",
  "full_name": "text",
  "profile_image": "text",
  "profile_image_url": "text",
  "primary_email": "text",
  "company": "text",
  "lead_source": "text",
  "contact_owner": "text",
  "associated_deals": [],
  "lead_status": "text",
  "person_category": "text",
  "custom_fields": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "contact_stage": "text",
  "is_draft": true,
  "job_title": "text",
  "department": "text",
  "location": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "language": "text",
  "seniority_level": "text",
  "buying_role": "text",
  "influence_level": 1,
  "interest_level": 1,
  "preferred_communication_channel": "text",
  "do_not_contact": "text",
  "phone": "text",
  "whatsapp_number": "text",
  "campaign": "text",
  "timezone": "text",
  "signoff_authority": "text",
  "lead_score": 1,
  "last_activity_date": "2026-01-01T00:00:00.000Z",
  "linkedin_url": "text",
  "twitter_url": "text",
  "linked_user": "text",
  "creation_time": "2026-01-01T00:00:00.000Z",
  "last_update_time": "2026-01-01T00:00:00.000Z",
  "reports_to": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "reporting_hierarchy_level": 1,
  "reporting_confidence": 1,
  "reporting_source": "text",
  "associated_deal_project": "text",
  "login_info": "text"
}

Get upcoming meetings for a contact

get

Returns upcoming meetings (start > now) a contact is part of, paginated by start time ascending.

Authorizations
AuthorizationstringRequired

JWT token obtained from /api/login/. Pass as: Authorization: Bearer

Path parameters
idstringRequired
Responses
200Success
application/json

Serializer for Documents.

Recognized primitve fields:

* ``StringField``
* ``URLField``
* ``EmailField``
* ``IntField``
* ``LongField``
* ``FloatField``
* ``DecimalField``
* ``BooleanField``
* ``DateTimeField``
* ``ComplexDateTimeField``
* ``ObjectIdField``
* ``SequenceField`` (assumes it has integer counter)
* ``UUIDField``
* ``GeoPointField``
* ``GeoJsonBaseField`` (all those fields)
* ``DateField``

Compound fields: ListField and DictField are mapped to corresponding DRF fields, with respect to nested field specification.

The ReferenceField is handled like ForeignKey in DRF: there nested serializer autogenerated if serializer depth greater then 0, otherwise it's handled by it's own (results as str(id)).

For EmbeddedDocumentField also nested serializer autogenerated for non-zero depth, otherwise it is skipped. TODO: THIS IS PROBABLY WRONG AND SHOULD BE FIXED.

Generic fields GenericReferenceField and GenericEmbeddedDocumentField are handled by their own with corresponding serializer fields.

Not well supported or untested:

``FileField``
``ImageField``
``BinaryField``

All other fields are mapped to DocumentField and probably will work wrong.

idstringRead-onlyRequired
contact_idstringRequired
display_idstring · max: 100 · nullableOptional
full_namestring · max: 255Required
profile_imagestring · nullableOptional
profile_image_urlstringRead-onlyRequired
primary_emailstringRead-onlyRequired
companystringRead-onlyRequired
lead_sourcestringRead-onlyRequired
contact_ownerstringRead-onlyRequired
lead_statusstring · nullableOptional
person_categorystringRead-onlyRequired
contact_stagestring · nullableOptional
is_draftbooleanOptional
job_titlestring · nullableOptional
departmentstring · nullableOptional
languagestring · nullableOptional
seniority_levelstringRead-onlyRequired
buying_rolestringRead-onlyRequired
influence_levelinteger · nullableOptional
interest_levelinteger · nullableOptional
preferred_communication_channelstring · nullableOptional
do_not_contactstring · max: 10 · nullableOptional
phonestringRead-onlyRequired
whatsapp_numberstringRead-onlyRequired
campaignstring · nullableOptional
timezonestring · nullableOptional
signoff_authoritystring · nullableOptional
lead_scorenumber · double · nullableOptional
last_activity_datestring · date-time · nullableOptional
linkedin_urlstringRead-onlyRequired
twitter_urlstringRead-onlyRequired
linked_userstringRead-onlyRequired
creation_timestring · date-timeOptional
last_update_timestring · date-timeOptional
reporting_hierarchy_levelinteger · nullableOptional
reporting_confidencenumber · double · nullableOptional
reporting_sourcestring · nullableOptional
associated_deal_projectstringRead-onlyRequired
login_infostringRead-onlyRequired
get/api/contact/{id}/upcoming-meetings/
GET /api/contact/{id}/upcoming-meetings/ HTTP/1.1
Host: api.app.projetly.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200Success
{
  "id": "text",
  "contact_id": "text",
  "display_id": "text",
  "full_name": "text",
  "profile_image": "text",
  "profile_image_url": "text",
  "primary_email": "text",
  "company": "text",
  "lead_source": "text",
  "contact_owner": "text",
  "associated_deals": [],
  "lead_status": "text",
  "person_category": "text",
  "custom_fields": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "contact_stage": "text",
  "is_draft": true,
  "job_title": "text",
  "department": "text",
  "location": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "language": "text",
  "seniority_level": "text",
  "buying_role": "text",
  "influence_level": 1,
  "interest_level": 1,
  "preferred_communication_channel": "text",
  "do_not_contact": "text",
  "phone": "text",
  "whatsapp_number": "text",
  "campaign": "text",
  "timezone": "text",
  "signoff_authority": "text",
  "lead_score": 1,
  "last_activity_date": "2026-01-01T00:00:00.000Z",
  "linkedin_url": "text",
  "twitter_url": "text",
  "linked_user": "text",
  "creation_time": "2026-01-01T00:00:00.000Z",
  "last_update_time": "2026-01-01T00:00:00.000Z",
  "reports_to": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "reporting_hierarchy_level": 1,
  "reporting_confidence": 1,
  "reporting_source": "text",
  "associated_deal_project": "text",
  "login_info": "text"
}

Activities for a Contact

get

Returns all activities for the contact id given

Authorizations
AuthorizationstringRequired

JWT token obtained from /api/login/. Pass as: Authorization: Bearer

Responses
200

No response body

No content

get/api/contact/activities/
GET /api/contact/activities/ HTTP/1.1
Host: api.app.projetly.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

No response body

No content

Bulk delete contacts

post

Bulk delete contacts by their IDs

Authorizations
AuthorizationstringRequired

JWT token obtained from /api/login/. Pass as: Authorization: Bearer

Body
Other propertiesanyOptional
Responses
200

No response body

No content

post/api/contact/bulk-delete/
POST /api/contact/bulk-delete/ HTTP/1.1
Host: api.app.projetly.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 38

{
  "ANY_ADDITIONAL_PROPERTY": "anything"
}
200

No response body

No content

Bulk publish contacts

post

Publish multiple contacts by setting is_draft=False

Authorizations
AuthorizationstringRequired

JWT token obtained from /api/login/. Pass as: Authorization: Bearer

Body
Other propertiesanyOptional
Responses
200

No response body

No content

post/api/contact/bulk-publish/
POST /api/contact/bulk-publish/ HTTP/1.1
Host: api.app.projetly.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 38

{
  "ANY_ADDITIONAL_PROPERTY": "anything"
}
200

No response body

No content

post

API endpoint that allows contacts to be created, viewed, deleted or edited.

Authorizations
AuthorizationstringRequired

JWT token obtained from /api/login/. Pass as: Authorization: Bearer

Body

Serializer for Documents.

Recognized primitve fields:

* ``StringField``
* ``URLField``
* ``EmailField``
* ``IntField``
* ``LongField``
* ``FloatField``
* ``DecimalField``
* ``BooleanField``
* ``DateTimeField``
* ``ComplexDateTimeField``
* ``ObjectIdField``
* ``SequenceField`` (assumes it has integer counter)
* ``UUIDField``
* ``GeoPointField``
* ``GeoJsonBaseField`` (all those fields)
* ``DateField``

Compound fields: ListField and DictField are mapped to corresponding DRF fields, with respect to nested field specification.

The ReferenceField is handled like ForeignKey in DRF: there nested serializer autogenerated if serializer depth greater then 0, otherwise it's handled by it's own (results as str(id)).

For EmbeddedDocumentField also nested serializer autogenerated for non-zero depth, otherwise it is skipped. TODO: THIS IS PROBABLY WRONG AND SHOULD BE FIXED.

Generic fields GenericReferenceField and GenericEmbeddedDocumentField are handled by their own with corresponding serializer fields.

Not well supported or untested:

``FileField``
``ImageField``
``BinaryField``

All other fields are mapped to DocumentField and probably will work wrong.

idstringRead-onlyRequired
contact_idstringRequired
display_idstring · max: 100 · nullableOptional
full_namestring · max: 255Required
profile_imagestring · nullableOptional
profile_image_urlstringRead-onlyRequired
primary_emailstringRead-onlyRequired
companystringRead-onlyRequired
lead_sourcestringRead-onlyRequired
contact_ownerstringRead-onlyRequired
lead_statusstring · nullableOptional
person_categorystringRead-onlyRequired
contact_stagestring · nullableOptional
is_draftbooleanOptional
job_titlestring · nullableOptional
departmentstring · nullableOptional
languagestring · nullableOptional
seniority_levelstringRead-onlyRequired
buying_rolestringRead-onlyRequired
influence_levelinteger · nullableOptional
interest_levelinteger · nullableOptional
preferred_communication_channelstring · nullableOptional
do_not_contactstring · max: 10 · nullableOptional
phonestringRead-onlyRequired
whatsapp_numberstringRead-onlyRequired
campaignstring · nullableOptional
timezonestring · nullableOptional
signoff_authoritystring · nullableOptional
lead_scorenumber · double · nullableOptional
last_activity_datestring · date-time · nullableOptional
linkedin_urlstringRead-onlyRequired
twitter_urlstringRead-onlyRequired
linked_userstringRead-onlyRequired
creation_timestring · date-timeOptional
last_update_timestring · date-timeOptional
reporting_hierarchy_levelinteger · nullableOptional
reporting_confidencenumber · double · nullableOptional
reporting_sourcestring · nullableOptional
associated_deal_projectstringRead-onlyRequired
login_infostringRead-onlyRequired
Responses
200Success
application/json

Serializer for Documents.

Recognized primitve fields:

* ``StringField``
* ``URLField``
* ``EmailField``
* ``IntField``
* ``LongField``
* ``FloatField``
* ``DecimalField``
* ``BooleanField``
* ``DateTimeField``
* ``ComplexDateTimeField``
* ``ObjectIdField``
* ``SequenceField`` (assumes it has integer counter)
* ``UUIDField``
* ``GeoPointField``
* ``GeoJsonBaseField`` (all those fields)
* ``DateField``

Compound fields: ListField and DictField are mapped to corresponding DRF fields, with respect to nested field specification.

The ReferenceField is handled like ForeignKey in DRF: there nested serializer autogenerated if serializer depth greater then 0, otherwise it's handled by it's own (results as str(id)).

For EmbeddedDocumentField also nested serializer autogenerated for non-zero depth, otherwise it is skipped. TODO: THIS IS PROBABLY WRONG AND SHOULD BE FIXED.

Generic fields GenericReferenceField and GenericEmbeddedDocumentField are handled by their own with corresponding serializer fields.

Not well supported or untested:

``FileField``
``ImageField``
``BinaryField``

All other fields are mapped to DocumentField and probably will work wrong.

idstringRead-onlyRequired
contact_idstringRequired
display_idstring · max: 100 · nullableOptional
full_namestring · max: 255Required
profile_imagestring · nullableOptional
profile_image_urlstringRead-onlyRequired
primary_emailstringRead-onlyRequired
companystringRead-onlyRequired
lead_sourcestringRead-onlyRequired
contact_ownerstringRead-onlyRequired
lead_statusstring · nullableOptional
person_categorystringRead-onlyRequired
contact_stagestring · nullableOptional
is_draftbooleanOptional
job_titlestring · nullableOptional
departmentstring · nullableOptional
languagestring · nullableOptional
seniority_levelstringRead-onlyRequired
buying_rolestringRead-onlyRequired
influence_levelinteger · nullableOptional
interest_levelinteger · nullableOptional
preferred_communication_channelstring · nullableOptional
do_not_contactstring · max: 10 · nullableOptional
phonestringRead-onlyRequired
whatsapp_numberstringRead-onlyRequired
campaignstring · nullableOptional
timezonestring · nullableOptional
signoff_authoritystring · nullableOptional
lead_scorenumber · double · nullableOptional
last_activity_datestring · date-time · nullableOptional
linkedin_urlstringRead-onlyRequired
twitter_urlstringRead-onlyRequired
linked_userstringRead-onlyRequired
creation_timestring · date-timeOptional
last_update_timestring · date-timeOptional
reporting_hierarchy_levelinteger · nullableOptional
reporting_confidencenumber · double · nullableOptional
reporting_sourcestring · nullableOptional
associated_deal_projectstringRead-onlyRequired
login_infostringRead-onlyRequired
post/api/contact/del_department/
POST /api/contact/del_department/ HTTP/1.1
Host: api.app.projetly.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 779

{
  "contact_id": "text",
  "display_id": "text",
  "full_name": "text",
  "profile_image": "text",
  "associated_deals": [],
  "lead_status": "text",
  "custom_fields": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "contact_stage": "text",
  "is_draft": true,
  "job_title": "text",
  "department": "text",
  "location": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "language": "text",
  "influence_level": 1,
  "interest_level": 1,
  "preferred_communication_channel": "text",
  "do_not_contact": "text",
  "campaign": "text",
  "timezone": "text",
  "signoff_authority": "text",
  "lead_score": 1,
  "last_activity_date": "2026-01-01T00:00:00.000Z",
  "creation_time": "2026-01-01T00:00:00.000Z",
  "last_update_time": "2026-01-01T00:00:00.000Z",
  "reports_to": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "reporting_hierarchy_level": 1,
  "reporting_confidence": 1,
  "reporting_source": "text"
}
200Success
{
  "id": "text",
  "contact_id": "text",
  "display_id": "text",
  "full_name": "text",
  "profile_image": "text",
  "profile_image_url": "text",
  "primary_email": "text",
  "company": "text",
  "lead_source": "text",
  "contact_owner": "text",
  "associated_deals": [],
  "lead_status": "text",
  "person_category": "text",
  "custom_fields": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "contact_stage": "text",
  "is_draft": true,
  "job_title": "text",
  "department": "text",
  "location": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "language": "text",
  "seniority_level": "text",
  "buying_role": "text",
  "influence_level": 1,
  "interest_level": 1,
  "preferred_communication_channel": "text",
  "do_not_contact": "text",
  "phone": "text",
  "whatsapp_number": "text",
  "campaign": "text",
  "timezone": "text",
  "signoff_authority": "text",
  "lead_score": 1,
  "last_activity_date": "2026-01-01T00:00:00.000Z",
  "linkedin_url": "text",
  "twitter_url": "text",
  "linked_user": "text",
  "creation_time": "2026-01-01T00:00:00.000Z",
  "last_update_time": "2026-01-01T00:00:00.000Z",
  "reports_to": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "reporting_hierarchy_level": 1,
  "reporting_confidence": 1,
  "reporting_source": "text",
  "associated_deal_project": "text",
  "login_info": "text"
}
post

API endpoint that allows contacts to be created, viewed, deleted or edited.

Authorizations
AuthorizationstringRequired

JWT token obtained from /api/login/. Pass as: Authorization: Bearer

Body

Serializer for Documents.

Recognized primitve fields:

* ``StringField``
* ``URLField``
* ``EmailField``
* ``IntField``
* ``LongField``
* ``FloatField``
* ``DecimalField``
* ``BooleanField``
* ``DateTimeField``
* ``ComplexDateTimeField``
* ``ObjectIdField``
* ``SequenceField`` (assumes it has integer counter)
* ``UUIDField``
* ``GeoPointField``
* ``GeoJsonBaseField`` (all those fields)
* ``DateField``

Compound fields: ListField and DictField are mapped to corresponding DRF fields, with respect to nested field specification.

The ReferenceField is handled like ForeignKey in DRF: there nested serializer autogenerated if serializer depth greater then 0, otherwise it's handled by it's own (results as str(id)).

For EmbeddedDocumentField also nested serializer autogenerated for non-zero depth, otherwise it is skipped. TODO: THIS IS PROBABLY WRONG AND SHOULD BE FIXED.

Generic fields GenericReferenceField and GenericEmbeddedDocumentField are handled by their own with corresponding serializer fields.

Not well supported or untested:

``FileField``
``ImageField``
``BinaryField``

All other fields are mapped to DocumentField and probably will work wrong.

idstringRead-onlyRequired
contact_idstringRequired
display_idstring · max: 100 · nullableOptional
full_namestring · max: 255Required
profile_imagestring · nullableOptional
profile_image_urlstringRead-onlyRequired
primary_emailstringRead-onlyRequired
companystringRead-onlyRequired
lead_sourcestringRead-onlyRequired
contact_ownerstringRead-onlyRequired
lead_statusstring · nullableOptional
person_categorystringRead-onlyRequired
contact_stagestring · nullableOptional
is_draftbooleanOptional
job_titlestring · nullableOptional
departmentstring · nullableOptional
languagestring · nullableOptional
seniority_levelstringRead-onlyRequired
buying_rolestringRead-onlyRequired
influence_levelinteger · nullableOptional
interest_levelinteger · nullableOptional
preferred_communication_channelstring · nullableOptional
do_not_contactstring · max: 10 · nullableOptional
phonestringRead-onlyRequired
whatsapp_numberstringRead-onlyRequired
campaignstring · nullableOptional
timezonestring · nullableOptional
signoff_authoritystring · nullableOptional
lead_scorenumber · double · nullableOptional
last_activity_datestring · date-time · nullableOptional
linkedin_urlstringRead-onlyRequired
twitter_urlstringRead-onlyRequired
linked_userstringRead-onlyRequired
creation_timestring · date-timeOptional
last_update_timestring · date-timeOptional
reporting_hierarchy_levelinteger · nullableOptional
reporting_confidencenumber · double · nullableOptional
reporting_sourcestring · nullableOptional
associated_deal_projectstringRead-onlyRequired
login_infostringRead-onlyRequired
Responses
200Success
application/json

Serializer for Documents.

Recognized primitve fields:

* ``StringField``
* ``URLField``
* ``EmailField``
* ``IntField``
* ``LongField``
* ``FloatField``
* ``DecimalField``
* ``BooleanField``
* ``DateTimeField``
* ``ComplexDateTimeField``
* ``ObjectIdField``
* ``SequenceField`` (assumes it has integer counter)
* ``UUIDField``
* ``GeoPointField``
* ``GeoJsonBaseField`` (all those fields)
* ``DateField``

Compound fields: ListField and DictField are mapped to corresponding DRF fields, with respect to nested field specification.

The ReferenceField is handled like ForeignKey in DRF: there nested serializer autogenerated if serializer depth greater then 0, otherwise it's handled by it's own (results as str(id)).

For EmbeddedDocumentField also nested serializer autogenerated for non-zero depth, otherwise it is skipped. TODO: THIS IS PROBABLY WRONG AND SHOULD BE FIXED.

Generic fields GenericReferenceField and GenericEmbeddedDocumentField are handled by their own with corresponding serializer fields.

Not well supported or untested:

``FileField``
``ImageField``
``BinaryField``

All other fields are mapped to DocumentField and probably will work wrong.

idstringRead-onlyRequired
contact_idstringRequired
display_idstring · max: 100 · nullableOptional
full_namestring · max: 255Required
profile_imagestring · nullableOptional
profile_image_urlstringRead-onlyRequired
primary_emailstringRead-onlyRequired
companystringRead-onlyRequired
lead_sourcestringRead-onlyRequired
contact_ownerstringRead-onlyRequired
lead_statusstring · nullableOptional
person_categorystringRead-onlyRequired
contact_stagestring · nullableOptional
is_draftbooleanOptional
job_titlestring · nullableOptional
departmentstring · nullableOptional
languagestring · nullableOptional
seniority_levelstringRead-onlyRequired
buying_rolestringRead-onlyRequired
influence_levelinteger · nullableOptional
interest_levelinteger · nullableOptional
preferred_communication_channelstring · nullableOptional
do_not_contactstring · max: 10 · nullableOptional
phonestringRead-onlyRequired
whatsapp_numberstringRead-onlyRequired
campaignstring · nullableOptional
timezonestring · nullableOptional
signoff_authoritystring · nullableOptional
lead_scorenumber · double · nullableOptional
last_activity_datestring · date-time · nullableOptional
linkedin_urlstringRead-onlyRequired
twitter_urlstringRead-onlyRequired
linked_userstringRead-onlyRequired
creation_timestring · date-timeOptional
last_update_timestring · date-timeOptional
reporting_hierarchy_levelinteger · nullableOptional
reporting_confidencenumber · double · nullableOptional
reporting_sourcestring · nullableOptional
associated_deal_projectstringRead-onlyRequired
login_infostringRead-onlyRequired
post/api/contact/del_seniority_level/
POST /api/contact/del_seniority_level/ HTTP/1.1
Host: api.app.projetly.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 779

{
  "contact_id": "text",
  "display_id": "text",
  "full_name": "text",
  "profile_image": "text",
  "associated_deals": [],
  "lead_status": "text",
  "custom_fields": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "contact_stage": "text",
  "is_draft": true,
  "job_title": "text",
  "department": "text",
  "location": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "language": "text",
  "influence_level": 1,
  "interest_level": 1,
  "preferred_communication_channel": "text",
  "do_not_contact": "text",
  "campaign": "text",
  "timezone": "text",
  "signoff_authority": "text",
  "lead_score": 1,
  "last_activity_date": "2026-01-01T00:00:00.000Z",
  "creation_time": "2026-01-01T00:00:00.000Z",
  "last_update_time": "2026-01-01T00:00:00.000Z",
  "reports_to": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "reporting_hierarchy_level": 1,
  "reporting_confidence": 1,
  "reporting_source": "text"
}
200Success
{
  "id": "text",
  "contact_id": "text",
  "display_id": "text",
  "full_name": "text",
  "profile_image": "text",
  "profile_image_url": "text",
  "primary_email": "text",
  "company": "text",
  "lead_source": "text",
  "contact_owner": "text",
  "associated_deals": [],
  "lead_status": "text",
  "person_category": "text",
  "custom_fields": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "contact_stage": "text",
  "is_draft": true,
  "job_title": "text",
  "department": "text",
  "location": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "language": "text",
  "seniority_level": "text",
  "buying_role": "text",
  "influence_level": 1,
  "interest_level": 1,
  "preferred_communication_channel": "text",
  "do_not_contact": "text",
  "phone": "text",
  "whatsapp_number": "text",
  "campaign": "text",
  "timezone": "text",
  "signoff_authority": "text",
  "lead_score": 1,
  "last_activity_date": "2026-01-01T00:00:00.000Z",
  "linkedin_url": "text",
  "twitter_url": "text",
  "linked_user": "text",
  "creation_time": "2026-01-01T00:00:00.000Z",
  "last_update_time": "2026-01-01T00:00:00.000Z",
  "reports_to": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "reporting_hierarchy_level": 1,
  "reporting_confidence": 1,
  "reporting_source": "text",
  "associated_deal_project": "text",
  "login_info": "text"
}
post

API endpoint that allows contacts to be created, viewed, deleted or edited.

Authorizations
AuthorizationstringRequired

JWT token obtained from /api/login/. Pass as: Authorization: Bearer

Body

Serializer for Documents.

Recognized primitve fields:

* ``StringField``
* ``URLField``
* ``EmailField``
* ``IntField``
* ``LongField``
* ``FloatField``
* ``DecimalField``
* ``BooleanField``
* ``DateTimeField``
* ``ComplexDateTimeField``
* ``ObjectIdField``
* ``SequenceField`` (assumes it has integer counter)
* ``UUIDField``
* ``GeoPointField``
* ``GeoJsonBaseField`` (all those fields)
* ``DateField``

Compound fields: ListField and DictField are mapped to corresponding DRF fields, with respect to nested field specification.

The ReferenceField is handled like ForeignKey in DRF: there nested serializer autogenerated if serializer depth greater then 0, otherwise it's handled by it's own (results as str(id)).

For EmbeddedDocumentField also nested serializer autogenerated for non-zero depth, otherwise it is skipped. TODO: THIS IS PROBABLY WRONG AND SHOULD BE FIXED.

Generic fields GenericReferenceField and GenericEmbeddedDocumentField are handled by their own with corresponding serializer fields.

Not well supported or untested:

``FileField``
``ImageField``
``BinaryField``

All other fields are mapped to DocumentField and probably will work wrong.

idstringRead-onlyRequired
contact_idstringRequired
display_idstring · max: 100 · nullableOptional
full_namestring · max: 255Required
profile_imagestring · nullableOptional
profile_image_urlstringRead-onlyRequired
primary_emailstringRead-onlyRequired
companystringRead-onlyRequired
lead_sourcestringRead-onlyRequired
contact_ownerstringRead-onlyRequired
lead_statusstring · nullableOptional
person_categorystringRead-onlyRequired
contact_stagestring · nullableOptional
is_draftbooleanOptional
job_titlestring · nullableOptional
departmentstring · nullableOptional
languagestring · nullableOptional
seniority_levelstringRead-onlyRequired
buying_rolestringRead-onlyRequired
influence_levelinteger · nullableOptional
interest_levelinteger · nullableOptional
preferred_communication_channelstring · nullableOptional
do_not_contactstring · max: 10 · nullableOptional
phonestringRead-onlyRequired
whatsapp_numberstringRead-onlyRequired
campaignstring · nullableOptional
timezonestring · nullableOptional
signoff_authoritystring · nullableOptional
lead_scorenumber · double · nullableOptional
last_activity_datestring · date-time · nullableOptional
linkedin_urlstringRead-onlyRequired
twitter_urlstringRead-onlyRequired
linked_userstringRead-onlyRequired
creation_timestring · date-timeOptional
last_update_timestring · date-timeOptional
reporting_hierarchy_levelinteger · nullableOptional
reporting_confidencenumber · double · nullableOptional
reporting_sourcestring · nullableOptional
associated_deal_projectstringRead-onlyRequired
login_infostringRead-onlyRequired
Responses
200Success
application/json

Serializer for Documents.

Recognized primitve fields:

* ``StringField``
* ``URLField``
* ``EmailField``
* ``IntField``
* ``LongField``
* ``FloatField``
* ``DecimalField``
* ``BooleanField``
* ``DateTimeField``
* ``ComplexDateTimeField``
* ``ObjectIdField``
* ``SequenceField`` (assumes it has integer counter)
* ``UUIDField``
* ``GeoPointField``
* ``GeoJsonBaseField`` (all those fields)
* ``DateField``

Compound fields: ListField and DictField are mapped to corresponding DRF fields, with respect to nested field specification.

The ReferenceField is handled like ForeignKey in DRF: there nested serializer autogenerated if serializer depth greater then 0, otherwise it's handled by it's own (results as str(id)).

For EmbeddedDocumentField also nested serializer autogenerated for non-zero depth, otherwise it is skipped. TODO: THIS IS PROBABLY WRONG AND SHOULD BE FIXED.

Generic fields GenericReferenceField and GenericEmbeddedDocumentField are handled by their own with corresponding serializer fields.

Not well supported or untested:

``FileField``
``ImageField``
``BinaryField``

All other fields are mapped to DocumentField and probably will work wrong.

idstringRead-onlyRequired
contact_idstringRequired
display_idstring · max: 100 · nullableOptional
full_namestring · max: 255Required
profile_imagestring · nullableOptional
profile_image_urlstringRead-onlyRequired
primary_emailstringRead-onlyRequired
companystringRead-onlyRequired
lead_sourcestringRead-onlyRequired
contact_ownerstringRead-onlyRequired
lead_statusstring · nullableOptional
person_categorystringRead-onlyRequired
contact_stagestring · nullableOptional
is_draftbooleanOptional
job_titlestring · nullableOptional
departmentstring · nullableOptional
languagestring · nullableOptional
seniority_levelstringRead-onlyRequired
buying_rolestringRead-onlyRequired
influence_levelinteger · nullableOptional
interest_levelinteger · nullableOptional
preferred_communication_channelstring · nullableOptional
do_not_contactstring · max: 10 · nullableOptional
phonestringRead-onlyRequired
whatsapp_numberstringRead-onlyRequired
campaignstring · nullableOptional
timezonestring · nullableOptional
signoff_authoritystring · nullableOptional
lead_scorenumber · double · nullableOptional
last_activity_datestring · date-time · nullableOptional
linkedin_urlstringRead-onlyRequired
twitter_urlstringRead-onlyRequired
linked_userstringRead-onlyRequired
creation_timestring · date-timeOptional
last_update_timestring · date-timeOptional
reporting_hierarchy_levelinteger · nullableOptional
reporting_confidencenumber · double · nullableOptional
reporting_sourcestring · nullableOptional
associated_deal_projectstringRead-onlyRequired
login_infostringRead-onlyRequired
post/api/contact/department/
POST /api/contact/department/ HTTP/1.1
Host: api.app.projetly.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 779

{
  "contact_id": "text",
  "display_id": "text",
  "full_name": "text",
  "profile_image": "text",
  "associated_deals": [],
  "lead_status": "text",
  "custom_fields": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "contact_stage": "text",
  "is_draft": true,
  "job_title": "text",
  "department": "text",
  "location": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "language": "text",
  "influence_level": 1,
  "interest_level": 1,
  "preferred_communication_channel": "text",
  "do_not_contact": "text",
  "campaign": "text",
  "timezone": "text",
  "signoff_authority": "text",
  "lead_score": 1,
  "last_activity_date": "2026-01-01T00:00:00.000Z",
  "creation_time": "2026-01-01T00:00:00.000Z",
  "last_update_time": "2026-01-01T00:00:00.000Z",
  "reports_to": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "reporting_hierarchy_level": 1,
  "reporting_confidence": 1,
  "reporting_source": "text"
}
200Success
{
  "id": "text",
  "contact_id": "text",
  "display_id": "text",
  "full_name": "text",
  "profile_image": "text",
  "profile_image_url": "text",
  "primary_email": "text",
  "company": "text",
  "lead_source": "text",
  "contact_owner": "text",
  "associated_deals": [],
  "lead_status": "text",
  "person_category": "text",
  "custom_fields": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "contact_stage": "text",
  "is_draft": true,
  "job_title": "text",
  "department": "text",
  "location": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "language": "text",
  "seniority_level": "text",
  "buying_role": "text",
  "influence_level": 1,
  "interest_level": 1,
  "preferred_communication_channel": "text",
  "do_not_contact": "text",
  "phone": "text",
  "whatsapp_number": "text",
  "campaign": "text",
  "timezone": "text",
  "signoff_authority": "text",
  "lead_score": 1,
  "last_activity_date": "2026-01-01T00:00:00.000Z",
  "linkedin_url": "text",
  "twitter_url": "text",
  "linked_user": "text",
  "creation_time": "2026-01-01T00:00:00.000Z",
  "last_update_time": "2026-01-01T00:00:00.000Z",
  "reports_to": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "reporting_hierarchy_level": 1,
  "reporting_confidence": 1,
  "reporting_source": "text",
  "associated_deal_project": "text",
  "login_info": "text"
}
post

API endpoint that allows contacts to be created, viewed, deleted or edited.

Authorizations
AuthorizationstringRequired

JWT token obtained from /api/login/. Pass as: Authorization: Bearer

Body

Serializer for Documents.

Recognized primitve fields:

* ``StringField``
* ``URLField``
* ``EmailField``
* ``IntField``
* ``LongField``
* ``FloatField``
* ``DecimalField``
* ``BooleanField``
* ``DateTimeField``
* ``ComplexDateTimeField``
* ``ObjectIdField``
* ``SequenceField`` (assumes it has integer counter)
* ``UUIDField``
* ``GeoPointField``
* ``GeoJsonBaseField`` (all those fields)
* ``DateField``

Compound fields: ListField and DictField are mapped to corresponding DRF fields, with respect to nested field specification.

The ReferenceField is handled like ForeignKey in DRF: there nested serializer autogenerated if serializer depth greater then 0, otherwise it's handled by it's own (results as str(id)).

For EmbeddedDocumentField also nested serializer autogenerated for non-zero depth, otherwise it is skipped. TODO: THIS IS PROBABLY WRONG AND SHOULD BE FIXED.

Generic fields GenericReferenceField and GenericEmbeddedDocumentField are handled by their own with corresponding serializer fields.

Not well supported or untested:

``FileField``
``ImageField``
``BinaryField``

All other fields are mapped to DocumentField and probably will work wrong.

idstringRead-onlyRequired
contact_idstringRequired
display_idstring · max: 100 · nullableOptional
full_namestring · max: 255Required
profile_imagestring · nullableOptional
profile_image_urlstringRead-onlyRequired
primary_emailstringRead-onlyRequired
companystringRead-onlyRequired
lead_sourcestringRead-onlyRequired
contact_ownerstringRead-onlyRequired
lead_statusstring · nullableOptional
person_categorystringRead-onlyRequired
contact_stagestring · nullableOptional
is_draftbooleanOptional
job_titlestring · nullableOptional
departmentstring · nullableOptional
languagestring · nullableOptional
seniority_levelstringRead-onlyRequired
buying_rolestringRead-onlyRequired
influence_levelinteger · nullableOptional
interest_levelinteger · nullableOptional
preferred_communication_channelstring · nullableOptional
do_not_contactstring · max: 10 · nullableOptional
phonestringRead-onlyRequired
whatsapp_numberstringRead-onlyRequired
campaignstring · nullableOptional
timezonestring · nullableOptional
signoff_authoritystring · nullableOptional
lead_scorenumber · double · nullableOptional
last_activity_datestring · date-time · nullableOptional
linkedin_urlstringRead-onlyRequired
twitter_urlstringRead-onlyRequired
linked_userstringRead-onlyRequired
creation_timestring · date-timeOptional
last_update_timestring · date-timeOptional
reporting_hierarchy_levelinteger · nullableOptional
reporting_confidencenumber · double · nullableOptional
reporting_sourcestring · nullableOptional
associated_deal_projectstringRead-onlyRequired
login_infostringRead-onlyRequired
Responses
200Success
application/json

Serializer for Documents.

Recognized primitve fields:

* ``StringField``
* ``URLField``
* ``EmailField``
* ``IntField``
* ``LongField``
* ``FloatField``
* ``DecimalField``
* ``BooleanField``
* ``DateTimeField``
* ``ComplexDateTimeField``
* ``ObjectIdField``
* ``SequenceField`` (assumes it has integer counter)
* ``UUIDField``
* ``GeoPointField``
* ``GeoJsonBaseField`` (all those fields)
* ``DateField``

Compound fields: ListField and DictField are mapped to corresponding DRF fields, with respect to nested field specification.

The ReferenceField is handled like ForeignKey in DRF: there nested serializer autogenerated if serializer depth greater then 0, otherwise it's handled by it's own (results as str(id)).

For EmbeddedDocumentField also nested serializer autogenerated for non-zero depth, otherwise it is skipped. TODO: THIS IS PROBABLY WRONG AND SHOULD BE FIXED.

Generic fields GenericReferenceField and GenericEmbeddedDocumentField are handled by their own with corresponding serializer fields.

Not well supported or untested:

``FileField``
``ImageField``
``BinaryField``

All other fields are mapped to DocumentField and probably will work wrong.

idstringRead-onlyRequired
contact_idstringRequired
display_idstring · max: 100 · nullableOptional
full_namestring · max: 255Required
profile_imagestring · nullableOptional
profile_image_urlstringRead-onlyRequired
primary_emailstringRead-onlyRequired
companystringRead-onlyRequired
lead_sourcestringRead-onlyRequired
contact_ownerstringRead-onlyRequired
lead_statusstring · nullableOptional
person_categorystringRead-onlyRequired
contact_stagestring · nullableOptional
is_draftbooleanOptional
job_titlestring · nullableOptional
departmentstring · nullableOptional
languagestring · nullableOptional
seniority_levelstringRead-onlyRequired
buying_rolestringRead-onlyRequired
influence_levelinteger · nullableOptional
interest_levelinteger · nullableOptional
preferred_communication_channelstring · nullableOptional
do_not_contactstring · max: 10 · nullableOptional
phonestringRead-onlyRequired
whatsapp_numberstringRead-onlyRequired
campaignstring · nullableOptional
timezonestring · nullableOptional
signoff_authoritystring · nullableOptional
lead_scorenumber · double · nullableOptional
last_activity_datestring · date-time · nullableOptional
linkedin_urlstringRead-onlyRequired
twitter_urlstringRead-onlyRequired
linked_userstringRead-onlyRequired
creation_timestring · date-timeOptional
last_update_timestring · date-timeOptional
reporting_hierarchy_levelinteger · nullableOptional
reporting_confidencenumber · double · nullableOptional
reporting_sourcestring · nullableOptional
associated_deal_projectstringRead-onlyRequired
login_infostringRead-onlyRequired
post/api/contact/dropdown/
POST /api/contact/dropdown/ HTTP/1.1
Host: api.app.projetly.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 779

{
  "contact_id": "text",
  "display_id": "text",
  "full_name": "text",
  "profile_image": "text",
  "associated_deals": [],
  "lead_status": "text",
  "custom_fields": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "contact_stage": "text",
  "is_draft": true,
  "job_title": "text",
  "department": "text",
  "location": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "language": "text",
  "influence_level": 1,
  "interest_level": 1,
  "preferred_communication_channel": "text",
  "do_not_contact": "text",
  "campaign": "text",
  "timezone": "text",
  "signoff_authority": "text",
  "lead_score": 1,
  "last_activity_date": "2026-01-01T00:00:00.000Z",
  "creation_time": "2026-01-01T00:00:00.000Z",
  "last_update_time": "2026-01-01T00:00:00.000Z",
  "reports_to": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "reporting_hierarchy_level": 1,
  "reporting_confidence": 1,
  "reporting_source": "text"
}
200Success
{
  "id": "text",
  "contact_id": "text",
  "display_id": "text",
  "full_name": "text",
  "profile_image": "text",
  "profile_image_url": "text",
  "primary_email": "text",
  "company": "text",
  "lead_source": "text",
  "contact_owner": "text",
  "associated_deals": [],
  "lead_status": "text",
  "person_category": "text",
  "custom_fields": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "contact_stage": "text",
  "is_draft": true,
  "job_title": "text",
  "department": "text",
  "location": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "language": "text",
  "seniority_level": "text",
  "buying_role": "text",
  "influence_level": 1,
  "interest_level": 1,
  "preferred_communication_channel": "text",
  "do_not_contact": "text",
  "phone": "text",
  "whatsapp_number": "text",
  "campaign": "text",
  "timezone": "text",
  "signoff_authority": "text",
  "lead_score": 1,
  "last_activity_date": "2026-01-01T00:00:00.000Z",
  "linkedin_url": "text",
  "twitter_url": "text",
  "linked_user": "text",
  "creation_time": "2026-01-01T00:00:00.000Z",
  "last_update_time": "2026-01-01T00:00:00.000Z",
  "reports_to": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "reporting_hierarchy_level": 1,
  "reporting_confidence": 1,
  "reporting_source": "text",
  "associated_deal_project": "text",
  "login_info": "text"
}

Contact field config

get

Get or save custom field definitions for contacts

Authorizations
AuthorizationstringRequired

JWT token obtained from /api/login/. Pass as: Authorization: Bearer

Responses
200

No response body

No content

get/api/contact/field-config/
GET /api/contact/field-config/ HTTP/1.1
Host: api.app.projetly.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

No response body

No content

Contact field config

put

Get or save custom field definitions for contacts

Authorizations
AuthorizationstringRequired

JWT token obtained from /api/login/. Pass as: Authorization: Bearer

Body
Other propertiesanyOptional
Responses
200

No response body

No content

put/api/contact/field-config/
PUT /api/contact/field-config/ HTTP/1.1
Host: api.app.projetly.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 38

{
  "ANY_ADDITIONAL_PROPERTY": "anything"
}
200

No response body

No content

Import contacts from CSV

post

Bulk import contacts from a parsed + mapped CSV array

Authorizations
AuthorizationstringRequired

JWT token obtained from /api/login/. Pass as: Authorization: Bearer

Body
Other propertiesanyOptional
Responses
200

No response body

No content

post/api/contact/import/
POST /api/contact/import/ HTTP/1.1
Host: api.app.projetly.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 38

{
  "ANY_ADDITIONAL_PROPERTY": "anything"
}
200

No response body

No content

Contact form options

get

Returns all dropdown options for the contact form

Authorizations
AuthorizationstringRequired

JWT token obtained from /api/login/. Pass as: Authorization: Bearer

Responses
200

No response body

No content

get/api/contact/options/
GET /api/contact/options/ HTTP/1.1
Host: api.app.projetly.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

No response body

No content

post

API endpoint that allows contacts to be created, viewed, deleted or edited.

Authorizations
AuthorizationstringRequired

JWT token obtained from /api/login/. Pass as: Authorization: Bearer

Body

Serializer for Documents.

Recognized primitve fields:

* ``StringField``
* ``URLField``
* ``EmailField``
* ``IntField``
* ``LongField``
* ``FloatField``
* ``DecimalField``
* ``BooleanField``
* ``DateTimeField``
* ``ComplexDateTimeField``
* ``ObjectIdField``
* ``SequenceField`` (assumes it has integer counter)
* ``UUIDField``
* ``GeoPointField``
* ``GeoJsonBaseField`` (all those fields)
* ``DateField``

Compound fields: ListField and DictField are mapped to corresponding DRF fields, with respect to nested field specification.

The ReferenceField is handled like ForeignKey in DRF: there nested serializer autogenerated if serializer depth greater then 0, otherwise it's handled by it's own (results as str(id)).

For EmbeddedDocumentField also nested serializer autogenerated for non-zero depth, otherwise it is skipped. TODO: THIS IS PROBABLY WRONG AND SHOULD BE FIXED.

Generic fields GenericReferenceField and GenericEmbeddedDocumentField are handled by their own with corresponding serializer fields.

Not well supported or untested:

``FileField``
``ImageField``
``BinaryField``

All other fields are mapped to DocumentField and probably will work wrong.

idstringRead-onlyRequired
contact_idstringRequired
display_idstring · max: 100 · nullableOptional
full_namestring · max: 255Required
profile_imagestring · nullableOptional
profile_image_urlstringRead-onlyRequired
primary_emailstringRead-onlyRequired
companystringRead-onlyRequired
lead_sourcestringRead-onlyRequired
contact_ownerstringRead-onlyRequired
lead_statusstring · nullableOptional
person_categorystringRead-onlyRequired
contact_stagestring · nullableOptional
is_draftbooleanOptional
job_titlestring · nullableOptional
departmentstring · nullableOptional
languagestring · nullableOptional
seniority_levelstringRead-onlyRequired
buying_rolestringRead-onlyRequired
influence_levelinteger · nullableOptional
interest_levelinteger · nullableOptional
preferred_communication_channelstring · nullableOptional
do_not_contactstring · max: 10 · nullableOptional
phonestringRead-onlyRequired
whatsapp_numberstringRead-onlyRequired
campaignstring · nullableOptional
timezonestring · nullableOptional
signoff_authoritystring · nullableOptional
lead_scorenumber · double · nullableOptional
last_activity_datestring · date-time · nullableOptional
linkedin_urlstringRead-onlyRequired
twitter_urlstringRead-onlyRequired
linked_userstringRead-onlyRequired
creation_timestring · date-timeOptional
last_update_timestring · date-timeOptional
reporting_hierarchy_levelinteger · nullableOptional
reporting_confidencenumber · double · nullableOptional
reporting_sourcestring · nullableOptional
associated_deal_projectstringRead-onlyRequired
login_infostringRead-onlyRequired
Responses
200Success
application/json

Serializer for Documents.

Recognized primitve fields:

* ``StringField``
* ``URLField``
* ``EmailField``
* ``IntField``
* ``LongField``
* ``FloatField``
* ``DecimalField``
* ``BooleanField``
* ``DateTimeField``
* ``ComplexDateTimeField``
* ``ObjectIdField``
* ``SequenceField`` (assumes it has integer counter)
* ``UUIDField``
* ``GeoPointField``
* ``GeoJsonBaseField`` (all those fields)
* ``DateField``

Compound fields: ListField and DictField are mapped to corresponding DRF fields, with respect to nested field specification.

The ReferenceField is handled like ForeignKey in DRF: there nested serializer autogenerated if serializer depth greater then 0, otherwise it's handled by it's own (results as str(id)).

For EmbeddedDocumentField also nested serializer autogenerated for non-zero depth, otherwise it is skipped. TODO: THIS IS PROBABLY WRONG AND SHOULD BE FIXED.

Generic fields GenericReferenceField and GenericEmbeddedDocumentField are handled by their own with corresponding serializer fields.

Not well supported or untested:

``FileField``
``ImageField``
``BinaryField``

All other fields are mapped to DocumentField and probably will work wrong.

idstringRead-onlyRequired
contact_idstringRequired
display_idstring · max: 100 · nullableOptional
full_namestring · max: 255Required
profile_imagestring · nullableOptional
profile_image_urlstringRead-onlyRequired
primary_emailstringRead-onlyRequired
companystringRead-onlyRequired
lead_sourcestringRead-onlyRequired
contact_ownerstringRead-onlyRequired
lead_statusstring · nullableOptional
person_categorystringRead-onlyRequired
contact_stagestring · nullableOptional
is_draftbooleanOptional
job_titlestring · nullableOptional
departmentstring · nullableOptional
languagestring · nullableOptional
seniority_levelstringRead-onlyRequired
buying_rolestringRead-onlyRequired
influence_levelinteger · nullableOptional
interest_levelinteger · nullableOptional
preferred_communication_channelstring · nullableOptional
do_not_contactstring · max: 10 · nullableOptional
phonestringRead-onlyRequired
whatsapp_numberstringRead-onlyRequired
campaignstring · nullableOptional
timezonestring · nullableOptional
signoff_authoritystring · nullableOptional
lead_scorenumber · double · nullableOptional
last_activity_datestring · date-time · nullableOptional
linkedin_urlstringRead-onlyRequired
twitter_urlstringRead-onlyRequired
linked_userstringRead-onlyRequired
creation_timestring · date-timeOptional
last_update_timestring · date-timeOptional
reporting_hierarchy_levelinteger · nullableOptional
reporting_confidencenumber · double · nullableOptional
reporting_sourcestring · nullableOptional
associated_deal_projectstringRead-onlyRequired
login_infostringRead-onlyRequired
post/api/contact/seniority-level/
POST /api/contact/seniority-level/ HTTP/1.1
Host: api.app.projetly.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 779

{
  "contact_id": "text",
  "display_id": "text",
  "full_name": "text",
  "profile_image": "text",
  "associated_deals": [],
  "lead_status": "text",
  "custom_fields": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "contact_stage": "text",
  "is_draft": true,
  "job_title": "text",
  "department": "text",
  "location": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "language": "text",
  "influence_level": 1,
  "interest_level": 1,
  "preferred_communication_channel": "text",
  "do_not_contact": "text",
  "campaign": "text",
  "timezone": "text",
  "signoff_authority": "text",
  "lead_score": 1,
  "last_activity_date": "2026-01-01T00:00:00.000Z",
  "creation_time": "2026-01-01T00:00:00.000Z",
  "last_update_time": "2026-01-01T00:00:00.000Z",
  "reports_to": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "reporting_hierarchy_level": 1,
  "reporting_confidence": 1,
  "reporting_source": "text"
}
200Success
{
  "id": "text",
  "contact_id": "text",
  "display_id": "text",
  "full_name": "text",
  "profile_image": "text",
  "profile_image_url": "text",
  "primary_email": "text",
  "company": "text",
  "lead_source": "text",
  "contact_owner": "text",
  "associated_deals": [],
  "lead_status": "text",
  "person_category": "text",
  "custom_fields": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "contact_stage": "text",
  "is_draft": true,
  "job_title": "text",
  "department": "text",
  "location": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "language": "text",
  "seniority_level": "text",
  "buying_role": "text",
  "influence_level": 1,
  "interest_level": 1,
  "preferred_communication_channel": "text",
  "do_not_contact": "text",
  "phone": "text",
  "whatsapp_number": "text",
  "campaign": "text",
  "timezone": "text",
  "signoff_authority": "text",
  "lead_score": 1,
  "last_activity_date": "2026-01-01T00:00:00.000Z",
  "linkedin_url": "text",
  "twitter_url": "text",
  "linked_user": "text",
  "creation_time": "2026-01-01T00:00:00.000Z",
  "last_update_time": "2026-01-01T00:00:00.000Z",
  "reports_to": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "reporting_hierarchy_level": 1,
  "reporting_confidence": 1,
  "reporting_source": "text",
  "associated_deal_project": "text",
  "login_info": "text"
}

Last updated