# Endpoint API

Finout’s Endpoint API provides functionalities to query existing endpoints and create new ones effortlessly. You can retrieve a list of current endpoints or create new ones, with all results returned in JSON format for seamless integration and processing.

## <mark style="color:green;">`GET`</mark>`/Endpoints`

Gets a list of all your account endpoints.&#x20;

{% hint style="success" %}
**Prerequisites**

* [Generate a Client ID and Secret Key](https://docs.finout.io/api/finout-api/generate-an-api-token) from Finout to add in Headers.&#x20;
  {% endhint %}

**Request**\
`https://app.finout.io/v1/endpoints`

**Response**

{% tabs %}
{% tab title="200" %}

```json
{ 
"endpoints": [
          {
            "type": "email",
            "name": "example@finout.io",
            "configuration": {
                "to": "example@finout.io"
            },
            "createdBy": "example",
            "createdAt": "Thu Dec 28 2023 14:09:57 GMT+0000 (Greenwich Mean Time)",
            "id": "7fecf9fb-4f36-4931-8d02-9cc53bb26af3"
        },
        {
            "type": "slack",
            "name": "Demo-Finout",
            "configuration": {
                "to": "https://hooks.slack.com/services/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"
            },
            "createdBy": "Demo-Finout",
            "createdAt": "Sun Feb 26 2023 14:33:35 GMT+0000 (Greenwich Mean Time)",
            "id": "4f806937-6f5b-478e-a81a-f4b2ece14bb1"
        },
        {
            "type": "msteams",
            "name": "BI Group/DevTeam",
            "createdBy": "Finout",
            "createdAt": "Wed Nov 13 2024 17:44:50 GMT+0000 (Greenwich Mean Time)",
            "id": "a4a41dfc-23b3-4d9d-8f17-6e45cc34e8f8"
        },
   ],
    "requestId": "3b4c8ee0-9d97-4042-8265-ce837a87469d"
}
```

{% endtab %}

{% tab title="400" %}
Bad Request
{% endtab %}

{% tab title="401" %}
Unauthorized
{% endtab %}

{% tab title="429" %}
Too many requests
{% endtab %}

{% tab title="503" %}
Server unavailable
{% endtab %}

{% tab title="504" %}
Gateway Timeout
{% endtab %}
{% endtabs %}

Returns a JSON object with the following properties:

* type: The endpoint type - email or Slack.
* name: The name of the endpoint.
* configuration: The Slack or email URL that is configured for the endpoint.
* to: The destination address or endpoint for the notification.
* createdBy: The creator of the endpoint.
* createdAt: The time and date the endpoint was created.
* id: The unique identifier of your account's views.
* requestId: The ID of this specific request.

## <mark style="color:green;">`POST`</mark> `/Endpoints`

Creates an email or Slack endpoint in Finout.

{% hint style="success" %}
**Prerequisites**

* [Generate a Client ID and Secret Key](https://docs.finout.io/api/finout-api/generate-an-api-token) from Finout to add in Headers.&#x20;
  {% endhint %}

**Request**

[`https://app.finout.io/v1/endpoints`](https://app.finout.io/v1/endpoints)

{% tabs %}
{% tab title="200" %}

```json
{
    "type": "email",
    "name": "demo",
    "configuration": {
        "to": "demo@finout.io"
    }
}
```

{% endtab %}
{% endtabs %}

*Body of Request*

| Parameter     | Type   | Description                                                                                                                             |
| ------------- | ------ | --------------------------------------------------------------------------------------------------------------------------------------- |
| type          | string | Email or Slack                                                                                                                          |
| name          | string | The name of the endpoint.                                                                                                               |
| configuration | Object | <p>The address where notifications or messages are sent.<br>​<em>to</em>: The destination address or endpoint for the notification.</p> |

{% hint style="info" %}
**Note**: For MS Teams - All public channels in a Team will automatically mapped to an endpoint ID in Finout.
{% endhint %}

**Response**

{% tabs %}
{% tab title="200" %}

```json
{
    "endpoint": {
        "accountId": "e6ad4c08-9ecd-4592-be61-7a13ad456259",
        "createdBy": "demo@finout.io",
        "type": "email",
        "name": "demo",
        "configuration": {
            "to": "demo@finout.io"
        },
        "createdAt": "Tue Oct 29 2024 12:11:10 GMT+0000 (Greenwich Mean Time)",
        "updatedAt": "Tue Oct 29 2024 12:11:10 GMT+0000 (Greenwich Mean Time)",
        "id": "727e16d6-affe-43bd-924a-c896197640bb"
    },
    "requestId": "0e2516ba-87fb-4210-be7e-6890fcb55adc"
}
```

{% endtab %}

{% tab title="400" %}
Bad Request
{% endtab %}

{% tab title="401" %}
Unauthorized
{% endtab %}

{% tab title="429" %}
Too many requests
{% endtab %}

{% tab title="503" %}
Server unavailable
{% endtab %}

{% tab title="504" %}
Gateway Timeout
{% endtab %}
{% endtabs %}

Returns a JSON object with the following properties:

* accountId: The account id of the endpoint.
* createdby: The creator of the endpoint.
* type: the endpoint type - email or Slack.
* name: The name of the endpoint.
* configuration: What the endpoint was configured to.
* to: The destination address or endpoint for the notification.
* createdAt: The time and date the endpoint was created.
* updatedAt: The time and date the endpoint was updated.
* id: The unique identifier of your account's views.
* requestId: The ID of this specific request.
