Skip to main content

Authentication

The EquipDash API uses API keys for authentication. Each API key is scoped to a specific supplier account and has its own set of permissions.

API Key Typesโ€‹

Live Keysโ€‹

Live keys (eqd_live_*) have full read and write access:

  • Create, update, and delete resources
  • Access production data
  • Use for production integrations

Test Keysโ€‹

Test keys (eqd_test_*) are read-only:

  • Read operations only (GET requests)
  • Useful for development and testing
  • Cannot modify data

Using Your API Keyโ€‹

Include your API key in the Authorization header using the Bearer scheme:

curl -X GET "https://app.equipdash.com/api/v1/bookings/123" \
-H "Authorization: Bearer eqd_live_abc123xyz789..."

Creating API Keysโ€‹

  1. Log in to your EquipDash dashboard
  2. Navigate to Settings > API & Integrations
  3. Click Create API Key
  4. Select the scopes (permissions) for this key
  5. Optionally set expiration date and IP whitelist
  6. Copy the key immediately (it won't be shown again)

API Key Scopesโ€‹

Each API key can be granted specific scopes that control what operations it can perform:

ScopeDescription
bookings:readRead booking data
bookings:writeCreate, update, delete bookings
quotes:readView quotes
quotes:writeCreate, send and decide quotes
agreements:readView a booking's rental agreement and its PDF
agreements:writeEdit, send and sign rental agreements
products:readRead product data
products:writeCreate, update, delete products
gear:readView the gear to pull for a booking or program
customers:readRead customer data
customers:writeCreate, update, delete customers
experiences:readRead experiences, their sessions and the ways they are sold
experiences:writeCreate and update experiences and the ways they are sold
store:readRead store products and categories
store:writeCreate, update, delete store products and categories
staff:readRead staff data
staff:writeManage staff
tags:readRead tags
tags:writeCreate, update, delete tags
waivers:readRead waiver/form data
waivers:writeManage waivers/forms
surveys:readRead survey data and analytics
surveys:writeSubmit survey responses
promotions:readRead promotions
promotions:writeManage promotions
marketing:readSee what marketing booked, posts and ads
marketing:writeDraft and post, change ads and marketing bots (MCP)
settings:readRead settings
settings:writeUpdate settings
policies:readRead cancellation / reschedule policies
policies:writeCreate, update, delete policies (incl. tiers and applications)
reports:readAccess reports
reports:writeCreate and change custom reports
webhooks:readRead webhooks
webhooks:writeManage webhooks
drive:readRead Google Drive archiving connection status
drive:writeRe-archive a response to Drive and disconnect
mailchimp:readRead the Mailchimp connection status
mailchimp:writeChange who goes to Mailchimp, sync now and disconnect

IP Whitelistingโ€‹

For enhanced security, you can restrict API key usage to specific IP addresses:

  1. Go to Settings > API & Integrations
  2. Click on the API key to edit
  3. Add IP addresses to the whitelist
  4. Only requests from those IPs will be accepted

Key Security Best Practicesโ€‹

  • Never expose keys in client-side code - API keys should only be used server-side
  • Use environment variables - Don't hardcode keys in your codebase
  • Rotate keys regularly - Create new keys and revoke old ones periodically
  • Use minimum required scopes - Only grant the permissions you need
  • Enable IP whitelisting - Restrict access to known servers

Authentication Errorsโ€‹

Error CodeHTTP StatusDescription
authentication_required401No API key provided
invalid_api_key401API key is invalid
api_key_expired401API key has expired
api_key_revoked401API key has been revoked
ip_not_allowed403Request IP not in whitelist
test_key_readonly403Test key used for write operation
insufficient_scope403API key lacks required scope

Example Error Responseโ€‹

{
"error": {
"code": "authentication_required",
"message": "No API key provided. Include your API key in the Authorization header as: Bearer YOUR_API_KEY"
},
"meta": {
"request_id": "req_abc123"
}
}