API Overview
Introduction to the DramWell REST API — base URLs, versioning, available resources, and how the API fits into the platform.
Overview
The DramWell API is a RESTful JSON API that powers every DramWell application — DramTrade, DramGuest, and DramPulse. You can use it to build custom integrations, automate workflows, sync data with external systems, or extend the platform in ways the built-in UI doesn't cover.
All requests and responses use application/json. The API is served from a single base URL with versioned namespaces so breaking changes never surprise you.
Base URL
https://api.dramwell.ai/v1
All endpoints documented here are relative to this base URL. For example, the customers list endpoint is:
GET https://api.dramwell.ai/v1/customers
Versioning
The API uses path-based versioning (/v1, /v2, ...). The current stable version is v1.
When a new version is released, the previous version remains active for a minimum of 12 months. Deprecation notices are sent via email and surfaced in the admin panel. We follow a strict additive-only policy within a version — new fields may appear in responses, but existing fields are never removed or renamed without a version bump.
Available Resources
| Resource | Description |
|---|---|
| customers | Contact records, service history, equipment, and communication preferences |
| jobs | Field service jobs including status, assignments, and time tracking |
| invoices | Invoices, line items, payment status, and receipt delivery |
| technicians | Team members and subcontractors with skill tags and location data |
| memberships | Recurring maintenance plan subscriptions and renewal schedules |
| communications | SMS, email, and voice communications sent to customers |
| guests | Hotel and hospitality guest profiles (DramGuest vertical) |
| experiences | Curated guest experience catalog items (DramGuest vertical) |
| bookings | Experience and resource reservations (DramGuest vertical) |
Request Format
All request bodies must be JSON with the Content-Type: application/json header set. Query parameters are used for filtering, sorting, and pagination on list endpoints.
POST /v1/jobs
Content-Type: application/json
Authorization: Bearer sk_live_xxxxxxxxxxxx
{
"customer_id": "cus_01HXYZ",
"service_type": "hvac_repair",
"scheduled_at": "2026-03-10T09:00:00Z",
"technician_id": "tech_01HABC"
}
Response Format
Successful responses return HTTP 2xx with a JSON body. Single-resource responses return the object directly. List responses use the cursor-based pagination envelope:
{
"data": [...],
"cursor": "cur_01HXYZ",
"has_more": true
}
Errors always return a structured error object. See Error Handling for the full schema.
Rate Limits
Standard accounts are limited to 100 requests per minute. Premium accounts receive 1,000 requests per minute. If you exceed your limit, the API returns 429 Too Many Requests with headers indicating when you can retry. See Rate Limits for details.
Related Articles
Was this article helpful?