abstrakt
Models
Featured
Sora 2 Pro
Featured

Sora 2 Pro

OpenAI's most advanced video generation model with photorealistic output and complex scene understanding.

Veo 3.1
New

Veo 3.1

Google DeepMind's flagship video model with exceptional motion consistency and cinematic quality.

Kling 2.6
Popular

Kling 2.6

Latest Kling model with enhanced character consistency, longer duration support, and improved physics.

Active

100+ AI Models

Access the best AI models from multiple providers through one unified API. Switch models without changing code.

Browse all models
Tools
Featured
AI Image Generator
Popular

AI Image Generator

Create stunning images from text descriptions using FLUX, Stable Diffusion, and more.

Text to Video
New

Text to Video

Transform your ideas into cinematic AI videos with Sora, Veo, and Kling models.

Text to Speech

Text to Speech

Convert text to natural-sounding speech with 30+ voices and emotional expression.

Active

20+ AI Tools

Ready-to-use tools for image, video, and audio generation. No code required — just upload and create.

Explore all tools
Tutorials
Featured
Build Your First AI App
Start Here

Build Your First AI App

Your first AI generation in 5 minutes. Set up your API key and create your first image.

Text-to-Image Masterclass

Text-to-Image Masterclass

Master prompting techniques, model selection, and advanced settings for stunning results.

Text-to-Video Fundamentals

Text-to-Video Fundamentals

Learn to create cinematic AI videos with proper motion, pacing, and storytelling.

Active

Learn AI Generation

Step-by-step guides to master AI image, video, and audio creation. From beginner to advanced.

View all tutorials
Sandbox
Docs
Docs Online

Getting Started

  • Introduction
  • Quick Start
  • Authentication

API Reference

  • Jobs
  • Models
  • Webhooks

Guides

  • Image Generation
  • Video Generation
  • Audio & TTS

Resources

  • Error Codes
  • Rate Limits
Docs/API/Webhooks

Webhooks

Receive job results automatically when they complete, without polling.

Overview

Some AI models (image editing, video generation, etc.) can take longer than a typical HTTP request timeout. Instead of polling for the result, you can provide a webhook_url in your request. When the job completes, we POST the result directly to your URL.

This is the recommended approach for any model that may take more than a few seconds to generate.

How It Works

1

Include webhook_url in your POST /v1/models/{model}/run request body.

2

The API returns immediately with a job_id and status: "processing" (HTTP 202).

3

The model generates the result in the background.

4

When complete, we POST the result to your webhook_url.

Sending a Request with Webhook

curl -X POST https://api.abstrakt.one/v1/models/nano-banana-pro-edit/run \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "input": {
      "prompt": "Make the background a beach scene",
      "image_url": "https://example.com/photo.jpg"
    },
    "webhook_url": "https://your-server.com/api/abstrakt-webhook"
  }'

Initial Response (202)

{
  "job_id": "job_abc123xyz",
  "request_id": "fal_req_456",
  "status": "processing",
  "model_id": "nano-banana-pro-edit",
  "message": "Model is still generating. Poll GET /v1/jobs/job_abc123xyz for the completed result."
}

Webhook Payload

When the job finishes, we send a POST request to your webhook URL with the result:

Success Payload

{
  "job_id": "job_abc123xyz",
  "status": "succeeded",
  "output": {
    "type": "image",
    "items": [
      {
        "type": "image",
        "url": "https://cdn.abstrakt.one/outputs/abc123.png"
      }
    ]
  },
  "credits_used": 1,
  "completed_at": "2026-02-08T10:30:45Z"
}

Failure Payload

{
  "job_id": "job_abc123xyz",
  "status": "failed",
  "error": {
    "code": "PROVIDER_FAILURE",
    "message": "Model execution failed: invalid input image"
  }
}

Example Webhook Handler

Node.js / Express

app.post('/api/abstrakt-webhook', express.json(), (req, res) => {
  const { job_id, status, output, error } = req.body;

  if (status === 'succeeded') {
    console.log(`Job ${job_id} completed!`);
    // Process the output - e.g., save the image URL
    const imageUrl = output?.items?.[0]?.url;
    if (imageUrl) {
      // Save to your database, notify your user, etc.
      saveResult(job_id, imageUrl);
    }
  } else if (status === 'failed') {
    console.error(`Job ${job_id} failed: ${error?.message}`);
  }

  // Return 200 quickly to acknowledge receipt
  res.status(200).json({ received: true });
});

Python / Flask

@app.route('/api/abstrakt-webhook', methods=['POST'])
def abstrakt_webhook():
    data = request.json
    job_id = data.get('job_id')
    status = data.get('status')

    if status == 'succeeded':
        output = data.get('output', {})
        items = output.get('items', [])
        if items:
            image_url = items[0].get('url')
            # Save to your database, notify your user, etc.
            save_result(job_id, image_url)
    elif status == 'failed':
        error = data.get('error', {})
        print(f"Job {job_id} failed: {error.get('message')}")

    return jsonify({"received": True}), 200

Best Practices

  • 1.Return quickly: Respond with a 2xx status within 10 seconds. Do any heavy processing asynchronously.
  • 2.Be idempotent: Use the job_id to check if you've already processed a result. Duplicate deliveries are possible.
  • 3.Use HTTPS: Webhook URLs should use HTTPS in production.
  • 4.Have a fallback: You can always poll GET /v1/jobs/{id} as a backup if you miss a webhook delivery.

Polling vs. Webhooks

ApproachBest ForProsCons
PollingSimple integrations, scriptsNo server needed, simple to implementWastes API calls, slight delay
WebhooksProduction apps, slow modelsInstant delivery, no wasted callsRequires a publicly accessible endpoint

Tip: For the most robust integration, use both approaches. Set a webhook_url for instant delivery, and fall back to polling GET /v1/jobs/{id} if the webhook doesn't arrive within a reasonable time.

On this page

abstrakt
abstrakt

The unified abstraction layer for the next generation of AI applications. Build faster with any model.

Start Here+
  • Quickstart
  • Get API Key
  • Try Playground
  • View Pricing
Image Tools+
  • AI Image Generator
  • Image to Image
  • Remove Background
  • Image Upscaler
  • Object Remover
  • Style Transfer
  • Image Enhancer
  • AI Art Generator
Video Tools+
  • Text to Video
  • Image to Video
  • AI Video Generator
  • Video Upscaler
  • Video Enhancer
  • Frame Interpolation
Audio Tools+
  • Text to Speech
  • Speech to Text
  • AI Music Generator
  • Voice Cloning
  • Audio Enhancer
  • Sound Effects
Tutorials+
  • Getting Started
  • Image Generation
  • Video Generation
  • Audio Generation
  • Advanced Topics
  • AI Glossary
  • All Tutorials
Models+
  • FLUX Schnell
  • FLUX Dev
  • Fast SDXL
  • Stable Diffusion 3
  • MiniMax Video
  • Kling AI
  • Ideogram
  • More Models
Company+
  • About Us
  • Pricing
  • Documentation
  • Tutorials
  • Blog
  • Contact
  • Changelog
  • Status
  • Careers
  • Privacy Policy
  • Terms of Service
  • Cookie Policy

Image Tools

  • AI Image Generator
  • Image to Image
  • Remove Background
  • Image Upscaler
  • Object Remover
  • Style Transfer
  • Image Enhancer
  • AI Art Generator

Video Tools

  • Text to Video
  • Image to Video
  • AI Video Generator
  • Video Upscaler
  • Video Enhancer
  • Frame Interpolation

Audio Tools

  • Text to Speech
  • Speech to Text
  • AI Music Generator
  • Voice Cloning
  • Audio Enhancer
  • Sound Effects

Tutorials

  • Getting Started
  • Image Generation
  • Video Generation
  • Audio Generation
  • Advanced Topics
  • AI Glossary
  • All Tutorials

Start Here

  • Quickstart
  • Get API Key
  • Try Playground
  • View Pricing

Models

  • FLUX Schnell
  • FLUX Dev
  • Fast SDXL
  • Stable Diffusion 3
  • MiniMax Video
  • Kling AI
  • Ideogram
  • More Models

Company

  • About Us
  • Pricing
  • Documentation
  • Tutorials
  • Blog
  • Contact
  • Changelog
  • Status
  • Careers
  • Privacy Policy
  • Terms of Service
  • Cookie Policy
abstrakt

The unified abstraction layer for the next generation of AI applications.

© 2026 abstrakt. All rights reserved.

SYS.ONLINE|API.ACTIVE|v1.2.0