> ## Documentation Index
> Fetch the complete documentation index at: https://docs.chatsyncs.com/llms.txt
> Use this file to discover all available pages before exploring further.

# HTTP API

> Connect ChatSyncs to any external REST API under Chatbot Manager → Integrations → HTTP API — configure the endpoint, headers, body, test it, and map the response into bot variables, or let the AI API Builder generate the whole configuration. Use this when a customer wants their bot to call their own order/CRM/payment/booking system.

<Frame caption="Chatbot Manager → Integrations → HTTP API, with the Create button highlighted.">
  <img src="https://mintcdn.com/chatsyncs/PTtHXP_ubZykUEIJ/images/learn/whatsapp-http-api-integration/step-01-http-api-list.png?fit=max&auto=format&n=PTtHXP_ubZykUEIJ&q=85&s=696f8ef853066496d8a1ae5879475c76" alt="ChatSyncs left navigation with Chatbot Manager selected, the Integrations tab highlighted, the HTTP API sub-tab highlighted, and the HTTP API list with a Create button" width="1268" height="546" data-path="images/learn/whatsapp-http-api-integration/step-01-http-api-list.png" />
</Frame>

**Chatbot Manager → Integrations → HTTP API** connects ChatSyncs to any
external REST API (**GET**, **POST**, **PUT**, **PATCH**, **DELETE**) — the general-purpose way
to hook a bot flow up to a system ChatSyncs doesn't natively integrate with: a CRM, an order
tracker, a payment gateway, a booking system, an ERP, or an inventory system.

## Add HTTP API

<Frame>
  <img src="https://mintcdn.com/chatsyncs/PTtHXP_ubZykUEIJ/images/learn/whatsapp-http-api-integration/step-02-add-http-api.png?fit=max&auto=format&n=PTtHXP_ubZykUEIJ&q=85&s=64d2a9d362cb111500848abb6482dd6e" alt="Add HTTP API page showing the four-step flow: API Details, Request Data, Test and Verify, Response Mapping, with an AI API Builder panel on the right" width="1127" height="489" data-path="images/learn/whatsapp-http-api-integration/step-02-add-http-api.png" />
</Frame>

**Real-world example:** an e-commerce store wants its bot to answer "Where is my order?" by
calling its own Order API.

> **Customer:** Where is my order?
> **Bot:** Please enter your Order ID.
> **Customer:** ORD12345

The bot sends an HTTP request to the store's Order API and gets back:

```json theme={null}
{
  "order_id": "ORD12345",
  "status": "Shipped",
  "courier": "BlueDart",
  "tracking_id": "BD987654321"
}
```

The bot replies:

> Your order has been **Shipped** via **BlueDart**.
> Tracking ID: **BD987654321**

Here's the full four-step setup that makes that possible:

<Steps>
  <Step title="API Details">
    Enter the **API Name** (e.g. `Get Order Details`), **Method** (e.g. `POST`), and
    **API Endpoint URL** (e.g. `https://api.mystore.com/orders/details`).
  </Step>

  <Step title="Request Data">
    Choose the request **Body** format — **Default**, **Form Data**,
    **x-www-form-urlencoded**, **JSON**, or **Binary**.

    Use a dynamic variable for whatever the customer typed:

    ```json theme={null}
    { "order_id": "{{order_id}}" }
    ```

    If the customer enters `ORD12345`, the actual request sent becomes
    `{ "order_id": "ORD12345" }`.

    Add whatever else the API needs:

    * **Headers** — e.g. `Authorization: Bearer YOUR_ACCESS_TOKEN`, `Content-Type: application/json`
    * **Option Data** — extra parameters some APIs require, e.g. `language = en`, `store = bangalore`
    * **Cookies** — only if the API needs session cookies for authentication; leave empty
      otherwise
  </Step>

  <Step title="Test & Verify">
    Enable **Use Sample Data (Recommended)** so detected variables get filled with sample
    values automatically, then click **Send Test Request**. A working API returns something
    like:

    ```json theme={null}
    {
      "order_id": "ORD12345",
      "status": "Delivered",
      "courier": "BlueDart",
      "tracking_id": "BD987654321",
      "delivery_date": "2026-06-28"
    }
    ```

    Don't move on until this test succeeds — an untested endpoint can fail silently mid-flow
    later.
  </Step>

  <Step title="Response Mapping">
    Map each field in the response to a variable the bot can use anywhere:

    | API Response    | Variable            |
    | --------------- | ------------------- |
    | `status`        | `{{status}}`        |
    | `courier`       | `{{courier}}`       |
    | `tracking_id`   | `{{tracking_id}}`   |
    | `delivery_date` | `{{delivery_date}}` |

    The bot can now reply with any combination of these:

    ```
    Your order is {{status}}.
    Courier: {{courier}}
    Tracking ID: {{tracking_id}}
    Delivered On: {{delivery_date}}
    ```

    which the customer sees as:

    > Your order is **Delivered**.
    > Courier: **BlueDart**
    > Tracking ID: **BD987654321**
    > Delivered On: **28 June 2026**
  </Step>
</Steps>

## AI API Builder (Beta)

Instead of manually filling in every field, the **AI API Builder** panel next to the form can
generate the whole configuration for you from one of:

* **Describe in English** — e.g. "I have an Order API that accepts an Order ID and returns the
  order status, courier name, tracking ID, and delivery date."
* **Paste cURL**
* **Paste your API Docs**
* **Paste JSON**

The AI fills in the **API Endpoint**, **Request Method**, **Headers**, **Request Body**,
**Variables**, and **Response Mapping** automatically.

<Tip>
  Always review and **Send Test Request** on an AI-generated configuration before relying on it in
  a live bot flow — treat it as a first draft, not a finished, verified integration.
</Tip>

## Complete workflow

<Steps>
  <Step title="Enter API Details">API Name, Method, and Endpoint URL.</Step>
  <Step title="Configure the request">Body format (JSON, Form Data, etc.), Headers, Option Data, Cookies.</Step>
  <Step title="Send a test request">Use sample data, then confirm the response looks right.</Step>
  <Step title="Map the response">Assign each response field to a bot variable.</Step>
  <Step title="Save the API">It's now available to any flow.</Step>
  <Step title="Use the mapped variables">Reference them anywhere in your chatbot flow.</Step>
</Steps>

## Use cases

* **CRM integration** — look up or update a customer record.
* **Order tracking** — the walkthrough above.
* **Payment verification** — confirm a transaction before continuing a flow.
* **Customer lookup** — pull account details by phone number or email.
* **Booking systems** — check availability or confirm a reservation.
* **ERP / inventory integration** — check stock before promising a delivery date.

## Frequently asked

<AccordionGroup>
  <Accordion title="How do I connect my store's own Order API to my WhatsApp bot?">
    Use **Chatbot Manager → Integrations → HTTP API → Create**: enter the endpoint and method, configure the
    request body with a dynamic variable like `{{order_id}}`, test it, then map the response
    fields (status, courier, tracking ID, etc.) to bot variables you can use in a reply.
  </Accordion>

  <Accordion title="Can I connect an API without manually configuring every field?">
    Yes — use the **AI API Builder (Beta)** panel: describe the API in plain English, paste a
    cURL command, paste its docs, or paste raw JSON, and it generates the endpoint, headers,
    body, variables, and response mapping for you. Always test the result before using it live.
  </Accordion>

  <Accordion title="My HTTP API request needs authentication — where does that go?">
    Add it under **Headers** in the Request Data step — most APIs expect something like
    `Authorization: Bearer YOUR_ACCESS_TOKEN`. If the API instead uses session cookies, use the
    **Cookies** section.
  </Accordion>
</AccordionGroup>

<Warning>
  **Test an HTTP API before relying on it in a live bot flow** — use **Send Test Request** with
  sample data first. An untested endpoint can silently fail mid-conversation, leaving the
  customer with a broken reply instead of an error you can catch early.
</Warning>
