---
title: "Retrieve camera list"
method: GET
path: "/cameras/"
tags: ["camera"]
---

# Retrieve camera list

`GET /cameras/`

## Request

- Base URL: `https://api.angelcam.com/v1`
- URL: `https://api.angelcam.com/v1/cameras/`
- Auth: one of:
  - OAuth 2
    - Authorization code: `https://my.angelcam.com/oauth/authorize/`, token URL `https://my.angelcam.com/oauth/token/`
    - Password, token URL `https://api.angelcam.com/oauth/token/`
    - Scopes: `camera_access`
  - API key in header `Authorization`
- TypeScript: <https://skmtc.dev/angelcam/apis/angelcam-api/docs/cameras/get.ts> (a function with typed inputs; its response is checked against the schema)

## Query parameters

- `limit` integer
- `offset` integer
- `refresh_rate` number, float
- `max_width` integer
- `max_height` integer
- `stream_expires_at` string, date-time
- `has_guests` boolean
- `tags` string
- `ids` string
- `location_id` integer

## Response `200`

Returns camera list.

- CameraListResponse
  - `count` integer, required: Count of all cameras
  - `next` string, uri, nullable, required: Next page from pagination
  - `previous` string, uri, nullable, required: Previous page from pagination
  - `results` CameraObject[], required: List of cameras owned by the user
    - `id` integer, required: Camera ID
    - `name` string, required: Camera name
    - `location` integer, nullable, required: ID of the location the camera belongs to
    - `site` integer, nullable, required: ID of the location the camera belongs to. **Deprecated:** use `location` instead.
    - `type` 'h264' | 'h265' | 'mjpeg', required: Camera type
    - `snapshot` SnapshotObject, nullable, required: Snapshot is created by Angelcam when certain types of events are received
      - `url` string, uri, nullable, required: URL of the snapshot image
      - `created_at` string, date-time, required: The date and time when the snapshot was created for the first time
    - `status` 'offline' | 'online' | 'unknown', required
    - `event_api_hash` string: Event API hash - unique token for posting events to camera timeline from embedded devices without authentication (do not disclose)
    - `live_snapshot` string, uri, nullable, required: Live snapshot URL
    - `streams` StreamObject[], required: Available camera streams. [Read about stream URLs expirations.](http://help.angelcam.com/en/articles/3952149-how-to-deal-with-stream-url-expiration) Please note that the amount of stream consumers per camera is limited to 10 concurrent consumers. Angelcam web app and Angelcam mobile app also count to this limit. Recording is excluded. If you need more concurrent stream consumers, use the broadcasting service.
      - `url` string, uri, required: Stream URL
      - `format` 'hls' | 'mp4' | 'mpegts' | 'mjpeg', required
      - `refresh_rate` number, float: Stream refresh rate
    - `applications` ApplicationObject[], required
      - `code` 'LSA' | 'CRA' | 'VVA' | 'VPA' | 'TLA', required
    - `low_latency_enabled` boolean, required: Indicates if user enabled [low latency streaming](http://help.angelcam.com/en/articles/372634-enabling-low-latency-streaming) in camera settings.
    - `audio_enabled` boolean, required: Indicates if audio is enabled for given camera.
    - `enable_status_checks` boolean, required: Indicates if periodic online/offline checks for the camera are enabled.
    - `enable_periodical_snapshots` boolean, required: Indicates if camera snapshot is being refreshed automatically once every 24h.
    - `tags` string[], required: List of tags assigned to the camera. Tags can be used for filtering.

## Other responses

- `400`: Query params are invalid.
- `401`: Missing or invalid authorization.
- `403`: Missing permission.

---

[API](https://skmtc.dev/angelcam/apis/angelcam-api.md) - [All operations](https://skmtc.dev/angelcam/apis/angelcam-api/llms.txt) - [OpenAPI document](https://skmtc.dev/angelcam/apis/angelcam-api/revisions/dd1cdc3f2c23?raw)
