๐Ÿš€ Ommini API Documentation

Create videos, posts and documents in Ommini from n8n, Zapier, Make and other automation tools.

Quick Start

Create your API key in the Settings โ†’ API Keys tab.

Send the key in the X-API-Key header with every request:

X-API-Key: omn_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Base URL

https://ommini.com/api/v1

Authentication

All endpoints except the health check require an API key. A missing, invalid or disabled key returns 401.

Each key can only access the records of your own account.

๐Ÿ“น Video

POST /api/v1/video/create

Starts AI video generation (fal.ai Kling v1.6). Generation runs in the background and usually takes 2-4 minutes.

Each video counts toward your monthly plan quota. When the quota is used up, 5 credits are used. If neither quota nor credits are enough, the response is 429.

Request Body

prompt required

Text describing the video. Write it in English for the best results.

baslik optional

Video title. If omitted, the first 60 characters of the prompt are used.

sure optional

Duration in seconds: "5" or "10". Default: "5".

oran optional

Aspect ratio: "9:16", "16:9" or "1:1". Default: "9:16".

stil optional

Style label saved with the video. Default: "cinematic".

cURL Example

curl -X POST https://ommini.com/api/v1/video/create \
  -H "X-API-Key: omn_your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "A calm turquoise sea at sunrise, gentle waves, cinematic drone shot",
    "baslik": "Sunrise Sea",
    "sure": "5",
    "oran": "9:16"
  }'

Response

{
  "success": true,
  "video_id": 197,
  "durum": "isleniyor",
  "mesaj": "..."
}
GET /api/v1/video/{video_id}

Returns the status and details of a video. While the video is processing, the status is refreshed on every request.

durum values: isleniyor (processing), hazir (ready, video_url is set) and hata (failed).

Poll every 15-30 seconds until the video is ready.

cURL Example

curl https://ommini.com/api/v1/video/197 \
  -H "X-API-Key: omn_your_key"

Response

{
  "id": 197,
  "baslik": "Sunrise Sea",
  "prompt": "A calm turquoise sea at sunrise, gentle waves, cinematic drone shot",
  "stil": "cinematic",
  "sure": "5",
  "oran": "9:16",
  "durum": "hazir",
  "video_url": "https://v3b.fal.media/files/.../output.mp4",
  "thumbnail_url": null,
  "tarih": "2026-10-09T20:02:11"
}
GET /api/v1/videos

Lists your videos from newest to oldest.

Query Parameters

limit optional

Maximum number of records to return. Default: 50.

offset optional

Number of records to skip (pagination). Default: 0.

The total field is the number of records in this response. Each video includes id, baslik, durum, video_url and tarih.

cURL Example

curl "https://ommini.com/api/v1/videos?limit=10&offset=0" \
  -H "X-API-Key: omn_your_key"

๐Ÿ“ Posts

These endpoints save the post to your Ommini account. They do not publish it to your social media accounts themselves.

POST /api/v1/post/create

Creates a new post record.

Request Body

baslik required

Post title.

icerik required

Post text.

platform optional

For example instagram, linkedin, twitter. Default: "genel".

durum optional

"taslak" (draft) or "yayinlandi" (published). Default: "taslak".

cURL Example

curl -X POST https://ommini.com/api/v1/post/create \
  -H "X-API-Key: omn_your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "baslik": "New Product Launch",
    "icerik": "Excited to announce our new product!",
    "platform": "linkedin",
    "durum": "taslak"
  }'

Response

{
  "success": true,
  "post_id": 42,
  "mesaj": "..."
}
GET /api/v1/posts

Lists your posts from newest to oldest.

Query Parameters

platform optional

Only posts for this platform.

durum optional

Only posts with this status (taslak, yayinlandi, planli).

limit, offset optional

Pagination. Defaults: 50 and 0.

Each post includes id, baslik, icerik, platform, durum, tarih and planlanan_tarih.

cURL Example

curl "https://ommini.com/api/v1/posts?platform=linkedin&durum=taslak" \
  -H "X-API-Key: omn_your_key"
POST /api/v1/post/schedule

Saves the post with its scheduled date and the status planli (scheduled).

Request Body

baslik required

Post title.

icerik required

Post text.

platform required

For example instagram, linkedin, twitter.

planlanan_tarih required

Date in ISO 8601 format, for example "2026-11-15T10:00:00". An invalid format returns 400.

cURL Example

curl -X POST https://ommini.com/api/v1/post/schedule \
  -H "X-API-Key: omn_your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "baslik": "Weekend Sale",
    "icerik": "Do not miss our weekend sale!",
    "platform": "instagram",
    "planlanan_tarih": "2026-11-15T10:00:00"
  }'

Response

{
  "success": true,
  "post_id": 43,
  "planlanan_tarih": "2026-11-15T10:00:00",
  "mesaj": "..."
}

๐Ÿ“„ Documents

POST /api/v1/document/create

Saves a new document to your Documents page.

Request Body

baslik required

Document title.

icerik required

Document text.

tur optional

Document type, for example Blog, Email, Rapor. Default: "Genel".

cURL Example

curl -X POST https://ommini.com/api/v1/document/create \
  -H "X-API-Key: omn_your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "baslik": "Q4 Content Plan",
    "icerik": "Week 1: product teaser...",
    "tur": "Rapor"
  }'

Response

{
  "success": true,
  "document_id": 15,
  "mesaj": "..."
}
GET /api/v1/documents

Lists your documents from newest to oldest. Each document includes the first 200 characters of its content.

Query Parameters

tur optional

Only documents of this type.

limit, offset optional

Pagination. Defaults: 50 and 0.

โœ… Health Check

GET /api/v1/health

Confirms that the API is running. No API key required.

cURL Example

curl https://ommini.com/api/v1/health

Response

{
  "status": "ok",
  "version": "1.0.0",
  "service": "Ommini API"
}

โš ๏ธ Error Codes

The API uses standard HTTP status codes:

Error Response

{
  "detail": "API Key gerekli. Header'a X-API-Key ekleyin."
}

The message in the detail field is currently in Turkish. In your automations, use the HTTP status code to tell errors apart.

๐Ÿ”ง n8n Example: Create a Video and Fetch It When Ready

1. Start generation (HTTP Request)

{
  "prompt": "{{ $json.description }}",
  "sure": "5",
  "oran": "9:16"
}

2. Wait (Wait)

Wait 60 seconds.

3. Check the status (HTTP Request)

4. Check the result (IF)

If durum is hazir, continue with video_url. If it is isleniyor, go back to step 2; if it is hata, stop the workflow.

๐Ÿ’ก Need help?

For integration questions, contact us at destek@ommini.com.