---
title: "Trip collaborators"
method: GET
path: "/api/v2/trips/{externalId}/collaborators"
tags: ["Trips"]
---

# Trip collaborators

`GET /api/v2/trips/{externalId}/collaborators`

## Request

- Base URL: `https://www.endlesstravelplans.com`
- URL: `https://www.endlesstravelplans.com/api/v2/trips/{externalId}/collaborators`
- Auth: HTTP bearer

Everyone on the trip: accepted collaborators first, then invitations still open, oldest first within each.
`limits` is the cap the invite call enforces, so the invite sheet can show it before a 422
`collaborator_limit_reached`: `max` follows the plan of the trip's owner (`owner_plan` is `pro` or `free`),
and `used` counts accepted people plus invitations that have not expired. The owner is not listed.
`email` is set only on open invitations and only for an owner or admin; it is null otherwise. Any accepted
member of the trip may read this; anyone else gets a 404.

## Response `200`

- object
  - `collaborators` object[]
    - `user_id` integer
    - `name` string
    - `avatar_url` string, nullable
    - `email` string, nullable
    - `role` string
    - `status` string
    - `invited_at` string
  - `limits` object
    - `max` integer
    - `used` integer
    - `owner_plan` string

## Other responses

- `401`: unauthenticated: No valid bearer token was sent.
- `404`
- `429`: rate_limited: A throttle or a per-account allowance refused the request; `retry_after` or `remaining` may be present.
- `500`: server_error: Unhandled failure; quote `request_id` to support.

---

[API](https://skmtc.dev/endlesstravelplans/apis/endless-travel-plans-api.md) · [All operations](https://skmtc.dev/endlesstravelplans/apis/endless-travel-plans-api/llms.txt) · [OpenAPI document](https://skmtc.dev/endlesstravelplans/apis/endless-travel-plans-api/revisions/ae82ed3e4a8f?raw)
