---
title: "आउटबाउंड कॉल करा (API)"
description: "तुमच्या स्वतःच्या कोडमधून AI-चालित आउटबाउंड कॉल ट्रिगर करा — सर्वेक्षण, फॉलो-अप किंवा पुष्टीकरण प्रवाहांसाठी."
---

आउटबाउंड कॉलिंगमुळे तुम्ही ThunderPhone ला गंतव्य क्रमांक आणि एजंट
कॉन्फिगरेशन देऊ शकता आणि AI तुमच्या वतीने कॉल करू शकतो. सामान्य वापर प्रकरणे:

- नियोजित भेटींची पुष्टी
- सर्वेक्षणासाठी परतीचे कॉल
- चुकलेल्या कॉलनंतरचे "दुसऱ्या प्रयत्नाचे" फॉलो-अप
- प्रेषण-शैलीतील सूचना

<Note>
  संपूर्ण यादीला कॉल करत आहात? डॅशबोर्डमधील
  [**मोहीम**](/mr/guides/outbound-campaigns) वैशिष्ट्य
  (`/dashboard/campaigns`) संपर्कांची CSV फाइल घेते आणि
  टाइमझोन-जाणकार कॉलिंग विंडो, समांतरता आणि पुन्हा-प्रयत्न धोरण
  तुमच्यासाठी हाताळते. हे मार्गदर्शक एकल प्रोग्रामॅटिक कॉल्सबद्दल आहे.
</Note>

## पूर्वअट

<Steps>
  <Step title="VoIP क्रमांक आणा">
    आउटबाउंड कॉलिंगसाठी तुम्ही `from_number` चा मालक असणे आवश्यक आहे, जो
    [VoIP कनेक्शन](/api-reference/voip-connections) द्वारे असतो. ThunderPhone क्रमांक
    केवळ इनबाउंडसाठी आहेत. पहा
    [तुमचे स्वतःचे क्रमांक आणा](/mr/guides/bring-your-own-numbers).
  </Step>
  <Step title="एजंट तयार करा">
    आउटबाउंड-केंद्रित prompt सहसा एजंट स्वतःची आणि त्याच्या उद्देशाची
    ओळख करून देण्यापासून सुरू होतो — "नमस्कार, Acme कडून बोलत आहे; उद्या
    दुपारी 3 वाजताच्या तुमच्या भेटीची पुष्टी करण्यासाठी कॉल केला आहे…" 
    `outbound_speak_order` हे `agent_first` वर सेट करा (हे डीफॉल्ट आहे).
  </Step>
  <Step title="सकारात्मक शिल्लक ठेवा">
    शिल्लक ≤ `$0.00` असल्यास आउटबाउंड कॉल्स `402 Payment Required`
    परत करतात. यामार्फत शिल्लक भरा
    [`POST /v1/billing/top-up`](/api-reference/billing#top-up-balance)
    किंवा [स्वयंचलित रीलोड](/api-reference/billing#update-auto-reload) सक्षम करा.
  </Step>
</Steps>

## जतन केलेल्या एजंटसह कॉल करा

सर्वात सोपा मार्ग — ID द्वारे एजंटचा संदर्भ द्या:

```bash
curl -X POST https://api.thunderphone.com/v1/call \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "from_number": "+15551234567",
    "to_number":   "+14155550199",
    "agent_id":    12
  }'
```

प्रतिसाद:

```json
{ "call_id": 987654321, "status": "initiated" }
```

<Warning>
  `status: "initiated"` याचा अर्थ फक्त विनंती स्वीकारली गेली आहे — कॉल
  **अजून जोडलेला नाही**. लाइव्ह स्थितीसाठी
  [`GET /v1/calls/{call_id}`](/api-reference/calls#retrieve-a-call)
  पोल करा (`in_progress` → `completed` / `failed`).
</Warning>

## इनलाइन कॉन्फिगरेशनसह कॉल करा

एजंट म्हणून जतन करणे योग्य नसेल असा एकदाच वापरायचा prompt हवा असल्यास,
त्याऐवजी `config` पाठवा. त्याचा आकार
[`call.incoming` webhook](/mr/webhooks/call-incoming) च्या
प्रतिसाद स्कीमाशी जुळतो:

```bash
curl -X POST https://api.thunderphone.com/v1/call \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "from_number": "+15551234567",
    "to_number":   "+14155550199",
    "config": {
      "prompt":  "You are confirming Jane Doe appointment for 3pm tomorrow…",
      "voice":   "john",
      "product": "spark"
    }
  }'
```

## कॉलचे निरीक्षण करा

समांतरपणे,
[`telephony.complete` webhook](/mr/webhooks/events) ची सदस्यता घ्या —
कॉल संपल्याचे जाणून घेण्याचा हा सर्वात जलद मार्ग आहे. तुम्ही इनबाउंड
webhook स्वीकारू शकत नसल्यास, दर काही सेकंदांनी `GET /v1/calls/{call_id}`
पोल करा; कॉल संपल्यानंतर नोंदीमध्ये `end_reason`, `duration_seconds` आणि
रेकॉर्डिंग URL समाविष्ट असतो.

## हाताळण्यासारखे अयशस्वी प्रकार

| त्रुटी | उपाय |
|-------|-----|
| `402 Payment Required` | शिल्लक भरा किंवा स्वयंचलित रीलोड सक्षम करा |
| `403` आउटबाउंड अवरोधित (ThunderPhone क्रमांक) | त्याऐवजी VoIP क्रमांक आणा |
| `403` आउटबाउंड अवरोधित (असत्यापित VoIP) | [`POST /v1/phone-numbers/{id}/verify-voip`](/api-reference/phone-numbers#verify-a-voip-sourced-number) चालवा |
| `404 from_number is not registered to this organization` | `from_number` तुमच्या मालकीच्या फोन क्रमांकाशी जुळत असल्याची खात्री करा |
| `502 Bad Gateway` | तात्पुरते SIP / LiveKit अयशस्वी होणे; पुन्हा प्रयत्न करणे सुरक्षित आहे |

## होल्ड वेळ नियंत्रित करणे

कॉल स्वीकारणाऱ्या व्यक्तीकडून प्रतिसाद मिळण्यास विलंब झाल्यामुळे लांबणारे आउटबाउंड कॉल
(IVR ट्री, रांगा) `max_hold_seconds` वापरून मर्यादित करता येतात:

```json
{
  "from_number": "+15551234567",
  "to_number":   "+14155550199",
  "agent_id":    12,
  "max_hold_seconds": 120
}
```

मागील N सेकंदांत कोणताही मानवी आवाज प्राप्त न झाल्यास एजंट कॉल बंद करतो. डीफॉल्ट 900 (15 मिनिटे) आहे.

---

## पुढील पायऱ्या

<CardGroup cols={2}>
  <Card title="आउटबाउंड कॉल संदर्भ" icon="phone-arrow-up-right" href="/api-reference/outbound-calls">
    प्रत्येक विनंती फील्ड आणि त्रुटी कोड.
  </Card>
  <Card title="call.complete प्राप्त करा" icon="bolt" href="/mr/webhooks/call-complete">
    पूर्ण झालेले आउटबाउंड कॉल तुमच्या सिस्टीममध्ये स्ट्रीम करा.
  </Card>
  <Card title="बिलिंग" icon="credit-card" href="/api-reference/billing">
    शिल्लकमुळे आउटबाउंड कधीही अयशस्वी होऊ नये यासाठी ऑटो-रीलोड.
  </Card>
  <Card title="आउटबाउंड एजंटची चाचणी करा" icon="flask" href="/mr/guides/test-agents">
    प्रॉडक्शनपूर्वी तुमचा आउटबाउंड एजंट ड्राय-रन करा.
  </Card>
</CardGroup>
