Skip to content

Get Started with API

Start making API calls to Get3W in minutes. This guide uses Sync mode, which waits for the task to complete and returns the result directly in a single request.

Step 1: Get Your API Key

  1. Go to API Keys
  2. Enter a name and click Generate
  3. Copy your key and save it securely

WARNING

API keys require a top-up to activate. Keys generated without a top-up will not work.

Step 2: Generate Content

Send a POST request with ?sync=true to get the result directly. Here's an example using Google's Nano Banana Pro text-to-image model:

bash
curl -X POST "https://api.get3w.com/v1/google/nano-banana-pro/text-to-image?sync=true" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "A sunset over mountains",
    "aspect_ratio": "16:9",
    "resolution": "1k",
    "output_format": "png",
    "channel": "stable"
  }'
python
import requests

response = requests.post(
    "https://api.get3w.com/v1/google/nano-banana-pro/text-to-image?sync=true",
    headers={
        "Authorization": "Bearer YOUR_API_KEY",
        "Content-Type": "application/json"
    },
    json={
        "prompt": "A sunset over mountains",
        "aspect_ratio": "16:9",
        "resolution": "1k",
        "output_format": "png",
        "channel": "stable"
    }
)

data = response.json()
print(data["status"])    # "completed"
print(data["outputs"])   # ["https://..."]
javascript
const apiKey = "YOUR_API_KEY";

const response = await fetch(
    "https://api.get3w.com/v1/google/nano-banana-pro/text-to-image?sync=true",
    {
        method: "POST",
        headers: {
            "Authorization": `Bearer ${apiKey}`,
            "Content-Type": "application/json"
        },
        body: JSON.stringify({
            prompt: "A sunset over mountains",
            aspect_ratio: "16:9",
            resolution: "1k",
            output_format: "png",
            channel: "stable"
        })
    }
);

const data = await response.json();
console.log(data.status);   // "completed"
console.log(data.outputs);  // ["https://..."]

The channel parameter specifies the service tier:

ChannelDescription
economyCost-effective, best for bulk tasks
stableBalanced speed and reliability
officialDirect official provider access

Response:

json
{
  "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "model": "google/nano-banana-pro/text-to-image",
  "status": "completed",
  "code": 0,
  "outputs": [
    "https://storage.example.com/output.png"
  ],
  "timings": {
    "queue_wait": 427,
    "celery_init": 2054,
    "api_call": 23068,
    "save": 1902,
    "run_overhead": 679,
    "total": 28131
  },
  "error": null,
  "created_at": "2026-03-28T07:50:42"
}

The outputs array contains URLs to your generated content. Download them before they expire (7 days).

TIP

Sync mode is the simplest way to use the API. The request blocks until the task is done, so no polling is needed. For long-running tasks or high-throughput scenarios, consider Async mode or Webhook mode.

Call Modes

Get3W supports three ways to call the API:

ModeDescriptionGuide
SyncWaits for completion, returns result directly (this page)Add ?sync=true query parameter
AsyncReturns task ID immediately, poll for resultAsync Mode Guide
WebhookReturns task ID immediately, sends result to your callback URLWebhook Mode Guide

API Reference

ItemValue
Base URLhttps://api.get3w.com/v1
Submit EndpointPOST /v1/{provider_id}/{model_id}/{run_type}
Poll EndpointGET /v1/requests/{request_id}
Auth HeaderAuthorization: Bearer YOUR_API_KEY
Content Typeapplication/json

Task Status Values

StatusDescription
createdTask is queued
processingTask is running
completedTask finished successfully
failedTask failed (check error field)

Next Steps

Released under the MIT License.