Authenticate your server with a FRED API key
Connect your server to your store's FRED account.
Published by FRED
Prepare the account
In the FRED dashboard, open Developers → API keys and create a key for your integration. Copy the secret displayed only once, then store it in your server's environment variables.
Your website calls your server; your server calls FRED with X-API-Key.
The key must never be included in browser JavaScript or in a URL.
curl https://api.fredpod.com/v1/storefront/quotes/est_abc123 \
-H "X-API-Key: $FRED_API_KEY"Required permissions
| Function | Key permissions |
|---|---|
| Upload a file and request its price | files:write, quotes:write |
| Request a price for a saved product | quotes:write |
| Read a quote | quotes:read |
| Recalculate shipping | quotes:write |
| Create and track orders | orders:write, orders:read |
| Read the preview and approve a model if needed | files:read, files:write |
| Configure webhooks through the API | webhooks:manage |
A key can only access resources belonging to its account. If you use several
brands, send X-Brand-Id with your requests to retain the store's context.
Variants and products are prepared in the dashboard; using them in
a quote does not require permission to modify products.
See the sandbox guide to create your store test environment and control simulations.
Testing, payment and going live
A test key isolates data and does not trigger real payments. Test webhooks
may still be sent to the URL you configure.
A result marked simulated is not a commitment to actual manufacturing.
To order in production, configure your brand, payment method and
automatic authorisation limits in the dashboard. The quote's
ordering_enabled field indicates whether ordering is available.
Revoke or replace a key in the dashboard. An expired or revoked key receives
401; a missing permission receives 403.
Errors and retries
Errors are application/problem+json objects. Use code for your
application logic and retain request_id for support requests.
{
"status": 409,
"code": "price_limit_exceeded",
"title": "Price exceeds the limit",
"detail": "The delivered total exceeds max_total_cents. No charge or order was created.",
"request_id": "req_abc123"
}Creating quotes and orders requires Idempotency-Key (a maximum of 160 characters
for storefront requests). Reuse the same key and content after
a network error. The same key with different content is rejected with 422.