Разработчикам

REST API

Пять типов записей, одни и те же пять операций для каждого, JSON на входе и выходе.

https://api.trypromptlab.com/api/v1
Базовый URL
Authorization: Bearer pl_live_…
Заголовок авторизации
  • 10 / секунду
  • 300 / минуту
  • 10 000 / час
Лимиты запросов на ключ · 429

API-ключи

SettingsDevelopersAPI keysВладельцы и администраторы рабочего пространства
  • Показывается один раз, при создании.
  • Действует от имени создавшего его администратора, с теми же правами.
  • Перестаёт работать, если этот человек покинет рабочее пространство.
  • Его можно отозвать в любой момент.

Эндпоинты

GET/{resource}Список
GET/{resource}/{id}Получить одну
POST/{resource}Создать
PATCH/{resource}/{id}Изменить
DELETE/{resource}/{id}Удалить
{resource} — один изcontactscompaniesdealsnotestasks

Пример

Запрос
curl -X POST https://api.trypromptlab.com/api/v1/companies \
  -H "Authorization: Bearer pl_live_…" \
  -H "Content-Type: application/json" \
  -d '{"name":"Acme","website":"https://acme.com"}'
Ответ · 201
{
  "data": {
    "id": "665f1c2a9b1e8a0012ab34cd",
    "object": "company",
    "name": "Acme",
    "website": "https://acme.com",
    "createdAt": "2026-10-22T08:15:51.000Z",
    "updatedAt": "2026-10-22T08:15:51.000Z"
  }
}
PATCH · Запрос
curl -X PATCH https://api.trypromptlab.com/api/v1/deals/<id> \
  -H "Authorization: Bearer pl_live_…" \
  -H "Content-Type: application/json" \
  -d '{"stage":"QUALIFIED"}'

Ответы

Список
{
  "data": [ … ],
  "pagination": {
    "page": 1,
    "limit": 10,
    "total": 42,
    "totalPages": 5
  }
}
Удаление
{
  "data": {
    "id": "665f1c2a…",
    "deleted": true
  }
}
Ошибка
{
  "statusCode": 401,
  "message": "…",
  "error": "invalid_api_key"
}

Ошибки

СтатусЗначение
400Неверное тело или параметры запроса. Неизвестное поле даёт `property X should not exist`.
401Ключ не передан, неверен или отозван
403У администратора ключа нет доступа к этой записи или действию
404Записи с таким id нет
429Превышен лимит: подождите и повторите
500Ошибка сервера: повторите позже. Ключ продолжает работать.

Ресурсы

limit: максимум 100, по умолчанию 10. sortOrder: asc или desc.

/contacts

"object": "contact"
ПолеТипПримечания
firstNamestringОбязательное
lastNamestring
middleNamestring
jobTitlestring
departmentstring
decisionRoleenumDECISION_MAKERINFLUENCERTECHNICAL_EVALUATORBUYERPROCUREMENTEND_USERGATEKEEPER
emailstring
emailsstring[]
phoneobjectvaluelabel: work | mobile | home | other
phoneNumbersobject[]valuelabel: work | mobile | home | other
linkedInstring
addressobjectstreetAddresscitystatezipCodecountry
regionstring
accountIdid→ companies
leadIdid→ deals
isPrimaryboolean
customFieldsobject
Фильтры спискаpagelimitsearchaccountIdleadIdsortBysortOrder

/companies

"object": "company"
ПолеТипПримечания
namestringОбязательное
websitestring
linkedInstring
phonestring
addressobjectstreetAddresscitystatezipCodecountry
regionstring
primaryIndustrystring
businessTypeenumMANUFACTURERDISTRIBUTORTRADEREND_USER
descriptionstring
sourcestring
estimatedAnnualRevenuenumber
employeeCountnumber
ownerIdid
customFieldsobject
Фильтры спискаpagelimitsearchprimaryIndustrybusinessTypesortBysortOrder

/deals

"object": "deal"

Сделка переводится на другой этап через PATCH с новым stage.

ПолеТипПримечания
namestring
accountIdid→ companiesОбязательное
contactIdsid[]→ contacts
assignedSalesOwnerid
stagestring
priorityenumLOWMEDIUMHIGH
sourceenumEXPOLINKEDINDIRECT_MEETINGWEBSITE_INQUIRYDISTRIBUTOR_REFERRALCOLD_CALLEXISTING_CUSTOMER_REFERRALCONFERENCEEMAIL_CAMPAIGNEMAILTRADE_PUBLICATIONSALESFORCEHUBSPOTACUMATICAOTHER
lossReasonenumPRICECOMPETITORTIMINGNO_BUDGETPRODUCT_FITOTHER
closeDatedate
estimatedOpportunityValueUSDnumber
expectedAnnualVolumeMTnumber
nextFollowUpDatedate
customFieldsobject
Фильтры спискаpagelimitsearchstageaccountIdcontactIdassignedSalesOwnersortBysortOrder

/notes

"object": "note"
ПолеТипПримечания
contentstringОбязательное
titlestring
accountIdid→ companies
contactIdid→ contacts
leadIdid→ deals
customFieldsobject
Фильтры спискаpagelimitaccountIdcontactIdleadId

/tasks

"object": "task"

Задача закрывается через PATCH с "status": "completed".

ПолеТипПримечания
namestringОбязательное
descriptionstring
assigneeIdsid[]
priorityenumlowmediumhighurgent
taskTypestring
dueDatedate
accountIdid→ companies
contactsid[]→ contacts
opportunityIdid→ deals
customFieldsobject
statusenumТолько PATCHtodoin_progresscompletedexpired
Фильтры спискаpagelimitsearchstatusaccountIdcontactIdopportunityIdsortBysortOrder