เอกสาร Generor API
สร้างด้วยเครื่องมือสร้าง AI กว่า 93 รายการ — ข้อความ รูปภาพ วิดีโอ เสียง และอื่น ๆ
REST API แบบรวมศูนย์สำหรับสร้าง เรียกดู และจัดการคอนเทนต์ AI ทุกคำขอใช้ JSON ยืนยันตัวตนด้วย Bearer token
การยืนยันตัวตน
ยืนยันตัวตนด้วย Bearer token ในส่วนหัว Authorization:
curl https://generor.com/api/v1/users/me \
-H "Authorization: Bearer gnr_live_your_api_key_here"
คีย์ API เริ่มต้นด้วย gnr_live_ ตามด้วยอักขระเลขฐานสิบหก 40 ตัว สร้างคีย์ผ่าน เอนด์พอยต์คีย์ API หรือการตั้งค่าบัญชีของคุณ
บางเอนด์พอยต์ (การเรียกดูเครื่องมือสร้าง ผลงานสาธารณะ โมเดล) ทำงานได้โดยไม่ต้องยืนยันตัวตน เอนด์พอยต์ที่มีเครื่องหมาย AUTH จำเป็นต้องใช้คีย์ API ที่ถูกต้อง
ขอบเขต
คีย์ API สามารถกำหนดขอบเขตเพื่อจำกัดการเข้าถึงได้:
| ขอบเขต | อนุญาต |
|---|---|
read | คำขอ GET ไปยังทุกเอนด์พอยต์ |
write | การดำเนินการ POST, PATCH, DELETE (ความคิดเห็น การให้คะแนน การอัปเดตโปรไฟล์ ฯลฯ) |
generate | การสร้างเนื้อหา (มีค่าใช้เครดิต) |
คีย์ที่ไม่ได้ระบุขอบเขตจะมีสิทธิ์เข้าถึงทั้งหมด
ขีดจำกัดอัตราการเรียกใช้
ขีดจำกัดคิดต่อ API key ทุกการตอบกลับมีส่วนหัวบอกขีดจำกัดอัตรา:
X-RateLimit-Limit: 30
X-RateLimit-Remaining: 28
X-RateLimit-Reset: 1708444860
X-RateLimit-Tier: free
| ระดับ | ต่อนาที | ต่อชั่วโมง | ต่อวัน |
|---|---|---|---|
| free | 30 | 500 | 5,000 |
| basic | 60 | 2,000 | 20,000 |
| pro | 120 | 5,000 | 50,000 |
| enterprise | 300 | 20,000 | 200,000 |
คำขอที่ไม่ได้ยืนยันตัวตนจำกัดที่ 15/นาทีต่อ IP เมื่อถูกจำกัดอัตรา คุณจะได้รับการตอบกลับ 429 พร้อมส่วนหัว Retry-After
รูปแบบการตอบกลับ
การตอบสนองทั้งหมดใช้รูปแบบ JSON envelope ที่สอดคล้องกัน:
สำเร็จ
{
"success": true,
"data": { ... },
"meta": {
"page": 1,
"per_page": 20,
"total": 142,
"total_pages": 8,
"has_next": true,
"has_prev": false
}
}
ข้อผิดพลาด
{
"success": false,
"error": {
"code": "NOT_FOUND",
"message": "Creation not found",
"status": 404
}
}
การแบ่งหน้า
เอนด์พอยต์รายการรองรับการแบ่งหน้าผ่านพารามิเตอร์ query:
| พารามิเตอร์ | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|
page | 1 | หมายเลขหน้า (เริ่มจาก 1) |
per_page | 20 | รายการต่อหน้า (สูงสุด 100) |
sort | newest | ลำดับการเรียง: newest, oldest |
เครื่องมือสร้าง
GET /generators
แสดงรายการเครื่องมือสร้างที่ใช้ได้ทั้งหมด
curl https://generor.com/api/v1/generators
พารามิเตอร์การสืบค้น: status (active, development, all)
การตอบกลับ: อาร์เรย์ของเครื่องสร้างพร้อม slug, title, description, icon และเครื่องสร้างที่คล้ายกัน
GET /generators/{slug}
รับข้อมูลโดยละเอียดเกี่ยวกับเครื่องมือสร้างที่ระบุ
curl https://generor.com/api/v1/generators/image
GET /generators/{slug}/creations
เรียกดูผลงานสาธารณะของเครื่องมือสร้าง รองรับการแบ่งหน้า
curl "https://generor.com/api/v1/generators/joke/creations?page=1&per_page=10"
POST /generators/{slug}/estimate
ดูตัวอย่างค่าเครดิตและเวลาในการสร้างที่คาดไว้ ก่อน การเรียก /generate โครงสร้าง body เหมือนกับ /generate — แต่เป็นแบบอ่านอย่างเดียว: ไม่มีการหักเครดิต ไม่มีการบันทึกผลงาน นี่คือตัวเลขเดียวกันกับที่ UI แสดงข้าง ๆ ปุ่ม Generate
curl -X POST https://generor.com/api/v1/generators/horoscope/estimate \
-H "Content-Type: application/json" \
-d '{
"model_id": 37,
"count": 5,
"parameters": {
"zodiac-sign": "aries",
"horoscope-length": "long"
}
}'
การตอบกลับ:
{
"success": true,
"data": {
"generator": "horoscope",
"model_id": 37,
"model_type": "text",
"model_name": "Gemini 3.5 Flash",
"credit_cost": {
"total": 15, // after bulk discount
"per_item": 3, // model base × length/quality multipliers
"count": 5,
"discount": 0, // credits saved
"discount_percent": 5 // % off applied (count% off, capped at 10%)
},
"time_estimate": {
"seconds": 50, // total wall-clock estimate
"per_item": 10,
"min_seconds": 8,
"max_seconds": 14,
"sample_count": 10, // recent generations averaged
"has_historical": true,
"source": "historical" // or "fallback" when sample_count < 3
},
"applied_parameters": { // what the API actually used (schema-filtered)
"zodiac-sign": "aries",
"horoscope-length": "long",
"model-text": "3",
"horoscope-count": "5"
}
}
}
เปิดให้ผู้เรียกที่ไม่ได้ยืนยันตัวตน — ราคา/เวลาเป็นข้อมูลสาธารณะและตรงกับที่หน้าตัวสร้างสาธารณะแสดง
ระยะเวลาวิดีโอที่ปรับให้ลงตัว
หากคุณส่งค่า seconds ที่ไม่อยู่ใน supported_durations ของโมเดล API จะปรับไปยังค่าที่รองรับที่ใกล้ที่สุด (หากเท่ากันจะเลือกค่าที่ต่ำกว่า) และแสดงการเปลี่ยนแปลงในบล็อก adjustments ค่าใช้จ่ายเครดิตและการประมาณเวลาในการตอบกลับเดียวกันจะสะท้อนค่าที่ปรับแล้ว — สิ่งที่ /generate จะทำจริง — ไม่ใช่คำขอเดิม
{
"success": true,
"data": {
"credit_cost": { "total": 30, ... },
"time_estimate": { "seconds": 60, ... },
"adjustments": {
"seconds": {
"requested": 3,
"used": 5,
"supported": [5, 6, 7, 8, 10, 12, 15],
"reason": "snapped to nearest provider-supported duration"
}
}
}
}
เมื่อใดควรใช้
- ตรวจสอบค่าใช้จ่ายล่วงหน้า — ยืนยันว่าผู้ใช้มีเครดิตเพียงพอสำหรับการสร้างก่อนเรียกเก็บเงิน
- UI ความคืบหน้า — ป้อน
time_estimate.secondsเข้าสู่แถบโหลดของคุณเพื่อให้ผู้ใช้รู้ว่าต้องรอนานเท่าใด - การปรับแต่งพารามิเตอร์ — เรียกใช้เมื่อผู้ใช้เปลี่ยนเมนูดรอปดาวน์ ค่าใช้จ่ายจะอัปเดตโดยไม่ต้องยืนยันการสร้าง
ความสัมพันธ์กับ /generate — /estimate เป็นการเรียก แยกต่างหาก, ไม่บังคับ /generate จะคืนค่า credit_cost จริงที่เรียกเก็บ + credits_remaining หลังจากนั้นอยู่แล้ว ดังนั้นหากคุณยินดีจ่ายตามราคาจริงในขณะนั้น คุณสามารถข้าม /estimate ไปได้ทั้งหมด
Use the Generor API at https://generor.com/api/v1.
Before calling POST /generators/{slug}/generate, call
POST /generators/{slug}/estimate with the same body to get back:
- credit_cost.total (credits the next generate call will charge)
- time_estimate.seconds (expected wall-clock duration)
Show both to the user, then call /generate when they confirm.
The /generate response includes the real credit_cost charged and
credits_remaining — use those to update the user's balance.
Discover each generator's tweakable fields with GET /generators/{slug}
and pass them under the `parameters` object on both /estimate and
/generate (keys match the dropdown IDs you see on the public page).
POST /generators/{slug}/generate AUTH
สร้างเนื้อหาด้วย AI นี่คือการเรียกแบบซิงโครนัส — ผลตอบกลับจะคืนมาเมื่อการสร้างเสร็จสมบูรณ์ มีค่าใช้จ่ายเป็นเครดิตตามโมเดลที่เลือก การสร้างข้อความมักใช้เวลา 5-30 วินาที การสร้างรูปภาพ 10-60 วินาที และการสร้างวิดีโออาจใช้เวลาหลายนาที
# Text generation (joke with GPT 5 Nano)
curl -X POST https://generor.com/api/v1/generators/joke/generate \
-H "Authorization: Bearer gnr_live_..." \
-H "Content-Type: application/json" \
-d '{
"prompt": "Tell me a joke about programming",
"model_id": 37
}'
# Image generation (Flux Schnell, square)
curl -X POST https://generor.com/api/v1/generators/image/generate \
-H "Authorization: Bearer gnr_live_..." \
-H "Content-Type: application/json" \
-d '{
"prompt": "A sunset over mountains",
"model_id": 10003,
"aspect_ratio": 1
}'
# Image description (vision — Qwen VL Max, image-only input, prompt is optional)
curl -X POST https://generor.com/api/v1/generators/vision/generate \
-H "Authorization: Bearer gnr_live_..." \
-H "Content-Type: application/json" \
-d '{
"model_id": 34,
"image_url": "https://example.com/photo.jpg",
"preference": "detailed"
}'
# Video generation (Happy Horse 1.0 R2V — multi-reference, 6s, wide)
curl -X POST https://generor.com/api/v1/generators/video/generate \
-H "Authorization: Bearer gnr_live_..." \
-H "Content-Type: application/json" \
-d '{
"prompt": "The character from [Image1] walks through the forest from [Image2]",
"model_id": 20050,
"aspect_ratio": "16:9",
"seconds": 6,
"reference_images": [
"https://example.com/character.jpg",
"https://example.com/forest.jpg"
]
}'
# Video generation (Happy Horse Video Edit — natural-language edit of an existing clip)
curl -X POST https://generor.com/api/v1/generators/video/generate \
-H "Authorization: Bearer gnr_live_..." \
-H "Content-Type: application/json" \
-d '{
"prompt": "Replace the sky with a stormy sunset",
"model_id": 20051,
"video_url": "https://example.com/source.mp4",
"seconds": 5
}'
เนื้อหาคำขอ:
| ฟิลด์ | ประเภท | จำเป็น | คำอธิบาย |
|---|---|---|---|
prompt | string | ใช่ | พรอมต์การสร้าง (สูงสุด 10,000 อักขระ) |
model_id | integer | ใช่ | รหัสโมเดล AI ข้อความ: 1-9999, รูปภาพ: 10001-19999, วิดีโอ: 20001-29999 ดู โมเดล |
privacy_mode | integer | ไม่ | 0 = สาธารณะ (ค่าเริ่มต้น), 1 = ส่วนตัว |
team_id | integer | ไม่ | สร้างภายใต้ทีม |
count | integer | ไม่ | จำนวนรายการ (1-10, ค่าเริ่มต้น 1) |
language | string | ไม่ | รหัสภาษาสำหรับการสร้างข้อความ (เช่น "en-US", "nb-NO") ค่าเริ่มต้น: "auto" |
temperature | float | ไม่ | ความสร้างสรรค์ของ LLM (เฉพาะโมเดลข้อความ, 0.0-2.0) |
preference | string/int | ไม่ | การตั้งค่าเฉพาะเครื่องมือสร้าง (เช่น ประเภทมุกตลก รูปแบบบทกวี) |
preference_two | string/int | ไม่ | การตั้งค่ารองเฉพาะเครื่องมือสร้าง |
aspect_ratio | int or string | ไม่ | รองรับ ID ที่เป็นตัวเลข หรือสตริงอัตราส่วน/ชื่อ ภาพ: 1 / "1:1" / "square", 2 / "3:4" / "vertical", 3 / "4:3" / "horizontal", 4 / "16:9" / "wide", 5 / "9:16" / "tall". วิดีโอ: 1 / "16:9" / "wide", 2 / "9:16" / "tall". เคล็ดลับ: ใช้สตริงอัตราส่วนเช่น "16:9" แล้ว API จะแมปไปยัง ID ที่ถูกต้องสำหรับประเภทโมเดล |
image_url | string | ไม่ | URL ภาพอ้างอิงสำหรับ image-to-image, การถ่ายโอนสไตล์ หรือ image-to-video (I2V) |
seconds | integer | ไม่ | ระยะเวลาวิดีโอเป็นวินาที (เฉพาะโมเดลวิดีโอ) ผู้ให้บริการแต่ละรายรับเฉพาะชุดค่าที่กำหนดไว้เท่านั้น — สอบถาม GET /models/video/{id} เพื่อดู supported_durations หากคุณส่งค่าที่ไม่รองรับ API จะปรับให้เป็นค่าที่รองรับที่ใกล้ที่สุดและรายงานการปรับใน adjustments.seconds ในการตอบกลับ |
generate_audio | boolean | ไม่ | สวิตช์เสียงเนทีฟสำหรับ Veo 3.1 และ Seedance 1.5 Pro (วิดีโอ) โมเดลวิดีโออื่นจะฝังพฤติกรรมเสียงไว้และเพิกเฉยต่อแฟล็กนี้ |
ending_frame_url | string | ไม่ | เฟรมยึดสุดท้ายสำหรับโมเดลที่รองรับการควบคุมเฟรมเริ่มต้น+สิ้นสุด (Veo 3.1, Wan 2.6 I2V, Seedance Pro Lite, Kling v3) จับคู่กับ image_url เพื่อการเปลี่ยนฉากหรือการวนซ้ำแบบไร้รอยต่อ |
reference_images | array<string> | ไม่ | URL รูปภาพอ้างอิงได้สูงสุด 9 รายการ รองรับโดย: Veo 3.1 (สูงสุด 3), Seedance 2.0 (สูงสุด 9), Happy Horse R2V (สูงสุด 9), Happy Horse Video Edit (สูงสุด 5) ลำดับจะถูกรักษาไว้และแสดงต่อโมเดลเป็น [Image1] … [ImageN] เมื่อพรอมต์อ้างอิงถึง |
reference_videos | array<string> | ไม่ | URL วิดีโออ้างอิงได้สูงสุด 3 รายการ ใช้โดย Seedance 2.0 (Replicate) และ Dreamina Seedance 2.0 (BytePlus direct) เพื่อความสอดคล้องของการเคลื่อนไหว/สไตล์ |
reference_audio | string | ไม่ | URL เสียงอ้างอิงเพื่อความต่อเนื่องของเพลง/เสียง ปัจจุบันใช้โดย Dreamina Seedance 2.0 (model 20060-20062, BytePlus direct) |
video_url | string | ไม่ | URL วิดีโอต้นฉบับ — จำเป็นสำหรับ Happy Horse Video Edit (โมเดล 20051) และใช้โดย Dreamina Seedance 2.0 (20060-20062) สำหรับโหมดแก้ไขวิดีโอ / ต่อขยายวิดีโอ |
parameters | object | ไม่ | ฟิลด์เฉพาะเครื่องมือสร้าง — เป็นดรอปดาวน์เดียวกับที่ frontend แสดง โดยใช้ DOM ID เป็นคีย์ ดู พารามิเตอร์ของเครื่องมือสร้าง ด้านล่าง คีย์ที่ไม่รู้จัก / ไม่ถูกต้องจะถูกตัดทิ้งโดยไม่แจ้งเตือน |
พารามิเตอร์ของเครื่องมือสร้าง
ชุดฟิลด์ที่ปรับแต่งได้ทั้งหมดของแต่ละเครื่องสร้างอยู่ใน สคีมา เฉพาะของแต่ละเครื่องสร้าง (แหล่งเดียวกับที่ดรอปดาวน์บนเว็บไซต์และการเติมค่าผ่าน URL ใช้) ส่งฟิลด์ใดก็ได้เหล่านั้นในออบเจ็กต์ parameters ในคำขอสร้างเพื่อควบคุมแบบโปรแกรม
รับ schema ของเครื่องมือสร้างใด ๆ ที่ GET /generators/{slug} — อาร์เรย์ parameters ในการตอบกลับจะแสดงแต่ละฟิลด์พร้อม id, type (enum, number หรือ model), options (หรือ min/max), default และ cost_multipliers
# 1) Discover the parameters for the horoscope generator
curl https://generor.com/api/v1/generators/horoscope
# 2) Pass them on the generate call
curl -X POST https://generor.com/api/v1/generators/horoscope/generate \
-H "Authorization: Bearer gnr_live_..." \
-H "Content-Type: application/json" \
-d '{
"prompt": "Aries weekly reading",
"model_id": 37,
"parameters": {
"zodiac-sign": "aries",
"horoscope-timeframe": "weekly",
"horoscope-tone": "mystical",
"horoscope-length": "long",
"horoscope-focus": "career"
}
}'
# Image example — every dropdown in the UI is a key here
curl -X POST https://generor.com/api/v1/generators/wallart/generate \
-H "Authorization: Bearer gnr_live_..." \
-H "Content-Type: application/json" \
-d '{
"prompt": "Calm mountain lake at dawn",
"model_id": 10003,
"parameters": {
"wallart-type": "framed-print",
"wallart-orientation": "landscape",
"image-aspect-ratio": "4"
}
}'
ช่องการสร้างข้อความเพิ่มเติม
สำหรับเครื่องมือสร้างข้อความ (model_id 1-9999) ฟิลด์ระดับบนสุดเหล่านี้จะถูกส่งต่อไปยังปลายทาง LLM เมื่อเกี่ยวข้อง:
| ฟิลด์ | ประเภท | คำอธิบาย |
|---|---|---|
user_text | string | ข้อความเสริมแบบอิสระ (เช่น เนื้อหาต้นฉบับที่จะสรุป / แปลง) |
user_text_two | string | ข้อความเสริมรอง (ใช้โดยเครื่องมือสร้างที่มีช่องป้อนข้อความสองช่อง) |
avoid_duplicates | boolean | เอนเอียงโมเดลไปทางผลลัพธ์ที่แปลกใหม่ตลอดทั้งชุด |
thinking_mode | string | สำหรับโมเดลที่รองรับการให้เหตุผล: off, on, หรือ high |
story_context | string | เรื่องราวต้นฉบับที่ส่งไปยัง story, story-part และ storyboard เพื่อเขียนฉากให้สอดคล้องกับแบรนด์ |
character_context / character_name / character_id | string / int | ความต่อเนื่องของตัวละครสำหรับสตอรีบอร์ด ส่วนของเรื่อง และผลงานต่อเนื่อง |
support_for | integer | ID ผลงานต้นทาง — เชื่อมโยงการสร้างนี้เป็นผลงานลูก / ผลงานคู่ |
mode | string | สลับโหมดเฉพาะเครื่องมือสร้าง (เช่น เฟสของเกม) |
model_speech | integer | โมเดลเสียงพูดที่จะจับคู่กับข้อความที่สร้างขึ้น (ใช้สำหรับดูดวงแบบบรรยาย พอดแคสต์ ฯลฯ) |
item_index / total_count | integer | คำแนะนำการสร้างแบบเรียงลำดับ (ใช้เมื่อสร้างรายการตามลำดับ เช่น ขั้นตอนการแก้ปัญหา) |
translation_of / source_language | integer / string | แปลผลงานที่มีอยู่แทนการสร้างใหม่ตั้งแต่ต้น |
การตอบกลับ (201 Created) — ตัวอย่างเครื่องมือสร้างข้อความ:
{
"success": true,
"data": {
"generator": "joke",
"model_id": 37,
"model_type": "text",
"model_name": "Gemini 3.5 Flash",
"creations": [
{
"creation_id": 6144,
"text": "Why do programmers prefer dark mode? Because light attracts bugs!",
"illustration_desc": "a minimalist bug icon on a dark background"
}
],
"credit_cost": 1,
"credit_cost_estimated": 1,
"credits_remaining": 36024,
"time_taken_seconds": 4.18
}
}
การตอบกลับ (201 Created) — ตัวอย่างเครื่องมือสร้างรูปภาพ:
{
"success": true,
"data": {
"generator": "image",
"model_id": 10003,
"model_type": "image",
"model_name": "black-forest-labs/flux-schnell",
"creations": [
{
"creation_id": 6147,
"image_url": "https://generor.com/users/2/img/image-6147.webp"
}
],
"credit_cost": 24,
"credit_cost_estimated": 6,
"credits_remaining": 35998,
"time_taken_seconds": 23.7
}
}
ระยะเวลาวิดีโอที่ปรับให้ลงตัว — หาก seconds ของผู้เรียกไม่อยู่ใน supported_durations ของโมเดล API จะปรับไปยังค่าที่รองรับใกล้เคียงที่สุดก่อนเรียกผู้ให้บริการ และเพิ่มบล็อก adjustments.seconds ในการตอบกลับซึ่งมีรูปแบบเหมือนกับที่อยู่บน /estimate วิธีนี้ป้องกันไม่ให้ผู้ให้บริการตั้งค่าเริ่มต้นแทนค่าที่ไม่รองรับโดยเงียบ ๆ
ช่องค่าใช้จ่ายทำงานอย่างไร
credit_cost— จำนวน จริง ที่ถูกหัก คำนวณเป็นbalance_before − balance_afterนี่คือแหล่งข้อมูลที่เชื่อถือได้: ใช้สำหรับการบันทึก การเรียกเก็บเงิน และการอัปเดตยอดคงเหลือของผู้ใช้credit_cost_estimated— ค่าประมาณจากแคตตาล็อกล่วงหน้า (ตัวเลขเดียวกับที่/estimateคาดการณ์ไว้) รวมไว้เพื่อความโปร่งใสและการตรวจสอบความคลาดเคลื่อน มักแตกต่างจากcredit_costสำหรับวิดีโอ / ต่อวินาที / ต่ออักขระ ที่ค่าใช้จ่ายจริงคำนวณภายในการเรียกผู้ให้บริการtime_taken_seconds— ระยะเวลาตามนาฬิกาจริง เปรียบเทียบกับtime_estimate.secondsจาก/estimateเพื่อตรวจสอบการคาดการณ์เวลาในอดีต
text, illustration_desc สำหรับมุกตลก; dish_name, ingredients สำหรับสูตรอาหาร) ใช้ GET /creations/{id} เพื่อดึงข้อมูลผลงานฉบับเต็มในภายหลัง ผลงาน
GET /creations AUTH
แสดงรายการผลงานของคุณเอง
curl https://generor.com/api/v1/creations \
-H "Authorization: Bearer gnr_live_..."
พารามิเตอร์การสืบค้น: generator (กรองตาม slug), page, per_page, sort
GET /creations/public
เรียกดูผลงานสาธารณะทั้งหมดจากทุกเครื่องมือสร้าง
curl "https://generor.com/api/v1/creations/public?generator=image&page=1"
GET /creations/search
ค้นหาผลงานสาธารณะด้วยข้อความพรอมต์
curl "https://generor.com/api/v1/creations/search?q=sunset+mountain"
GET /creations/{id}
รับผลงานชิ้นเดียวพร้อมรายละเอียดเต็ม ภาพ และข้อมูลเฉพาะเครื่องมือสร้าง
curl https://generor.com/api/v1/creations/12345
ผลงานสาธารณะทุกคนสามารถเข้าถึงได้ ผลงานส่วนตัวต้องมีการยืนยันตัวตนว่าเป็นเจ้าของ
การตอบกลับประกอบด้วย:
{
"success": true,
"data": {
"creation_id": 12345,
"generator": "image",
"user_id": 42,
"username": "johndoe",
"prompt": "A sunset over mountains",
"created_at": "2026-02-20 12:00:00",
"privacy_mode": 0,
"type": "img",
"license": 1,
"images": [
{
"url": "/users/42/img/image-12345.png",
"width": 1024,
"height": 1024
}
],
"generator_data": { ... }
}
}
GET /creations/{id}/status AUTH
ตรวจสอบสถานะการสร้างของผลงาน (มีประโยชน์หากคุณกำลังติดตามบันทึกการสร้าง)
curl https://generor.com/api/v1/creations/12345/status \
-H "Authorization: Bearer gnr_live_..."
ค่าสถานะ: pending, generating, completed, failed, cancelled
PATCH /creations/{id} AUTH
อัปเดตผลงานที่คุณเป็นเจ้าของ
curl -X PATCH https://generor.com/api/v1/creations/12345 \
-H "Authorization: Bearer gnr_live_..." \
-H "Content-Type: application/json" \
-d '{"privacy_mode": 1, "license": 2}'
| ฟิลด์ | ค่านิยม |
|---|---|
privacy_mode | 0 (สาธารณะ), 1 (ส่วนตัว) |
license | 1 (Open GO-1.0), 2 (Exclusive GE-1.0) |
DELETE /creations/{id} AUTH
ลบผลงานที่คุณเป็นเจ้าของ (ลบแบบนุ่มนวล)
curl -X DELETE https://generor.com/api/v1/creations/12345 \
-H "Authorization: Bearer gnr_live_..."
โมเดล
GET /models
แสดงรายการโมเดล AI ที่ใช้ได้ทั้งหมดโดยจัดกลุ่มตามประเภท
curl https://generor.com/api/v1/models
GET /models/{type}
แสดงรายการโมเดลสำหรับประเภทที่ระบุ
curl https://generor.com/api/v1/models/image
ประเภทที่ถูกต้อง: text, image, video, speech, music, soundeffect, upscale, vector, backgroundremoval
การตอบกลับต่อโมเดล:
{
"id": 10001,
"name": "Flux 1.1 Pro",
"type": "image",
"provider": "replicate",
"description": "High-quality image generation...",
"credit_cost": 80,
"supports_img2img": true,
"supports_aspect_ratio": true
}
โมเดลวิดีโอ รวมโครงสร้างความสามารถของผู้ให้บริการแบบเต็มเพิ่มเติม:
{
"id": 20061,
"name": "Dreamina Seedance 2.0 (720p)",
"type": "video",
"provider": "byteplus",
"credit_cost": 6,
// Duration constraints
"supported_durations": [5, 6, 7, 8, 10, 12, 15],
"default_duration": 8,
// Audio toggle
"supports_audio": true,
"audio_cost_multiplier": 1,
// End-frame anchoring (pass `ending_frame_url` on /generate)
"supports_end_frame": true,
// Resolution variants — same model at different qualities lives at
// different model_ids. Switch quality by picking the matching id.
"quality": "720p",
"default_quality": "720p",
"qualities": { "480p": 20060, "720p": 20061, "1080p": 20062 },
"group_slug": "dreamina-seedance-2-direct",
"group_name": "Dreamina Seedance 2.0",
// Aspect ratios accepted on /generate
"supports_aspect_ratio": true,
"aspect_ratios": [
{ "id": 1, "ratio": "16:9", "label": "Wide" },
{ "id": 2, "ratio": "9:16", "label": "Tall" }
]
}
โมเดลภาพ ที่แตกต่างกันตามอัตราส่วนภาพจะมีอาร์เรย์ aspect_ratios ที่เทียบเท่า (ฝั่งรูปภาพมี 6 รายการ: สี่เหลี่ยมจัตุรัส, แนวตั้ง, แนวนอน, กว้าง, สูง, รวมถึง match_input_image สำหรับโหมด img2img)
วิธีใช้ช่องเหล่านี้
supported_durations— ส่งค่าใดก็ได้ที่นี่ผ่านsecondsค่าที่ไม่รองรับจะถูกปรับฝั่งเซิร์ฟเวอร์และรายงานภายใต้adjustments.secondsqualities— หากต้องการเปลี่ยนความละเอียด ให้ค้นหาmodel_idสำหรับความละเอียดที่คุณต้องการแล้วส่งค่านั้นเป็นmodel_idของคุณ (ความละเอียดเป็นโมเดลในกลุ่มเดียวกัน ไม่ใช่พารามิเตอร์ขณะรันไทม์)supports_audio— เมื่อtrueคุณสามารถส่ง"generate_audio": trueตอน/generateได้ เมื่อfalseแฟล็กนี้จะถูกละเว้นsupports_end_frame— เมื่อtrueคุณสามารถจับคู่image_url(เฟรมเริ่มต้น) กับending_frame_urlเพื่อการเปลี่ยนผ่านหรือลูปที่ราบรื่นได้aspect_ratios— ส่งid(จำนวนเต็ม) หรือratio(สตริง) ภายใต้ฟิลด์aspect_ratioบน/generateใช้ได้ทั้งสองรูปแบบ
GET /models/{type}/{id}
รับรายละเอียดและราคาของโมเดลที่ระบุ
curl https://generor.com/api/v1/models/image/10001
ผู้ใช้
GET /users/me AUTH
รับโปรไฟล์ ยอดเครดิตคงเหลือ และสถิติของคุณ
curl https://generor.com/api/v1/users/me \
-H "Authorization: Bearer gnr_live_..."
การตอบกลับ:
{
"success": true,
"data": {
"user_id": 42,
"username": "johndoe",
"email": "john@example.com",
"avatar": null,
"bio": "I make things with AI",
"website": "https://example.com",
"joined": "2025-01-15 10:30:00",
"credits": {
"total": 1250,
"paid": 1000,
"free": 200,
"earned": 50,
"max": 250
},
"creation_count": 347,
"follower_count": 12,
"following_count": 5,
"teams": [...]
}
}
PATCH /users/me AUTH
อัปเดตโปรไฟล์ของคุณ
curl -X PATCH https://generor.com/api/v1/users/me \
-H "Authorization: Bearer gnr_live_..." \
-H "Content-Type: application/json" \
-d '{"bio": "Updated bio", "website": "https://example.com"}'
GET /users/{username}
รับโปรไฟล์สาธารณะของผู้ใช้
curl https://generor.com/api/v1/users/johndoe
GET /users/{username}/creations
แสดงรายการผลงานสาธารณะของผู้ใช้ รองรับการแบ่งหน้า
GET /users/{username}/followers
แสดงรายชื่อผู้ติดตามของผู้ใช้ รองรับการแบ่งหน้า
GET /users/{username}/following
แสดงรายชื่อผู้ที่ผู้ใช้ติดตาม รองรับการแบ่งหน้า
POST /users/{username}/follow AUTH
ติดตามผู้ใช้
curl -X POST https://generor.com/api/v1/users/johndoe/follow \
-H "Authorization: Bearer gnr_live_..."
DELETE /users/{username}/follow AUTH
เลิกติดตามผู้ใช้
GET /users/{username}/follow AUTH
ตรวจสอบว่าคุณติดตามผู้ใช้หรือไม่ ส่งคืน {"following": true/false}
ทีม
เอนด์พอยต์ของทีมทั้งหมดต้องมีการยืนยันตัวตน
GET /teams AUTH
แสดงรายการทีมของคุณ
POST /teams AUTH
สร้างทีมใหม่
curl -X POST https://generor.com/api/v1/teams \
-H "Authorization: Bearer gnr_live_..." \
-H "Content-Type: application/json" \
-d '{"name": "My Creative Team"}'
GET /teams/{id} AUTH
รับรายละเอียดทีมพร้อมรายชื่อสมาชิก
DELETE /teams/{id} AUTH
ออกจากทีม
POST /teams/{id}/members AUTH
เพิ่มสมาชิกด้วยชื่อผู้ใช้: {"username": "janedoe"}
DELETE /teams/{id}/members/{user_id} AUTH
ลบสมาชิกทีม (เฉพาะเจ้าของ)
POST /teams/join/{invite_code} AUTH
เข้าร่วมทีมด้วยรหัสเชิญ
POST /teams/{id}/invite AUTH
สร้างรหัสเชิญใหม่ (เฉพาะเจ้าของ)
GET /teams/{id}/creations AUTH
แสดงรายการผลงานของทีม รองรับการแบ่งหน้า
ความคิดเห็น
GET /creations/{id}/comments
แสดงรายการความคิดเห็นบนผลงาน รองรับการแบ่งหน้า
curl https://generor.com/api/v1/creations/12345/comments
POST /creations/{id}/comments AUTH
เพิ่มความคิดเห็น
curl -X POST https://generor.com/api/v1/creations/12345/comments \
-H "Authorization: Bearer gnr_live_..." \
-H "Content-Type: application/json" \
-d '{"text": "Great creation!", "parent_id": null}'
DELETE /comments/{id} AUTH
ลบความคิดเห็นของคุณเอง
POST /comments/{id}/vote AUTH
โหวตความคิดเห็น: {"vote": "up"} หรือ {"vote": "down"}
คะแนน
GET /creations/{id}/rating
รับคะแนนเฉลี่ยของผลงาน
// Response:
{"success": true, "data": {"creation_id": 12345, "average": 4.2, "count": 15}}
POST /creations/{id}/rating AUTH
ให้คะแนนผลงาน (1-5) จะอัปเดตคะแนนเดิมหากเคยให้คะแนนแล้ว
curl -X POST https://generor.com/api/v1/creations/12345/rating \
-H "Authorization: Bearer gnr_live_..." \
-H "Content-Type: application/json" \
-d '{"score": 5}'
เครดิต
เครดิตคือระบบการชำระเงินที่ใช้สำหรับการสร้างด้วย AI กำหนดมูลค่าเป็น USD
GET /credits/balance AUTH
รับยอดเครดิตคงเหลือปัจจุบันของคุณ
curl https://generor.com/api/v1/credits/balance \
-H "Authorization: Bearer gnr_live_..."
// Response:
{
"success": true,
"data": {
"total": 1250,
"paid": 1000,
"free": 200,
"earned": 50,
"max": 250
}
}
GET /credits/transactions AUTH
รับประวัติธุรกรรมเครดิต
curl "https://generor.com/api/v1/credits/transactions?type=spend&page=1" \
-H "Authorization: Bearer gnr_live_..."
พารามิเตอร์การสืบค้น: type (spend, purchase, daily_bonus, weekly_bonus, signup_bonus, refund, gift_sent, gift_received), page, per_page
ฟีด
GET /feed AUTH
รับผลงานสาธารณะจากผู้ใช้ที่คุณติดตาม
curl "https://generor.com/api/v1/feed?generator=image&page=1" \
-H "Authorization: Bearer gnr_live_..."
พารามิเตอร์การสืบค้น: generator (กรองตาม slug), page, per_page
คีย์ API
จัดการคีย์ API ของคุณเองผ่านโปรแกรม ทุกเอ็นด์พอยต์ต้องมีการยืนยันตัวตน
GET /api-keys AUTH
แสดงรายการ API key ของคุณ (แสดงคำนำหน้า ไม่ใช่คีย์เต็ม)
POST /api-keys AUTH
สร้าง API key ใหม่ คีย์แบบเต็มจะแสดง เพียงครั้งเดียว ในการตอบกลับ
curl -X POST https://generor.com/api/v1/api-keys \
-H "Authorization: Bearer gnr_live_..." \
-H "Content-Type: application/json" \
-d '{"name": "My App", "scopes": ["read", "generate"]}'
// Response (201):
{
"success": true,
"data": {
"key_id": 1,
"api_key": "gnr_live_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0",
"prefix": "gnr_live_a1b2c3d4",
"name": "My App",
"scopes": ["read", "generate"],
"message": "Save this API key now. It will not be shown again."
}
}
สูงสุด 10 คีย์ที่ใช้งานอยู่ต่อบัญชี
DELETE /api-keys/{id} AUTH
เพิกถอน API key (ปิดการใช้งานทันที)
รหัสข้อผิดพลาด
| โค้ด | สถานะ HTTP | คำอธิบาย |
|---|---|---|
UNAUTHORIZED | 401 | ไม่พบหรือ API key ไม่ถูกต้อง |
FORBIDDEN | 403 | คีย์ถูกต้องแต่สิทธิ์หรือสโคปไม่เพียงพอ |
NOT_FOUND | 404 | ไม่พบทรัพยากร |
METHOD_NOT_ALLOWED | 405 | ไม่รองรับเมธอด HTTP สำหรับเอนด์พอยต์นี้ |
VALIDATION_ERROR | 400 | พารามิเตอร์ที่ป้อนไม่ถูกต้อง |
INSUFFICIENT_CREDITS | 402 | เครดิตไม่เพียงพอสำหรับการสร้าง |
RATE_LIMIT_EXCEEDED | 429 | คำขอมากเกินไป ตรวจสอบส่วนหัว Retry-After |
SERVER_ERROR | 500 | เกิดข้อผิดพลาดภายในเซิร์ฟเวอร์ |
