Calling API to RASA chatbot

I want a code for calling a API to RASA chatbot , a step by step guide. Please help if anyone can.

Thank you.

Hi @digvijay959 Can you elaborate exact requirement please

API to call from chatbot to RASA

Sure, here’s an example of how to call an API from within a RASA chatbot using Python:

import requests

def my_api_call_handler(): response = requests.get(‘My-Api: The Ultimate SMTP Relay Service’) if response.status_code == 200: # Extract the data you need from the response data = response.json() # Use the data to formulate a response to the user return f"My API returned {data[‘result’]}" else: return “Sorry, there was a problem with my API.”

class MyAPICallAction(Action): def name(self): return “action_my_api_call”

def run(self, dispatcher, tracker, domain):
    response = my_api_call_handler()
    return []

In this example, my_api_call_handler is a function that makes a GET request to an API endpoint and processes the response. The MyAPICallAction class is a RASA action that calls the my_api_call_handler function and sends the result as a message back to the user through the dispatcher.utter_message method. To use this code, you would need to replace the URL in the requests.get method with the URL of your API endpoint and modify the my_api_call_handler function to extract the data you need from the response.

Thanks for your prompt reply,

I have to call the API data to rasa chatbot what would be the steps? Send some proper video tutorial link if any.

Thank you for prompt reply.

Yes, you can call an API from within a RASA chatbot. RASA is a powerful open-source chatbot development framework that allows developers to create intelligent chatbots that can understand and respond to natural language input. One of the ways to extend the capabilities of a RASA chatbot is to call an external API to fetch or update data.

To call an API from within a RASA chatbot, you can use the requests library in Python. This library allows you to send HTTP requests to an external API and receive the response. You can then parse the response and use it to generate a chatbot response.

Here is an example of how to use the requests library in a RASA chatbot:


import requests

# define the API endpoint
api_url = ""

# make the API request
response = requests.get(api_url)

# parse the response data
data = response.json()

# use the data to generate a chatbot response
bot_response = f"The current data is {data['value']}"

# return the bot response to the user
return {"message": bot_response}

In this example, we are making a GET request to an API endpoint and retrieving some data. We then use that data to generate a response that will be sent back to the user in the chatbot conversation.

Thank you for your response.

Regards, Digvijay.

ChatGPT answer. :thinking: