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
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"}'{
"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"
}
}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
{
"data": [ … ],
"pagination": {
"page": 1,
"limit": 10,
"total": 42,
"totalPages": 5
}
}{
"data": {
"id": "665f1c2a…",
"deleted": true
}
}{
"statusCode": 401,
"message": "…",
"error": "invalid_api_key"
}Errors
| Status | Meaning |
|---|---|
| 400 | Invalid body or query. An unknown field gives `property X should not exist`. |
| 401 | Missing, wrong or revoked key |
| 403 | The key's admin has no access to this record or action |
| 404 | No record with this id |
| 429 | Over the rate limit: wait and retry |
| 500 | Server error: retry later. The key still works. |
Resources
limit: max 100, default 10. sortOrder: asc or desc.
/contacts
"object": "contact"| Field | Type | Notes |
|---|---|---|
firstName | string | Required |
lastName | string | |
middleName | string | |
jobTitle | string | |
department | string | |
decisionRole | enum | DECISION_MAKERINFLUENCERTECHNICAL_EVALUATORBUYERPROCUREMENTEND_USERGATEKEEPER |
email | string | |
emails | string[] | |
phone | object | valuelabel: work | mobile | home | other |
phoneNumbers | object[] | valuelabel: work | mobile | home | other |
linkedIn | string | |
address | object | streetAddresscitystatezipCodecountry |
region | string | |
accountId | id→ companies | |
leadId | id→ deals | |
isPrimary | boolean | |
customFields | object |
List filterspagelimitsearchaccountIdleadIdsortBysortOrder
/companies
"object": "company"| Field | Type | Notes |
|---|---|---|
name | string | Required |
website | string | |
linkedIn | string | |
phone | string | |
address | object | streetAddresscitystatezipCodecountry |
region | string | |
primaryIndustry | string | |
businessType | enum | MANUFACTURERDISTRIBUTORTRADEREND_USER |
description | string | |
source | string | |
estimatedAnnualRevenue | number | |
employeeCount | number | |
ownerId | id | |
customFields | object |
List filterspagelimitsearchprimaryIndustrybusinessTypesortBysortOrder
/deals
"object": "deal"Move a deal with PATCH and a new stage.
| Field | Type | Notes |
|---|---|---|
name | string | |
accountId | id→ companies | Required |
contactIds | id[]→ contacts | |
assignedSalesOwner | id | |
stage | string | |
priority | enum | LOWMEDIUMHIGH |
source | enum | EXPOLINKEDINDIRECT_MEETINGWEBSITE_INQUIRYDISTRIBUTOR_REFERRALCOLD_CALLEXISTING_CUSTOMER_REFERRALCONFERENCEEMAIL_CAMPAIGNEMAILTRADE_PUBLICATIONSALESFORCEHUBSPOTACUMATICAOTHER |
lossReason | enum | PRICECOMPETITORTIMINGNO_BUDGETPRODUCT_FITOTHER |
closeDate | date | |
estimatedOpportunityValueUSD | number | |
expectedAnnualVolumeMT | number | |
nextFollowUpDate | date | |
customFields | object |
List filterspagelimitsearchstageaccountIdcontactIdassignedSalesOwnersortBysortOrder
/notes
"object": "note"| Field | Type | Notes |
|---|---|---|
content | string | Required |
title | string | |
accountId | id→ companies | |
contactId | id→ contacts | |
leadId | id→ deals | |
customFields | object |
List filterspagelimitaccountIdcontactIdleadId
/tasks
"object": "task"Close a task with PATCH and "status": "completed".
| Field | Type | Notes |
|---|---|---|
name | string | Required |
description | string | |
assigneeIds | id[] | |
priority | enum | lowmediumhighurgent |
taskType | string | |
dueDate | date | |
accountId | id→ companies | |
contacts | id[]→ contacts | |
opportunityId | id→ deals | |
customFields | object | |
status | enum | PATCH onlytodoin_progresscompletedexpired |
List filterspagelimitsearchstatusaccountIdcontactIdopportunityIdsortBysortOrder





