---
description: Learn more about how the make HTTP requests AI skill allows your AI Agent to call external APIs during conversations to retrieve real-time data or trigger actions in third-party systems.
title: AI Skill: Make HTTP requests
image: https://assets1-proxy.respond.io/api/v1/image/assets%2F11f7a662b80a4675973850b067c01fa5%2F3f43c48b21b24f4e8b02b100c0c8fab0
---

[NewWe just raised $62.5M in Series B! 🎉 What it means for you![arrow-icon](https://assets1-proxy.respond.io/api/v1/image/assets%2F11f7a662b80a4675973850b067c01fa5%2Fe43213a7a9314673bd8d2060c25f9b87)](https://respond.io/blog/respond-io-raises-62-million-series-b)

Help me with... ⌘ 

1. [All Collections >](/help)
2. [ Product >](/help/product)
3. [ AI Agents >](/help/ai-agents)
4. [ AI Skills >](/help/ai-skills)
5. AI Skill: Make HTTP requests

# AI Skill: Make HTTP requests

> **Plan eligibility:** Available on Advanced, Enterprise, and selected Legacy plans. Testing is available to all users, but publishing requires an eligible plan.

The **Make HTTP requests** skill allows your AI Agent to call external APIs during a conversation. This lets the AI Agent retrieve real-time data or trigger actions in external systems based on the Contact's request. For example, it can check order status, retrieve account information, or create records in another system. In this article, you'll learn how to configure the HTTP request skill and test it with your AI Agent.

The AI Agent:

1. Analyzes the Contact’s message to determine whether it matches the intent defined in your action instructions.
2. Collects any required information.
3. Sends the HTTP request.
4. Interprets the API response.
5. Replies naturally to the Contact.

## Add a make HTTP request action

If **Make HTTP requests** isn't added to your AI Agent yet, click **\+ Add skill** and select it. Then select **\+ Add action** to configure your first HTTP request. You can add up to 10 actions this way, each calling a different endpoint or handling a different scenario.

![](https://assets2-proxy.respond.io/ph8r57dk1q9w/1Tbaws3LvA9FysLz9eC0Iv/76a0d62c1b6a96aebb48298bf549b7cd/http_request-add_skill.png?fm=jpg&q=80&w=1200&fl=progressive)

### Define when the action should run

Give a descriptive name for the action in the **Action name** field.

In the **When and how should this action be performed?** field, describe: 

* When the AI Agent should use this action
* What it retrieves or sends
* Any conditions or outcomes to handle
![](https://assets2-proxy.respond.io/ph8r57dk1q9w/1Ry7D5PA3Efyy2GFykdlYs/ef9c6c42aa2866bedd9b20396f0ded7e/add_http_request_-_config.png?fm=jpg&q=80&w=1200&fl=progressive)

Example:

```html
Use this action to retrieve a Contact’s order status when they ask about their order. If the API returns a 404 error, inform the Contact that the order could not be found.
```

The AI Agent uses this description to decide when to trigger the request.

### Information the AI Agent may need (optional)

Define the inputs required in this section before calling your API.

These are structured variables that the AI must collect. The request is triggered only after all required inputs are available.

If a value is:

* Already mentioned in the conversation → the AI uses it.
* Missing → the AI asks the Contact for it.

The variables created here can be used in the API configuration. Contact variables (such as $contact.email) are available automatically and don’t need to be added.

![](https://assets2-proxy.respond.io/ph8r57dk1q9w/1SOzjJK2pM8p7CorIfIpLw/21913a4653ead7897d0a6dec4526c618/http_request-config2.png?fm=jpg&q=80&w=1200&fl=progressive)

**Field settings**

| Field            | Notes                                                                                                                                                                                                                    |
| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Name             | The variable identifier used in your API request. \- Unique per action\- Letters, numbers, and underscores only\- Case-sensitive\- Max 30 characters Reference it using: $agent.variable\_name Example: $agent.order\_id |
| Format           | Defines the expected data type: \- Text (default)\- Number\- Boolean\- Date Choose the correct format to reduce ambiguity and improve reliability.                                                                       |
| Description      | Explains what the value represents and helps the AI ask for it clearly.Example: 8-digit order ID from the confirmation email.                                                                                            |
| Array (optional) | Enable this to collect multiple values instead of one. Each item follows the selected Format.Use this when you expect:\- Multiple product IDs\- Several tracking numbers • Multiple selections                           |

### Request configuration

Define how the AI Agent should call your API.

![](https://assets2-proxy.respond.io/ph8r57dk1q9w/HXBkfyTj6XeXtOX4FMBNB/78cb749d6624cd60b809bfa37ff8972c/request-config.png?fm=jpg&q=80&w=1200&fl=progressive)

You can configure:

* Method
* URL
* Query parameters
* Headers
* JSON body (for POST, PUT, PATCH)

**Referencing variables**

You can insert variables in the URL, parameters, headers, or body using $.

![](https://assets2-proxy.respond.io/ph8r57dk1q9w/VJWbtyiJ64nQ175Or2uAd/cd30b696d38d8df57e1fe5816053cfe2/referencing-variables.png?fm=jpg&q=80&w=1200&fl=progressive)

There are two types:

* Contact variables — existing Contact fields

  * `$contact.email`
* AI Agent variables — fields defined under _Information the AI Agent may need_

  * `$agent.order_id`

Variables are replaced with real values when the request runs. If a required AI Agent variable is missing, the AI will ask for it before triggering the API call.

**How the AI handles API responses**

Example body:

```json
{
  "order_id": "$agent.order_id",
  "email": "$contact.email"
}
```

The AI Agent automatically interprets the API’s JSON response and generates a natural reply.

Example API response:

```json
{
  "status": "shipped",
  "eta": "2025-12-12"
}
```

AI reply: “Good news! Your order has been shipped and is expected to arrive on December 12, 2025.”

**Sending images or files from the API response**

If the API response includes a valid image or file URL (e.g. a floor plan, invoice, or product photo), the AI Agent can send it as a rendered attachment — the same mechanism used for Knowledge Source and Instruction URLs. See [Sending files and images as attachments](https://respond.io/help/ai-agents/how-to-write-effective-ai-agent-prompts#sending-files-and-images-as-attachments).

This requires an explicit instruction authorizing it, for example:

```plain
Send image/file as attachment whenever there's a valid image/file URL in the API response.
```

Without this instruction, the AI Agent will only use the URL to inform its text reply — it will not send it as an attachment.

## Testing

You can test your HTTP request action in the **Test AI Agent** panel before publishing.

### How to test

1. Start a test conversation that matches your action conditions.  
![](https://assets2-proxy.respond.io/ph8r57dk1q9w/78KDUCw0a23kfXjjNmSM3M/0492abdcc797e1754c0ca7d5e3f1ba59/http_request-test.png?fm=jpg&q=80&w=1200&fl=progressive)
2. When the intent is detected and required inputs are available, the AI Agent executes the HTTP request.
3. An execution event appears in the test panel:  
![](https://assets2-proxy.respond.io/ph8r57dk1q9w/29SmyR5RSQ4gQ5Z3DpuV3K/1fb447779fcefb4868f31c4c419ad1cd/http_request-execution_event.png?fm=jpg&q=80&w=1200&fl=progressive)
  1. **{AI Agent name} executed {Action name}**
  2. 2xx responses are shown as success
  3. All other status codes are shown as failure
4. Click the event to view:  

  1. **Response** tab (default) — full API response body
  2. **Request** tab — full cURL request payload
  3. Copy option for debugging
5. After receiving the API response, the AI Agent generates a reply based on the returned data.

**Important notes**

* Execution events appear **only in the Test AI Agent panel**. They do not appear in Inbox or Contact Activity.
* If required inputs are missing, the AI Agent will ask for them before triggering the request.

## Best practices

* Be precise in your action description. Vague instructions lead to vague triggers.
* Define required inputs clearly. If the AI must ask for something, make it obvious.
* Handle error cases in your instructions.
* Always test before publishing.
* Avoid duplicating logic already handled by Workflows unless intentionally designed.

## Limitations

* Maximum 10 HTTP request actions per AI Agent.
* Maximum per action:  

  * 20 data input fields
  * 50 parameters
  * 50 headers
* The AI Agent determines when to call the API based on your written description. Poorly written instructions may cause unexpected triggering.
* API response handling is automatic. You cannot manually map response fields — the AI interprets the JSON contextually.
* HTTP request execution events appear only in the Test AI Agent panel and not in Contact Activity.
* Voice AI Agents can trigger the Make HTTP requests action. However, the returned API response is not passed back to the Voice AI Agent for reply generation, meaning voice conversations cannot dynamically respond based on the API result.
* If your AI Agent updates a Contact field and also uses that field in this action within the same turn, the request sends the old value (or empty, if never set) every time. This happens regardless of which action runs first. If you're interested, upvote the [feature request](https://respond.canny.io/feature-request/p/contact-field-http-request-ensure-http-requests-use-latest-contact-field-values).

## FAQs and troubleshooting

### Can I trigger multiple API endpoints?

Yes. You can configure up to 10 separate HTTP request actions per AI Agent.

### Can I pass Contact data into the API?

Yes. Use $contact.field\_name in the URL, headers, parameters, or body.

### What happens if required data is missing?

The AI Agent will ask the Contact for the missing information before triggering the request.

### Does the AI wait for the API response?

Yes. The AI Agent waits for the response, interprets it, and replies naturally based on the returned data.

### Can I call an API endpoint that requires OAuth 2.0 authentication?

No. HTTP Request does not support OAuth 2.0 authentication flows, such as user consent, authorization code exchange, access token refresh or dynamic token generation.

You can use HTTP Request with endpoints that accept simple authentication methods, such as API keys or static tokens added to the URL, query parameters or headers.

For example, if you are calling a Google API endpoint and the request fails, check whether that endpoint requires OAuth 2.0 authentication. If it does, it is not supported. If the endpoint supports API keys or static tokens instead, you can use that authentication method in your HTTP Request configuration.  

Share this article

[![Telegram](https://assets1-proxy.respond.io/api/v1/image/assets%2F11f7a662b80a4675973850b067c01fa5%2F44daca77a4844f0c8fd29040ddeba057?width=22)](https://api.whatsapp.com/send?text=https://respond.io/help/ai-skills/ai-skill-make-http-requests)[![Facebook](https://assets1-proxy.respond.io/api/v1/image/assets/11f7a662b80a4675973850b067c01fa5/fff57eeb01160bc604392f519b4f3461ca16f0fa1b6a587b20b142cdf1ad0ba7?placeholderIfAbsent=true&width=22)](https://www.facebook.com/sharer/sharer.php?u=https://respond.io/help/ai-skills/ai-skill-make-http-requests)[![Linkedin](https://assets1-proxy.respond.io/api/v1/image/assets/11f7a662b80a4675973850b067c01fa5/7aaf8d87b5410844d83e06a4ed663e4f551b8c5ef51dbb20a8ff064a1eed9a0f?placeholderIfAbsent=true&width=22)](https://www.linkedin.com/sharing/share-offsite/?url=https://respond.io/help/ai-skills/ai-skill-make-http-requests)[![Twitter](https://assets1-proxy.respond.io/api/v1/image/assets%2F11f7a662b80a4675973850b067c01fa5%2F4e03e02422a94e8eab9b8b41457c2371?width=22)](http://twitter.com/share?url=https://respond.io/help/ai-skills/ai-skill-make-http-requests)

## 

Related articles 👩‍💻

* [AI Agent Action: Add commentsLearn how AI Agents add internal comments in respond.io to share context, tag teammates, and support smooth handoffs. ](/help/ai-skills/ai-agent-action-add-comments)
* [AI Agent Action: Assign to agent or teamLearn how AI Agents assign conversations to agents, teams, or other AI Agents in respond.io, including assignment methods, handoff behavior, and key limitations. ](/help/ai-skills/ai-skill-assign-to-agent-or-team)
* [AI Skill: Close conversationsLearn how the Close conversations skill works for AI Agents in respond.io, including how to trigger it, apply closing notes, and handle summaries. ](/help/ai-skills/ai-skill-close-conversations)
* [AI Skill: Handle CallsLearn how AI Agents handle inbound calls in respond.io, including voice behavior, setup options, and key limitations. ](/help/ai-skills/ai-skill-handle-calls)
* [AI Skill: Trigger WorkflowLearn how AI Agents trigger existing Workflows in respond.io to run advanced automations and integrations. ](/help/ai-skills/ai-skill-trigger-workflow)

Can't find what you're looking for? 🔎

[Contact Support](/contact-us)

2026-10-02T10:05:03.466Z

help

```json
{"@context":"https://schema.org","@graph":[{"@context":"https://schema.org","@type":"TechArticle","articleBody":"Learn more about how the make HTTP requests AI skill allows your AI Agent to call external APIs during conversations to retrieve real-time data or trigger actions in third-party systems.","author":{"@type":"Person","image":"https://assets2-proxy.respond.io/ph8r57dk1q9w/4GvzCieeTBRY4TRJUbIr4y/b92428e6b049d23f546269180534f7ea/Ryan_Tan_Avatar.svg","name":"Joshua Lim","url":"https://respond.io/author"},"dateCreated":"2026-03-04T00:00:00.000Z","dateModified":"2026-10-02T08:29:04.095Z","datePublished":"2026-03-04T00:00:00.000Z","headline":"AI Skill: Make HTTP requests","mainEntityOfPage":"https://respond.io/help/ai-skills","publisher":{"@id":"https://respond.io/#organization"},"url":"https://respond.io/help/ai-skills/ai-skill-make-http-requests"},{"@context":"https://schema.org","@id":"https://respond.io/help/ai-skills/ai-skill-make-http-requests#breadcrumb","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Help","item":"https://respond.io/help"},{"@type":"ListItem","position":2,"name":"Product","item":"https://respond.io/help/product"},{"@type":"ListItem","position":3,"name":"AI Agents","item":"https://respond.io/help/ai-agents"},{"@type":"ListItem","position":4,"name":"AI Skills","item":"https://respond.io/help/ai-skills"},{"@type":"ListItem","position":5,"name":"AI Skill: Make HTTP requests","item":"https://respond.io/help/ai-skills/ai-skill-make-http-requests"}]},{"@type":"Organization","@id":"https://respond.io/#organization","name":"Respond.io","alternateName":"respond.io","url":"https://respond.io/","image":["https://assets1-proxy.respond.io/api/v1/image/assets%2F11f7a662b80a4675973850b067c01fa5%2F3f43c48b21b24f4e8b02b100c0c8fab0"],"logo":"https://assets1-proxy.respond.io/api/v1/image/assets%2F11f7a662b80a4675973850b067c01fa5%2F4045649d540241d398c39ab07b2b62bb","description":"Respond.io is an AI-powered customer conversation platform that helps businesses manage conversations, automate workflows and scale sales, marketing and support operations. Trusted by 10,000+ B2C brands, it unifies WhatsApp, TikTok, Instagram and Facebook in a single AI-powered team inbox for chats, calls and campaigns.","email":"success@respond.io","telephone":"+6011-54211197","foundingDate":"2017-02-17","address":{"@type":"PostalAddress","streetAddress":"Level 41, Permata Sapura Tower, Jalan Pinang","addressLocality":"Kuala Lumpur","addressRegion":"Federal Territory of Kuala Lumpur","postalCode":"50088","addressCountry":"MY"},"areaServed":"Worldwide","contactPoint":{"@type":"ContactPoint","contactType":"Customer Service","url":"https://respond.io/contact"},"sameAs":["https://respond.io/","https://www.facebook.com/getrespondio/","https://www.linkedin.com/company/respondio/","https://play.google.com/store/apps/details?id=com.respond.inbox.io","https://www.youtube.com/@respondio","https://twitter.com/respond_io","https://apps.apple.com/my/app/respond-io-inbox/id1667772955","https://www.g2.com/products/respond-io/reviews","https://www.producthunt.com/products/respond-io","https://zapier.com/apps/respondio/integrations","https://www.capterra.com/p/179311/Rocketbots/","https://www.crunchbase.com/organization/respondio","https://builtin.com/company/respondio","https://respond-io.en.softonic.com/web-apps","https://my.jobstreet.com/companies/respondio-168558101085004","https://brandfetch.com/respond.io","https://webcatalog.io/en/apps/respond-io"],"knowsAbout":["WhatsApp API","WhatsApp Business API","WhatsApp CRM","WhatsApp automation","omnichannel communication platform","WhatsApp Business Multiple Users","WhatsApp BSP","WhatsApp Business Solution Provider","WhatsApp automation tool","WhatsApp team inbox","WhatsApp AI agent","WhatsApp Business AI chatbot","WhatsApp marketing software","conversational sales platform","WhatsApp appointment booking"]},{"@type":"WebPage","@id":"https://respond.io/help/ai-skills/ai-skill-make-http-requests#webpage","url":"https://respond.io/help/ai-skills/ai-skill-make-http-requests","name":"AI Skill: Make HTTP requests","description":"Learn more about how the make HTTP requests AI skill allows your AI Agent to call external APIs during conversations to retrieve real-time data or trigger actions in third-party systems.","isPartOf":{"@id":"https://respond.io/#website"},"primaryImageOfPage":{"@type":"ImageObject","url":"https://assets1-proxy.respond.io/api/v1/image/assets%2F11f7a662b80a4675973850b067c01fa5%2F3f43c48b21b24f4e8b02b100c0c8fab0"},"breadcrumb":{"@id":"https://respond.io/help/ai-skills/ai-skill-make-http-requests#breadcrumb"}},{"@type":"WebSite","@id":"https://respond.io/#website","name":"Respond.io","url":"https://respond.io/","potentialAction":{"@type":"SearchAction","query-input":"required name=search_term_string","target":"https://respond.io/search?query={search_term_string}"},"publisher":{"@id":"https://respond.io/#organization"}}]}
```
