AdCreative.ai | Docs
AdCreative.ai | Docs
  • Getting Started
    • Introduction
      • Core Capabilities
    • Authentication
    • Notifications
      • How to Receive Notifications
    • Error Handling
    • Enums and Descriptions
    • Notification Message Types
  • FEATURES
    • AdCreative API
    • Image Upscaler API
    • Background Remover API
    • Face Enhancer API
    • Scan My Website API
    • Stock Image Generation API
    • Ad Text Generation API
    • Product Photoshoot API
  • Creative Scoring API (Soon)
  • Fine-tune Generation API (Soon)
Powered by GitBook
On this page
  • 🎯 What AdCreative API Is
  • 🚫 What AdCreative API Is Not
  • πŸ” Architectural Principles
  • βš™οΈ Basic Flow to Get Started
  • πŸ“£ Webhook Notifications
  • πŸ§ͺ Ready-To-Test: Postman Setup
  • 🧭 Supported Features
  • βœ… Design Do’s & Don’ts
  • 🚫 Why Domain Data Must Stay Out
  • πŸ“š Next Steps
  1. Getting Started
  2. Introduction

Core Capabilities

🎯 What AdCreative API Is

The AdCreative API is a domain-agnostic, high-performance service designed to generate and deliver creative assets, including images and text. It runs independently of the main AdCreative platform β€” with its own services, database, codebase, and operational logic.

It is used by both internal and external customers and provides a flexible, scalable foundation for asset generation needs.


🚫 What AdCreative API Is Not

  • This API does not integrate with the AdCreative platform out-of-the-box.

  • It does not support features like Project, Customer, Brand, or Package, which are specific to AdCreative UI.

  • It does not store business-domain data (e.g., clientName, campaignId, billboardSpec).

  • It does not support third-party ad network integrations like Google Ad Manager (GAM).

  • It cannot access assets created through the AdCreative frontend unless a custom bridge is implemented.


πŸ” Architectural Principles

To preserve purity and scalability, the API:

  • Is stateless and agnostic to any specific business logic.

  • Only recognizes two concepts for access control:

    1. ApplicationId (Integrator)

    2. UserId (optional sub-user per integrator)

It avoids tight coupling by not embedding metadata from integrators such as:

  • Brand, Project, Package

  • Billboard, Campaign, Spec

  • Custom integrator client fields

If needed, integrators can handle mapping by correlating the RenderProcessId returned from the API with their own internal user IDs.

Also, a quick note regarding the UserId:

  • If you’re generating images for different sub-users, you can differentiate them using distinct UserId values and filter requests based on these values.

  • If you don’t have a sub-users system, you can use a fixed UserId (also you can generate your own userID).

  • The UserId helps track and distinguish requests if you’re generating images for different sub-users.


βš™οΈ Basic Flow to Get Started

While each generation feature may involve its own logic or additional inputs, the following three example endpoints are consistently used across all generation workflows:

  • POST /api/v1/Image/ProductGeneration/AdCreative

  • POST /api/v1/Image/ProductGeneration/CheckUserProgress

  • POST /api/v1/Image/ProductGeneration/Download

These serve as the core flow for initiating generation, tracking its progress, and retrieving final results.

1. πŸ” Generate an Access Token

  • Endpoint: POST /api/v1/Authorization/GenerateJwtToken

  • Tokens are generated using your JwtPrivateKey, ApplicationId.

Using our Postman collection? No need to copy/paste β€” the token is auto-assigned via pre-request scripts.


2. 🎨 Start a Generation Task

Trigger an asset generation via feature-specific endpoints, such as:

  • POST /api/v1/Image/Generation/AdCreativesByKind

  • POST /api/v1/Image/BackgroundRemoving/AdCreative


3. πŸ”„ Track Progress

  • Endpoint: POST /api/v1/Image/Generation/CheckUserProgress

  • When progress == 100, isSuccessful == true, and all renderState == 5 β†’ your job is complete.


4. πŸ“¦ Download Results

  • Endpoint: POST /api/v1/Image/Generation/Download

  • Input: list of taskIds


πŸ“£ Webhook Notifications

Enable real-time updates by setting a webhook:

  • POST /api/v1/Notification/ChannelConfiguration/WebHook to create

  • PUT /api/v1/Notification/ChannelConfiguration/WebHook to update

  • Configure retry behavior: RetryCount, ExponentialBackoffFactor

Webhook Events

  • Progress Start: job begins

  • Task Complete: per image

  • Progress Complete: full batch ready

Check configuration:

  • GET /Notification/ChannelConfiguration/All

  • GET /Notification/ChannelConfiguration/Active


πŸ§ͺ Ready-To-Test: Postman Setup

To simplify integration testing:

  • We provide a Postman Collection with all endpoints

  • A Postman Environment with credentials (X-API-KEY, X-API-SECRET, JwtPrivateKey, ApplicationId, UserId)

  • After importing, you can send API requests immediately β€” no setup required.


🧭 Supported Features

  • Image Processing:

    • Background Removal

    • Upscaling

    • Face Enhancement

    • SVG-based Batch Generation

    • Stock/Product Image Generation

  • Text Generation:

    • Website Scanner

    • Ad Text Generator


βœ… Design Do’s & Don’ts

Allowed
Not Allowed

Stateless, clean generation

Business-specific coupling (e.g., brandId)

Integrator-level scoping

Campaign/project storage in API

Multi-feature reuse

Metadata mixing from 3rd-party systems

Webhook extensibility

Dependency on external ad-serving platforms


🚫 Why Domain Data Must Stay Out

Embedding metadata such as clientId, projectId, safeZoneId directly in the API would:

  • Tie the API to client-specific implementations

  • Break portability across partners

  • Hurt long-term maintainability

Instead, integrators should map responses (e.g., RenderProcessId) with their own systems externally.


πŸ“š Next Steps

Explore the full API documentation at:

PreviousIntroductionNextAuthentication

Last updated 3 days ago

πŸ‘‰

https://api-docs.adcreative.ai/docs