Presence API

Availability data, accessible to your tools.

The Presence API tells your scripts, dashboards, AI agents, and internal tools who is working and who is off for any date range. Available on every plan, including Free.

GET /api/v1/presenceBearer API key
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"

What it does

One endpoint. The question every team-aware tool needs to ask.

The Presence API exposes a single endpoint: GET /api/v1/presence. Pass a date range, get back who is in and who is out. Filter by team if you want.

No SDK required. Anything that can make an HTTP request can use it: internal scripts, Slack bots, dashboards, scheduling agents, support routers, and operations workflows.

Answers on tap

Common questions your tools can answer.

  • Who is off today?
  • Who is working next Friday?
  • Is Support covered next week?
  • Which team members are out between two dates?
  • Which users are off, and why?

Examples

Try it.

curl
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
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
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.")
Sample response
{
  "from": "2026-06-01",
  "to": "2026-06-07",
  "team_id": null,
  "team_name": null,
  "in": [
    {
      "id": "71d0e1f8-7d4c-44f4-8d21-59fb04c353d3",
      "name": "Alex Chen",
      "email": "alex@example.com",
      "avatar": null,
      "team_id": "1c5dcf5e-cc63-4b3b-8eec-c3b6e8fd2d5d",
      "team_name": "Engineering",
      "timezone": "Europe/Madrid"
    }
  ],
  "out": [
    {
      "id": "0465f18f-1c7d-48da-9838-77b0f86a7f92",
      "name": "Sam Rivera",
      "email": "sam@example.com",
      "avatar": null,
      "team_id": "6c2314cc-2e78-4f63-b019-f4a23e41cc0e",
      "team_name": "Design",
      "timezone": "Europe/London",
      "leaves": [
        {
          "type": "holiday",
          "start_date": "2026-06-03",
          "end_date": "2026-06-07"
        }
      ]
    }
  ]
}

Reference

Parameters and responses.

ParameterTypeDetails
fromdateStart of the range, YYYY-MM-DD. Optional.
todateEnd of the range, YYYY-MM-DD. Must be on or after from. The range cannot exceed 90 days.
team_idUUIDOptional. Filter results to a single team.

Authentication

Send your API key as a bearer token: Authorization: Bearer YOUR_API_KEY. Create, rotate, disable, or revoke keys in Settings, then API keys.

Response shape

JSON with from, to, team_id, team_name, an in array of people working, and an out array where each person carries a leaves list with a type (holiday, sick, personal, bank_holiday) and dates.

Common errors

401 when the API key is missing, invalid, disabled, or revoked. 422 when the date range is invalid or longer than 90 days.

Use cases

What teams build with it.

Slack status sync

Auto-set Slack status to "Out today" for anyone on holiday or sick leave.

Internal dashboards

Pipe presence into Notion, Linear, or your homemade ops dashboard.

AI agent context

Give scheduling agents and support routers real availability context before they route work.

MCP server

Need assistant workflows, not just raw data?

Use the Presence API for raw availability data in software, scripts, dashboards, and integrations. Use the MCP server when an AI assistant needs to act through a connected user's permissions - checking availability, reading balances, listing requests, booking leave, or reviewing pending approvals.

Explore the MCP server ->
  • Works with MCP-compatible AI clients
  • User-bound OAuth connection
  • Calls the app API, so permissions still apply
  • Useful for Claude, ChatGPT, and other assistants when remote MCP connections are available

Getting started

Three steps to your first API call.

1

Sign up

Free plan works. Create your areuworking account and finish setup.

2

Generate an API key

Open Settings, then API keys, then create a key. Keys can be rotated, disabled, or revoked.

3

Make your first request

Copy the curl example above and call the Presence API.

Machine-readable

Designed to be readable by agents too.

areuworking exposes a compact set of files so AI agents can understand the product, pricing, feature status, API, and MCP server without guessing.

Build with it

Build something with it.