API authentication
Updated 2026-09-07
On this page
Every Integrations API call requires an API key owned by your Nitromule user. Keys never unlock other merchants’ data — even if your user role is admin in the dashboard.
Create a key
- Sign in to Nitromule.
- Open Settings → API.
- Create a test key (
nm_test_…) for integration work. - Create a live key (
nm_live_…) only when you are ready for real postage. - Store the secret in your secrets manager. The full secret may be shown only once.
Send the key
Either header works:
Authorization: Bearer nm_test_xxxxxxxx
X-API-Key: nm_test_xxxxxxxx
Example:
curl -sS https://nitromule.com/api/integrations/v1/carriers \
-H "Authorization: Bearer nm_test_xxxxxxxx" \
-H "Accept: application/json"
Test vs live
| Prefix | Behavior | Use for |
|---|---|---|
nm_test_ |
Test / staging carriers & payments | CI, local, sandbox |
nm_live_ |
Production carriers; real postage | Production only |
See Test mode.
Security rules
- Server-side only — never ship full API keys in browsers, mobile apps, or public repos
- Rotate on leak; revoke old keys in Settings → API
- Embeds use separate public tokens — embed quote widget
- MCP can use OAuth tokens (
nm_mcp_…) or the same Bearer API keys — MCP
Ownership boundary
The key’s owner is the merchant scope. Dashboard admin powers do not expand Integrations API access to other users’ orders.
Errors
| HTTP | Meaning |
|---|---|
| 401 | Missing/invalid key |
| 403 | Authenticated but not allowed for that resource |
| 402 | Payment required to buy platform postage |
| 429 | Rate limited — back off and retry |