Developers

REST API

Five record types, the same five operations on each, JSON in and out.

https://api.trypromptlab.com/api/v1
Base URL
Authorization: Bearer pl_live_…
Auth header
  • 10 / second
  • 300 / minute
  • 10,000 / hour
Rate limits per key · 429

API keys

SettingsDevelopersAPI keysWorkspace owners and admins
  • Shown once, when you create it.
  • Acts as the admin who created it, with the same permissions.
  • Stops working if that person leaves the workspace.
  • Revoke it at any time.

Endpoints

GET/{resource}List
GET/{resource}/{id}Get one
POST/{resource}Create
PATCH/{resource}/{id}Update
DELETE/{resource}/{id}Delete

Example

Request
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"}'
Response · 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 · Request
curl -X PATCH https://api.trypromptlab.com/api/v1/deals/<id> \
  -H "Authorization: Bearer pl_live_…" \
  -H "Content-Type: application/json" \
  -d '{"stage":"QUALIFIED"}'

Responses

List
{
  "data": [ … ],
  "pagination": {
    "page": 1,
    "limit": 10,
    "total": 42,
    "totalPages": 5
  }
}
Delete
{
  "data": {
    "id": "665f1c2a…",
    "deleted": true
  }
}
Error
{
  "statusCode": 401,
  "message": "…",
  "error": "invalid_api_key"
}

Errors

StatusMeaning
400Invalid body or query. An unknown field gives `property X should not exist`.
401Missing, wrong or revoked key
403The key's admin has no access to this record or action
404No record with this id
429Over the rate limit: wait and retry
500Server error: retry later. The key still works.

Resources

limit: max 100, default 10. sortOrder: asc or desc.

/contacts

"object": "contact"
FieldTypeNotes
firstNamestringRequired
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
List filterspagelimitsearchaccountIdleadIdsortBysortOrder

/companies

"object": "company"
FieldTypeNotes
namestringRequired
websitestring
linkedInstring
phonestring
addressobjectstreetAddresscitystatezipCodecountry
regionstring
primaryIndustrystring
businessTypeenumMANUFACTURERDISTRIBUTORTRADEREND_USER
descriptionstring
sourcestring
estimatedAnnualRevenuenumber
employeeCountnumber
ownerIdid
customFieldsobject
List filterspagelimitsearchprimaryIndustrybusinessTypesortBysortOrder

/deals

"object": "deal"

Move a deal with PATCH and a new stage.

FieldTypeNotes
namestring
accountIdid→ companiesRequired
contactIdsid[]→ contacts
assignedSalesOwnerid
stagestring
priorityenumLOWMEDIUMHIGH
sourceenumEXPOLINKEDINDIRECT_MEETINGWEBSITE_INQUIRYDISTRIBUTOR_REFERRALCOLD_CALLEXISTING_CUSTOMER_REFERRALCONFERENCEEMAIL_CAMPAIGNEMAILTRADE_PUBLICATIONSALESFORCEHUBSPOTACUMATICAOTHER
lossReasonenumPRICECOMPETITORTIMINGNO_BUDGETPRODUCT_FITOTHER
closeDatedate
estimatedOpportunityValueUSDnumber
expectedAnnualVolumeMTnumber
nextFollowUpDatedate
customFieldsobject
List filterspagelimitsearchstageaccountIdcontactIdassignedSalesOwnersortBysortOrder

/notes

"object": "note"
FieldTypeNotes
contentstringRequired
titlestring
accountIdid→ companies
contactIdid→ contacts
leadIdid→ deals
customFieldsobject
List filterspagelimitaccountIdcontactIdleadId

/tasks

"object": "task"

Close a task with PATCH and "status": "completed".

FieldTypeNotes
namestringRequired
descriptionstring
assigneeIdsid[]
priorityenumlowmediumhighurgent
taskTypestring
dueDatedate
accountIdid→ companies
contactsid[]→ contacts
opportunityIdid→ deals
customFieldsobject
statusenumPATCH onlytodoin_progresscompletedexpired
List filterspagelimitsearchstatusaccountIdcontactIdopportunityIdsortBysortOrder