# API

The **Generic API Node** in Integrail’s Agent Studio lets you connect to external APIs and retrieve data as part of your workflow.

### Step 1: Accessing the Generic API Node Settings

1. Open the workflow in Agent Studio where your **Generic API Node** is placed.
2. Select the **Generic API Node** and click on **Settings** to open the configuration panel where headers and authentication details can be added.

***

### Step 2: Common Authorization Methods and Examples

#### **A. Bearer Token (OAuth 2.0)**

Bearer tokens are widely used for secure API access via OAuth 2.0.

* **Use Case:** When the API requires a token-based authorization.
* **Example Configuration:**
  * **HTTP Method:** Select the appropriate method (e.g., GET, POST).
  * **URL:** Enter the API endpoint, e.g., `https://api.example.com/user/profile`.
  * **Settings:**
    1. Click on **Settings** at the bottom of the node.
    2. Add **String**.
    3. Click **Save** on the pop-up.
    4. In the new string field, that appeared on the sidebar **Settings** enter:

       ```makefile
       Authorization: Bearer YOUR_ACCESS_TOKEN
       ```

       Replace `YOUR_ACCESS_TOKEN` with your actual token (e.g., `Bearer abcdef1234567890`).

#### **B. Basic Authentication**

Basic Authentication is used for APIs that require a username and password encoded in Base64.

* **Use Case:** When the API requires a username and password for authorization.
* **Example Configuration:**
  * **HTTP Method:** Select POST (or as required by the API).
  * **URL:** Enter the API endpoint.
  * **Encode Credentials:** Combine `username:password` and encode in Base64.
    * For example, `user:pass` becomes *`dXNlcjpwYXNz`*.
  * **Settings:**
    1. Click on **Settings** at the bottom of the node.
    2. Add **String**.
    3. Click **Save** on the pop-up.
    4. In the new string field, that appeared on the sidebar **Settings** enter:

       ```makefile
       Authorization: Bearer YOUR_ACCESS_TOKEN
       ```

       Replace `YOUR_ACCESS_TOKEN` with your actual token (e.g., `Bearer abcdef1234567890`).

#### **C. API Key in Headers**

Some APIs use an API key provided by the service, added to the request headers.

* **Use Case:** When the API requires an API key for access, specified in the headers.
* **Example Configuration:**
  * **HTTP Method:** Select GET (or as required).
  * **URL:** Enter the API endpoint, e.g., `https://api.example.com/data`.
  * **Settings:**
    1. Click on **Settings** at the bottom of the node.
    2. Add **String**.
    3. Click **Save** on the pop-up.
    4. In the new string field, that appeared on the sidebar **Settings** enter:

       ```makefile
       Authorization: Bearer YOUR_ACCESS_TOKEN
       ```

       Replace `YOUR_ACCESS_TOKEN` with your actual token (e.g., `Bearer abcdef1234567890`).

#### **D. API Key in URL (Query Parameter)**

Some APIs require the API key as a query parameter in the URL itself.

* **Use Case:** When the API expects the API key as a URL parameter.
* **Example Configuration:**
  * **HTTP Method:** Select GET.
  * **URL:** Enter the endpoint with the API key as a query parameter, e.g., `https://api.example.com/data?api_key=your_api_key_here`.

***

### Step 3: Adding Additional Headers

Some APIs may require additional headers, such as `Content-Type` and `Accept`.

* **Content-Type:** Specifies the format of data in the request body (e.g., `application/json`).
* **Accept:** Informs the server of the expected response format (e.g., `application/json`).

***

### Summary Table of Common Authorization Methods

| Authorization Type   | HTTP Method | URL                                | Header Key      | Header Value                        |
| -------------------- | ----------- | ---------------------------------- | --------------- | ----------------------------------- |
| Bearer Token         | GET/POST    | `https://api.example.com/data`     | `Authorization` | `Bearer YOUR_ACCESS_TOKEN`          |
| Basic Authentication | POST        | `https://api.example.com/auth`     | `Authorization` | `Basic YOUR_BASE64_CREDENTIALS`     |
| API Key (Header)     | GET         | `https://api.example.com/data`     | `x-api-key`     | `your_api_key_here`                 |
| API Key (Query)      | GET         | `https://api.example.com/data?...` | Query Parameter | Append `?api_key=your_api_key_here` |

***

We’d love to hear from you! Reach out to **<documentation@integrail.ai>**


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://help.integrail.ai/agent-studio/editor/api.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
