# Get Categories

`GET`

### Overview

Retrieve all event categories. Use this endpoint to build filters or navigation.

### Authentication

No authentication required.

### Request

* Method: `GET`
* Path: `/api/categories`
* Query parameters: None

### Response `200 OK`

```json
[
  {
    "i": "category-id",
    "n": "Crypto",
    "s": "crypto",
    "pi": null,
    "sc": [
      {
        "i": "sub-id",
        "n": "Bitcoin",
        "s": "bitcoin"
      }
    ]
  }
]
```

| Field | Type   | Description                   |
| ----- | ------ | ----------------------------- |
| i     | string | Category ID                   |
| n     | string | Category name                 |
| s     | string | Category slug                 |
| pi    | string | Parent category ID, or `null` |
| sc    | array  | Nested subcategories          |

### Error variants

Common public endpoint errors:

| Code | Description                         |
| ---- | ----------------------------------- |
| 400  | Bad Request — Invalid parameters    |
| 404  | Not Found — Resource does not exist |
| 500  | Internal Server Error               |

**Error response**

```json
{
  "status": 400,
  "error": "Bad Request",
  "message": "Invalid parameters"
}
```

### Python example

{% code title="get\_categories.py" %}

```python
import requests

response = requests.get(
    "https://event-service.outpoll.com/api/categories",
    timeout=10,
)
response.raise_for_status()

for category in response.json():
    print(f"{category['n']} ({category['s']})")
```

{% endcode %}
