# விரைவுத் தொடக்கம்

சில நிமிடங்களில் உங்கள் முதல் உருவாக்கத்தை இயக்குங்கள். அனைத்து 1,496 மாதிரிகளும் ஒரே வகையான கோரிக்கையை ஏற்று, படம், வீடியோ மற்றும் ஆடியோவுக்காக ஒரே கோரிக்கைப் பொருளைத் திருப்பியளிக்கின்றன: இதை இங்கே ஒருமுறை கற்றுக்கொள்ளுங்கள்.

> [!NOTE]
> அடிப்படை URL `https://api.doitong.ru/v1`. ஒவ்வொரு அழைப்பும் `Authorization: Bearer <your key>`-ஐ அனுப்பும்; அதே விசை HTTP
> API மற்றும் MCP சேவையகம் இரண்டிலும் செயல்படும்.

## 1. API விசையைப் பெறுங்கள்

[https://doitong.com/developers/dashboard#keys](https://doitong.com/developers/dashboard#keys)-ல் ஒரு விசையை உருவாக்கி, அதைச் சூழல் மாறியில் வைத்திருங்கள்: அது ஒருமுறை மட்டுமே காட்டப்படும். ஒவ்வொரு விசைக்கும் தனிப்பட்ட பட்ஜெட்டை வைத்திருக்க முடியும்; எனவே முழுக் கணக்கையும் ஆபத்தில் ஆழ்த்தாமல் ஒரு முகவரிடம் ஒன்றைக் கொடுக்கலாம். `GET /account` உங்கள் API இருப்பைத் திருப்பியளிக்கும்.

```bash
export DOITONG_API_KEY="doitong_..."

curl "https://api.doitong.ru/v1/account" \
  -H "Authorization: Bearer $DOITONG_API_KEY"
```
```javascript
const res = await fetch("https://api.doitong.ru/v1/account", {
  headers: { Authorization: `Bearer ${process.env.DOITONG_API_KEY}` },
});

console.log(await res.json());
```
```python
import os
import requests

r = requests.get(
    "https://api.doitong.ru/v1/account",
    headers={"Authorization": f"Bearer {os.environ['DOITONG_API_KEY']}"},
)
print(r.json())
```

உங்கள் கணக்கின் **API இருப்பிலிருந்து** API கிரெடிட்களில் கட்டணம் வசூலிக்கப்படும்: 1,000 API கிரெடிட்கள் = $1; ஒவ்வொரு மாதிரிக்கும் அதன் தயாரிப்பாளரின் விலையே துல்லியமாக இருக்கும். [https://doitong.ru/developers/dashboard#balance](https://doitong.ru/developers/dashboard#balance)-ல் மீள்நிரப்புங்கள்.

## 2. விலையைப் பெற்று, பின்னர் இயக்குங்கள்

`POST /quote/{model_id}` உள்ளீட்டு JSON-ஐ ஏற்று, துல்லியமான விலையைத் திருப்பியளிக்கும். இதற்கு விசை தேவையில்லை; கட்டணமும் இல்லை. அதே உள்ளீட்டை இயக்குவதற்கான கட்டணம் அதே விலையாகும்: விலைக் கணிப்பே கட்டணம். (பயன்பாட்டின் அடிப்படையில் கட்டணம் வசூலிக்கப்படும் மாதிரி மட்டும் விதிவிலக்கு: அதன் விலைக் கணிப்பு, இயக்கத்திற்கான அதிகபட்சச் செலவாகும்; பயன்படுத்தப்படாத பகுதி இயக்கம் முடிந்த பிறகு பணமாகத் திருப்பியளிக்கப்படும்.)

```bash
curl -X POST "https://api.doitong.ru/v1/quote/kling-video/v3/pro/image-to-video" \
  -H "Content-Type: application/json" \
  -d '{"image": "https://example.com/fox.jpg", "duration": 5, "generate_audio": true}'
```
```javascript
const res = await fetch("https://api.doitong.ru/v1/quote/kling-video/v3/pro/image-to-video", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({ image: "https://example.com/fox.jpg", duration: 5, generate_audio: true }),
});

const quote = await res.json();
console.log(quote.credits, quote.usd); // 840 "0.84"
```
```python
import requests

r = requests.post(
    "https://api.doitong.ru/v1/quote/kling-video/v3/pro/image-to-video",
    json={"image": "https://example.com/fox.jpg", "duration": 5, "generate_audio": True},
)
print(r.json()["credits"], r.json()["usd"])  # 840 0.84
```

```json 200 OK · விலைக் கணிப்பு
{
  "object": "quote",
  "model": "kling-video/v3/pro/image-to-video",
  "credits": 840,
  "usd": "0.84",
  "unit": "second",
  "quantity": 5,
  "unit_credits": 168,
  "mode": "exact",
  "breakdown": "5 s × 168 API credits"
}
```

பின்னர் அதே உடலை `POST /run/{model_id}`-க்கு அனுப்புங்கள். இணைப்பை அதிகபட்சம் 20 வினாடிகள் வைத்திருக்க `?wait=20`-ஐச் சேர்க்கவும்: வேகமான மாதிரி, முடிக்கப்பட்ட முடிவை ஒரே சுற்றுப் பயணத்தில் திருப்பியளிக்கும். மீண்டும் முயற்சிக்கும்போது இயக்கம் (அல்லது கட்டணம்) இருமுறை நடைபெறாதபடி `Idempotency-Key` தலைப்பை அனுப்புங்கள்.

```bash
curl -X POST "https://api.doitong.ru/v1/run/flux/schnell?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: lighthouse-001" \
  -d '{"prompt": "A lighthouse on a rocky coast at dusk, warm light in the window"}'
```
```javascript
const res = await fetch("https://api.doitong.ru/v1/run/flux/schnell?wait=20", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.DOITONG_API_KEY}`,
    "Content-Type": "application/json",
    "Idempotency-Key": "lighthouse-001",
  },
  body: JSON.stringify({ prompt: "A lighthouse on a rocky coast at dusk, warm light in the window" }),
});

const request = await res.json();
console.log(request.status, request.outputs[0]?.url);
```
```python
import os
import requests

r = requests.post(
    "https://api.doitong.ru/v1/run/flux/schnell",
    params={"wait": 20},
    headers={
        "Authorization": f"Bearer {os.environ['DOITONG_API_KEY']}",
        "Idempotency-Key": "lighthouse-001",
    },
    json={"prompt": "A lighthouse on a rocky coast at dusk, warm light in the window"},
)
request = r.json()
print(request["status"], request["outputs"][0]["url"] if request["outputs"] else None)
```

பதில் ஒரு கோரிக்கைப் பொருளாகும்:

```json 200 OK · கோரிக்கை
{
  "id": "req_8k2m4q7x1z9c3v5b6n0p2r4t",
  "object": "request",
  "model": "flux/schnell",
  "status": "succeeded",
  "cost": { "credits": 3, "usd": "0.003", "charged": 3, "refunded": 0 },
  "outputs": [
    { "type": "image", "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
      "content_type": "image/jpeg", "width": 1024, "height": 768, "stored": true }
  ],
  "error": null
}
```

## 3. நிலையைப் பின்தொடருங்கள்

காத்திருப்பு நேரம் முடியும் போது மாதிரி இன்னும் செயல்பட்டுக்கொண்டிருந்தால், கோரிக்கையின் `id` மற்றும் தற்போதைய `status` உடன் `202 Accepted` கிடைக்கும். ஒவ்வொரு கோரிக்கையும் ஒரே வாழ்க்கைச் சுழற்சியில் நகரும்:

கோரிக்கை வாழ்க்கைச் சுழற்சி: `queued` → `running` → `succeeded` | `failed` | `canceled` (இறுதி; தோல்வியுற்றதும் ரத்துசெய்யப்பட்டதும் API கிரெடிட்கள் திருப்பியளிக்கப்படும்).

அதன் id-ஐப் பயன்படுத்தி கோரிக்கையை மீண்டும் வாசியுங்கள். இங்கும் `?wait=20` செயல்படும்; எனவே எளிய சுழற்சி போதுமானது:

```bash
curl "https://api.doitong.ru/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY"
```
```javascript
const headers = { Authorization: `Bearer ${process.env.DOITONG_API_KEY}` };
let request = await (await fetch("https://api.doitong.ru/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t?wait=20", { headers })).json();

while (request.status === "queued" || request.status === "running") {
  const res = await fetch(`https://api.doitong.ru/v1/requests/${request.id}?wait=20`, { headers });
  request = await res.json();
}

console.log(request.status, request.outputs[0]?.url);
```
```python
import os
import requests

headers = {"Authorization": f"Bearer {os.environ['DOITONG_API_KEY']}"}
request = {"id": "req_8k2m4q7x1z9c3v5b6n0p2r4t", "status": "queued"}

while request["status"] in ("queued", "running"):
    request = requests.get(
        f"https://api.doitong.ru/v1/requests/{request['id']}",
        params={"wait": 20},
        headers=headers,
    ).json()

print(request["status"], request["outputs"][0]["url"] if request["outputs"] else None)
```

`status` என்பது `succeeded` ஆக இருக்கும்போது, `outputs[].url` எங்கள் சேமிப்பகத்தில் உள்ள கோப்புகளுக்கான இணைப்புகளைக் கொண்டிருக்கும். கோரிக்கை `failed` அல்லது `canceled` ஆனால், அதன் API கிரெடிட்கள் தானாகவே பணமாகத் திருப்பியளிக்கப்படும்; அதற்கான காரணத்தை `error` தெரிவிக்கும். இன்னும் `queued` அல்லது `running` நிலையில் உள்ள எதையும் ரத்து செய்யுங்கள்:

```bash
curl -X POST "https://api.doitong.ru/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/cancel" \
  -H "Authorization: Bearer $DOITONG_API_KEY"
```

நீண்ட வீடியோப் பணிகளுக்கு, நிலையைத் தொடர்ந்து கேட்பதைத் தவிர்த்து, அதற்குப் பதிலாக `webhook_url`-ஐ அனுப்பலாம் ([வெப்ஹுக்குகள்](https://doitong.com/developers/docs/webhooks)-ஐப் பார்க்கவும்).

## 4. கோப்புகள்

எந்தப் பொதுவான URL-ஐயும் உள்ளீடாக அனுப்பலாம்; அல்லது பதிவேற்ற URL-க்காக `POST /files`-ஐக் கேட்டு, அங்கு கோப்பை `PUT` செய்து, திரும்பிய `file_url`-ஐப் பயன்படுத்தலாம் ([கோப்புகள்](https://doitong.com/developers/docs/files)-ஐப் பார்க்கவும்). வெற்றிகரமான கோரிக்கை, அதன் முடிவுகளை `outputs[]`-ல் வகை, உள்ளடக்க வகை மற்றும் தெரிந்திருந்தால் பரிமாணங்கள், கால அளவு ஆகியவற்றுடன் பட்டியலிடும்.

```bash
curl -X POST "https://api.doitong.ru/v1/files" \
  -H "Authorization: Bearer $DOITONG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"filename": "fox.jpg", "content_type": "image/jpeg", "size": 482113}'
```

> [!TIP]
> **கோப்புகளை நிரந்தரமாக வைத்திருக்கவா, அல்லது 7 நாட்களுக்கு இலவசமாக வைத்திருக்கவா: உங்கள் தேர்வு.** கோரிக்கை வெற்றியடையும் முன் வெளியீட்டு கோப்புகள் எங்கள் சேமிப்பகத்திற்கு நகலெடுக்கப்படும். இயல்புநிலையாக, அவற்றை நீங்கள் நீக்கும் வரை வைத்திருப்போம் (ஒரு GB-க்கு மாதத்திற்கு 100 API கிரெடிட்கள்); அவற்றை அணைக்க டாஷ்போர்டில் "கோப்பை நிரந்தரமாக வைத்திருக்கவும்"-ஐ மாற்றவும், அல்லது 7 நாட்களுக்கு இலவசமாக வைத்திருக்க `?storage=temporary`-ஐ அனுப்பவும் ([கோப்புகள்](https://doitong.com/developers/docs/files#storage)-ஐப் பார்க்கவும்).

## பிழைகள்

ஒவ்வொரு மாதிரியும் ஒரே விதத்தில் தோல்வியடையும்: `type`, துல்லியமான `code`, சிக்கலை ஏற்படுத்திய `param` மற்றும் ஒவ்வொரு பிரச்சினையும் `details`-ல் கொண்ட ஒரு உறை; இதனால் உரையைப் படிக்காமல் ஒரு முகவர் கோரிக்கையைச் சரிசெய்ய முடியும். தவறான கோரிக்கைக்கு எந்தக் கட்டணமும் வசூலிக்கப்படாது.

```json 422 Unprocessable Entity
{
  "error": {
    "type": "invalid_request",
    "code": "invalid_input",
    "message": "duration must be one of 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15.",
    "param": "duration",
    "details": [ { "param": "duration", "message": "duration must be one of 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15." } ],
    "request_id": null,
    "doc_url": "https://doitong.com/developers/docs/errors#invalid_input"
  }
}
```

ஒவ்வொரு வகையும் குறியீடும் [பிழைகள்](https://doitong.com/developers/docs/errors)-ல் பட்டியலிடப்பட்டுள்ளன.

## விலை நிர்ணயம்

விலைகள் USD மற்றும் API கிரெடிட்களில் இருக்கும்; இயக்குவதற்கு முன் ஒவ்வொரு மாதிரிப் பக்கத்திலும் காட்டப்படும். ஒவ்வொரு கோரிக்கையும் `credits`, `usd`, `charged` மற்றும் `refunded` ஆகியவற்றைக் கொண்ட `cost`-ஐப் பெறும். கோரிக்கை ஏற்கப்படும் போது அதற்குக் கட்டணம் வசூலிக்கப்படும்; `failed` மற்றும் `canceled` கோரிக்கைகளுக்கான தொகை தானாகவே பணமாகத் திருப்பியளிக்கப்படும். சில மாதிரிகளின் விலை உள்ளீட்டிலிருந்து துல்லியமாகக் கணக்கிடப்படும்; சிலவற்றின் விலை நீங்கள் அனுப்பும் கோப்புகளின் நீளம் அல்லது அளவை அடிப்படையாகக் கொண்டிருக்கும்; மற்றவை *ஒரு இயக்கத்திற்கான மதிப்பிடப்பட்ட விலையாக* கட்டணம் வசூலிக்கும்: எந்த வகையிலாயினும், விலைக் கணிப்பில் உள்ளதே நீங்கள் செலுத்தும் தொகை. சில மாதிரிகளுக்கு (மொழி மற்றும் பார்வை மாதிரிகள், குரல், செயலாக்க நேரக் கருவிகள்) *பயன்பாட்டின் அடிப்படையில்* கட்டணம் வசூலிக்கப்படும்: விலைக் கணிப்பு என்பது இயக்கத்திற்கான அதிகபட்சச் செலவு; இயக்கம் பயன்படுத்தாத பகுதி தானாகவே பணமாகத் திருப்பியளிக்கப்படும். [விலை நிர்ணயம்](https://doitong.com/developers/docs/pricing)-ஐப் பார்க்கவும்.

## MCP மற்றும் AI முகவர்கள்

அதே Bearer விசையைப் பயன்படுத்தி எந்த MCP கிளையண்டையும் `https://api.doitong.ru/v1/mcp`-க்கு இணைக்கவும். உங்கள் முகவர் பட்டியலைத் தேடவும், மாதிரிகளுக்கான விலையைப் பெற்று இயக்கவும், ஒவ்வொரு ஆவணப் பக்கத்தையும் Markdown ஆகப் படிக்கவும் முடியும்.

```bash Claude Code
claude mcp add --transport http doitong-models https://api.doitong.ru/v1/mcp \
  --header "Authorization: Bearer YOUR_API_KEY"
```

## அடுத்த படிகள்

- [அனைத்து மாதிரிகளையும்](https://doitong.com/developers/models) உலாவுங்கள். ஒவ்வொரு பக்கத்திலும் உங்களுக்கான குறியீட்டை எழுதும் கோரிக்கை உருவாக்கி உள்ளது.
- கோரிக்கை வாழ்க்கைச் சுழற்சியை அறிந்துகொள்ளுங்கள்: [கோரிக்கைகள்](https://doitong.com/developers/docs/requests).
- ஒவ்வொரு மாதிரியிலும் அதே அளவுருப் பெயர்களைப் பயன்படுத்துங்கள்: [அளவுருக்கள்](https://doitong.com/developers/docs/parameters).
- AI குறியீட்டு முகவருடன் பணிபுரிகிறீர்களா? அதற்கு [https://doitong.com/developers/llms.txt](https://doitong.com/developers/llms.txt)-ஐ வழங்குங்கள் அல்லது [MCP சேவையகத்துடன்](https://doitong.com/developers/docs/mcp) இணைக்கவும்.
