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

TIP

A new key works immediately. Your account's trial credit (about $0.10) covers a cheap first task — beyond that, top up, since every request is priced against your balance before it runs.

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 anything you want to keep — see Data Retention Policy.

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.

WARNING

Sync mode waits up to 10 minutes. If the task is still running at that point the response returns status: "processing" rather than an error — keep the id and poll GET /v1/requests/{id} to get the eventual result. Also set your HTTP client's timeout high enough to cover the wait; the default in most clients is far shorter. Video and digital-human tasks routinely exceed 10 minutes, so use async or webhook mode for those.

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.