Skip to content

Settings, reports and developers

API keys

Connect your TMS, ERP or AP system to Demurly with the API.

For carriers, fuel buyersCompany admins

API keys let your own systems read and write Demurly data. Only your company's admins manage them, under Settings > API keys.

Live and test keys

The page has two tabs:

  • Live: keys for your real records. Carriers need Pro ($199 a month; upgrade on Settings > Plan & billing); fuel buyers get them free. Click Create API Key.
  • Test: free on every plan. Test keys work on a sandbox with sample data (drivers T-101 to T-103), so you can build without touching real records; Reset sandbox starts it over. Click Create Test Key.

Each tab shows how many active keys you have, up to 25.

Create a key

Choose a name, the permissions and a rate limit (60 requests a minute by default). The key is shown once: copy it and keep it as a secret on your server, never in browser or app code. Creating a key needs two-step sign-in (2FA) on your account.

Permissions: records:read and records:write, drivers:read (carriers), terminals:read, connections:read, reports:read (saved reports, for Power BI and other BI tools), analytics:read (statistics), and webhooks:read and webhooks:write (manage webhook endpoints through the API). With records:write, carriers can report finished waits from their own systems and send records, and fuel buyers can approve and dispute them; both can comment.

A key acts as the admin who created it: what it does shows in the record's history as that person, through the API. If that person stops being an admin, the key can still read but can't write (it shows Writes disabled), so create a new one.

Rotate or revoke

  • Rotate makes a new key and keeps the old one working for 1 hour, 24 hours or 7 days, so you can switch without downtime. The old one shows Rotating out. Rotating needs 2FA.
  • Revoke stops a key at once.

Admins are reminded 7 days and 1 day before a key expires.

Use it

Send the key as Authorization: Bearer dmrl_... to https://demurly.com/api/v1. Add an Idempotency-Key header to writes so a retry can't act twice. Start with the API quickstart; the API reference has every endpoint, and Webhooks sends events to you instead of polling. AI assistants that support MCP can use a key too: see MCP.

Times in the API are UTC (start_time, approved_at...). Each record also has time_zone, the terminal's zone (such as America/Phoenix), with start_time_local and end_time_local (the same times with the terminal's offset, such as 2026-11-07T21:07:00-07:00) and local_start_date (the wait's day at the terminal). Terminals carry their time_zone too.

Still stuck? Signed in, use Help & feedback in your account menu, or contact us.

Next: Webhooks