# API — areuworking

> Canonical URL: https://areuworking.com/api

## Short answer

The areuworking Presence API exposes a single endpoint that returns who is working and who is off for any date range. It's available on every plan, including Free, and authenticates via Bearer API key.

## Endpoint

`GET https://app.areuworking.com/api/v1/presence`

## Authentication

Pass your API key as a Bearer token:

```
Authorization: Bearer YOUR_API_KEY
```

Generate API keys in the app: Settings → API keys. Keys can be rotated, disabled, or revoked at any time. Last-used timestamps are tracked.

## Parameters

- `from` (optional, date): Start date in YYYY-MM-DD format. Defaults to today.
- `to` (optional, date): End date in YYYY-MM-DD format. Must be on or after `from`. Defaults to 7 days after `from`.
- `team_id` (optional, string): Filter results to a specific team.

## Example requests

### curl

```bash
curl https://app.areuworking.com/api/v1/presence \
  -H "Authorization: Bearer $AREUWORKING_API_KEY" \
  -G \
  -d "from=2026-06-01" \
  -d "to=2026-06-07"
```

### JavaScript

```javascript
const res = await fetch(
  "https://app.areuworking.com/api/v1/presence?from=2026-06-01&to=2026-06-07",
  { headers: { Authorization: `Bearer ${process.env.AREUWORKING_API_KEY}` } }
);

const { in: working, out } = await res.json();
console.log(`${working.length} people working, ${out.length} off.`);
```

### Python

```python
import os
import requests

res = requests.get(
    "https://app.areuworking.com/api/v1/presence",
    headers={"Authorization": f"Bearer {os.environ['AREUWORKING_API_KEY']}"},
    params={"from": "2026-06-01", "to": "2026-06-07"},
)

data = res.json()
print(f"{len(data['in'])} people working, {len(data['out'])} off.")
```

## Example response

```json
{
  "from": "2026-06-01",
  "to": "2026-06-07",
  "team_id": null,
  "team_name": null,
  "in": [
    {
      "id": "usr_a1b2",
      "name": "Alex Chen",
      "email": "alex@example.com",
      "avatar": null,
      "team_id": "team_engineering",
      "team_name": "Engineering",
      "timezone": "Europe/Madrid"
    }
  ],
  "out": [
    {
      "id": "usr_e5f6",
      "name": "Sam Rivera",
      "email": "sam@example.com",
      "avatar": null,
      "team_id": "team_design",
      "team_name": "Design",
      "timezone": "Europe/London",
      "leaves": [
        {
          "type": "holiday",
          "start_date": "2026-06-03",
          "end_date": "2026-06-07"
        }
      ]
    }
  ]
}
```

## Leave types

The `type` field inside each `leaves` entry can be: `holiday`, `sick`, `personal`, or `bank_holiday`.

## Common use cases

- Slack status sync — auto-set Slack status for anyone on PTO
- Internal dashboards — pipe presence into Notion, Linear, or homemade ops tools
- AI agent context — give scheduling agents, support routers, or on-call bots real-time availability

## Plan availability

- **Free**: API access with one non-rotating key
- **Startup, Growth, Scale**: full API key management with rotation

## OpenAPI spec

Full machine-readable spec: https://areuworking.com/openapi.json

## Coming soon

- Webhooks for time-off request events
- Additional endpoints for allowances and team management

## Contact

javi@areuworking.com
