API reference
REST API for contacts, companies, deals, activities and webhooks.
Base URL and authentication
All requests go to https://api.pellwood.io/v1 with a bearer token from Settings → API.
curl https://api.pellwood.io/v1/deals?stage=proposal \
-H "Authorization: Bearer pw_live_••••••••"
Rate limits
| Plan | Calls per day | Burst |
|---|---|---|
| Starter | 1,000 | 5 per second |
| Growth | 10,000 | 10 per second |
| Scale | 100,000 | 25 per second |
Resources
| Resource | Endpoints |
|---|---|
| Contacts | GET /contacts, POST /contacts, GET /contacts/{id}, PATCH /contacts/{id} |
| Companies | GET /companies, POST /companies, PATCH /companies/{id} |
| Deals | GET /deals, POST /deals, PATCH /deals/{id}, GET /deals/{id}/timeline |
| Activities | GET /activities, POST /activities |
| Webhooks | POST /webhooks for deal.stage_changed, deal.won, contact.created and 14 more events |
Pagination
List endpoints return up to 100 items and a next_cursor. Pass it as ?cursor= to get the next page.
Errors
Standard HTTP codes with a JSON body: {"error":{"code":"rate_limited","message":"..."}}. Retry 429 and 5xx with exponential backoff.
Last updated October 2, 2026. Questions? r+pellwood-support@haggl.ai