Documentation
Getting Started
1FRX gives you two ways to use it — free browser tools that require nothing, and an API that plugs into your existing workflow. This guide covers both.
Free vs Paid
The free tools are exactly that — free, permanent, and completely private. They run entirely in your browser. Nothing you enter is ever sent to 1FRX servers. No account, no API key, no data retention.
The paid tier is for when you need automation. Instead of visiting a tool page and filling in a form manually, your systems call our API and get results back programmatically. A Ghost blog that publishes 30 posts a month shouldn't require someone to manually generate 30 OG images. That's what the API is for.
| Feature | Free | Paid |
|---|---|---|
| All 8 browser tools | ✓ Unlimited | ✓ Unlimited |
| Data sent to servers | None — local only | Only what you send via API |
| API access | — | ✓ Full REST API |
| Webhook integrations | — | ✓ Ghost, Webflow, Airtable |
| Plugin integrations | — | ✓ WordPress, Zapier, Make, N8N |
| ChatGPT Actions | — | ✓ Custom GPT support |
| Asset hosting (temporary) | — | ✓ 30-day CDN URLs |
| Monthly asset volume | — | 500–unlimited by plan |
| Support | Docs only | Email + priority |
Authentication
Every API request requires an API key. You get your key from the 1FRX dashboard after subscribing. The key is shown exactly once — copy it immediately and store it securely.
Pass your key as a request header on every API call:
X-1FRX-Key: 1frx_your_api_key_here
Example authenticated request:
curl -X POST https://1frx.com/api/tools/og-image \
-H "X-1FRX-Key: 1frx_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"title": "My Blog Post Title",
"subtitle": "A subtitle that explains it",
"domain": "myblog.com",
"accentColor": "#5ee3ff"
}'
Key security
1FRX stores only a hashed version of your key. If you lose your key, you must generate a new one — it cannot be recovered. You can revoke a key at any time from your dashboard, which immediately invalidates all requests using it.
Your First Request
Let's generate an OG image via the API. This example uses curl but the pattern is identical for any language.
-
Get your API key
Subscribe to a paid plan at 1frx.com/pricing. Your key is shown once on the dashboard — copy it to a password manager or .env file immediately.
-
Store it as an environment variable
Never hardcode your key. Store it as ONEFRX_API_KEY in your environment.
export ONEFRX_API_KEY=1frx_your_key_here -
Make your first API call
curl -X POST https://1frx.com/api/tools/og-image \ -H "X-1FRX-Key: $ONEFRX_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "title": "Hello from the API", "domain": "yoursite.com" }' -
Get back a hosted URL
The response includes a CDN URL valid for 30 days:
{ "success": true, "url": "https://assets.1frx.com/og/a1b2c3d4.png", "width": 1200, "height": 630, "expiresAt": "2026-05-16T12:00:00Z" }
Errors
All errors return a JSON body with an error field explaining what went wrong.
| Status | Meaning | Common cause |
|---|---|---|
| 400 | Bad Request | Missing or invalid parameters in the request body |
| 401 | Unauthorised | Missing, invalid, or revoked API key |
| 429 | Rate Limited | Exceeded your plan's monthly asset volume |
| 500 | Server Error | Something went wrong on our side — check status.1frx.com |
// Example error response
{
"error": "Missing required field: title",
"code": "MISSING_FIELD",
"field": "title"
}