> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.paywithatoa.co.uk/llms.txt
> Use this file to discover all available pages before exploring further.

# List Endpoints | Webhooks API

> List endpoints via the Atoa Webhooks API, request parameters, response schema and code samples in cURL, Python, JavaScript, PHP, Go and Java.

Returns a paginated list of all webhook endpoints for your business account. The environment (`SANDBOX` or `PRODUCTION`) is determined by the API key used — you will only see endpoints for that environment.

### Authorization

Bearer `<token>`

**Query Parameters**

<ParamField query="page" type="number">
  Zero-based page number. Defaults to `0`.
</ParamField>

<ParamField query="size" type="number">
  Number of items per page (max 50). Defaults to `10`.
</ParamField>

**Response**

<ResponseField name="data" type="array">
  Array of endpoint objects. See [Create endpoint](/api-reference/Webhook/v2/createEndpoint#response) for the full endpoint shape.
</ResponseField>

<ResponseField name="totalCount" type="number">
  Total number of endpoints for your account in this environment across all pages.
</ResponseField>

<ResponseField name="page" type="number">
  Current zero-based page number.
</ResponseField>

<ResponseField name="size" type="number">
  Page size used for this response.
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl --request GET \
    --url 'https://api.atoa.me/api/webhook/v2/endpoints?page=0&size=10' \
    --header 'Authorization: Bearer <token>'
  ```

  ```python Python theme={null}
  import requests

  url = "https://api.atoa.me/api/webhook/v2/endpoints"
  params = { "page": 0, "size": 10 }
  headers = { "Authorization": "Bearer <token>" }

  response = requests.request("GET", url, headers=headers, params=params)
  print(response.text)
  ```

  ```javascript JavaScript theme={null}
  const params = new URLSearchParams({ page: 0, size: 10 });

  fetch(`https://api.atoa.me/api/webhook/v2/endpoints?${params}`, {
    method: 'GET',
    headers: { Authorization: 'Bearer <token>' }
  })
    .then(response => response.json())
    .then(response => console.log(response))
    .catch(err => console.error(err));
  ```

  ```php PHP theme={null}
  <?php

  $curl = curl_init();

  curl_setopt_array($curl, [
    CURLOPT_URL => "https://api.atoa.me/api/webhook/v2/endpoints?page=0&size=10",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 30,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => [
      "Authorization: Bearer <token>"
    ],
  ]);

  $response = curl_exec($curl);
  $err = curl_error($curl);

  curl_close($curl);

  if ($err) {
    echo "cURL Error #:" . $err;
  } else {
    echo $response;
  }
  ```

  ```go Go theme={null}
  package main

  import (
  	"fmt"
  	"net/http"
  	"io"
  )

  func main() {

  	url := "https://api.atoa.me/api/webhook/v2/endpoints?page=0&size=10"

  	req, _ := http.NewRequest("GET", url, nil)

  	req.Header.Add("Authorization", "Bearer <token>")

  	res, _ := http.DefaultClient.Do(req)

  	defer res.Body.Close()
  	body, _ := io.ReadAll(res.Body)

  	fmt.Println(string(body))

  }
  ```

  ```java Java theme={null}
  HttpResponse<String> response = Unirest.get("https://api.atoa.me/api/webhook/v2/endpoints")
    .header("Authorization", "Bearer <token>")
    .queryString("page", 0)
    .queryString("size", 10)
    .asString();
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "data": [
      {
        "id": "4a124f25-fe8d-47a0-92c8-16d94cbfe24c",
        "url": "https://your-server.com/webhooks",
        "description": "Production orders endpoint",
        "environment": "PRODUCTION",
        "events": [
          { "event": "PAYMENTS_STATUS", "label": "Payment Status" },
          { "event": "REFUND_STATUS", "label": "Refund Status" }
        ],
        "hasAuthentication": false,
        "authenticationType": null,
        "failureCount": 0,
        "lastDeliveredAt": "2025-06-01T12:00:00.000Z"
      }
    ],
    "totalCount": 1,
    "page": 0,
    "size": 10
  }
  ```

  ```json 401 theme={null}
  {
    "name": "UNAUTHORIZED",
    "message": "Unauthorized",
    "status": 401,
    "errors": "[]"
  }
  ```
</ResponseExample>
