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.

FeatureFreePaid
All 8 browser tools✓ Unlimited✓ Unlimited
Data sent to serversNone — local onlyOnly 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 volume500–unlimited by plan
SupportDocs onlyEmail + 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.

⚠️
Never expose your API key in client-side code. Don't include it in JavaScript that runs in a browser, a public GitHub repo, or any frontend code. Always call the 1FRX API from your server or a backend function.

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.

  1. 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.

  2. 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
  3. 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"
      }'
  4. 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"
    }
💡
Using an integration? You don't need to make raw API calls. Integrations like Ghost, Webflow, and WordPress handle all of this automatically — you just enter your API key once in the settings and everything runs in the background.

Errors

All errors return a JSON body with an error field explaining what went wrong.

StatusMeaningCommon cause
400Bad RequestMissing or invalid parameters in the request body
401UnauthorisedMissing, invalid, or revoked API key
429Rate LimitedExceeded your plan's monthly asset volume
500Server ErrorSomething went wrong on our side — check status.1frx.com
// Example error response
{
  "error": "Missing required field: title",
  "code": "MISSING_FIELD",
  "field": "title"
}