Premiers pas

Pagination et filtres

Les listes (/tvs, /files et /playlists) sont paginées. Les éléments se trouvent dans data et les informations de la page dans meta.

NomTypeDescription
pageintegerPage, à partir de 1. Par défaut : 1.
per_pageintegerÉléments par page, de 1 à 100. Par défaut : 50.

Champs de meta

page integer
Page actuelle.
per_page integer
Éléments par page.
total integer
Nombre total d'éléments trouvés, toutes pages confondues.
total_pages integer
Nombre total de pages.

Pour tout récupérer, commencez à page=1 et avancez jusqu'à total_pages. Une page au-delà de la dernière renvoie un data vide.

Filtres

Les filtres peuvent être combinés entre eux et avec la pagination. Le total de meta tient déjà compte des filtres.

NomTypeDescription
organizationstringuid d'une organisation, pour ne renvoyer que ses éléments (voir /organizations).
qstringPartie du nom, 100 caractères maximum.
typestringType de fichier, par exemple image ou video. Uniquement dans /files.
archivedinteger1 pour les fichiers archivés uniquement ou 0 pour les fichiers non archivés uniquement. Uniquement dans /files.

Ordre

Les TVs et les playlists sont triées par ordre alphabétique ; les fichiers, du plus récent au plus ancien.

Requête
curl "https://api.on-cloud.live/v1/tvs?per_page=2" \
  -H "X-API-Key: $API_KEY"
<?php
$ch = curl_init('https://api.on-cloud.live/v1/tvs?per_page=2');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => ['X-API-Key: ' . getenv('API_KEY')],
]);
$response = json_decode(curl_exec($ch), true);
const res = await fetch('https://api.on-cloud.live/v1/tvs?per_page=2', {
  headers: { 'X-API-Key': process.env.API_KEY }
});
const { data, meta } = await res.json();
Réponse200
{
  "data": [
    {
      "uid": "d3d9446802a44259755d38e6d163e820",
      "name": "Caixa 2",
      "description": "",
      "organization": {
        "uid": "1679091c5a880faf6fb5e6087eb1b2dc",
        "name": "Loja Shopping Norte"
      },
      "playlist": null,
      "status": "offline",
      "last_seen_at": "2026-11-01T18:04:51-03:00",
      "activated_at": "2025-03-12T09:41:05-03:00",
      "app_version": "3.12.83",
      "os": "android",
      "device": {
        "brand": "Philco",
        "model": "PTV32G70"
      },
      "timezone": "America/Sao_Paulo"
    },
    {
      "uid": "c98cb8f9cc62887d1f6cf5693df9219c",
      "name": "Recepção",
      "description": "TV da entrada",
      "organization": {
        "uid": "8f14e45fceea167a5a36dedd4bea2543",
        "name": "Loja Centro"
      },
      "playlist": {
        "uid": "e4da3b7fbbce2345d7772b0674a318d5",
        "name": "Lista principal"
      },
      "status": "online",
      "last_seen_at": "2026-11-03T14:32:10-03:00",
      "activated_at": "2025-03-12T09:41:05-03:00",
      "app_version": "3.12.84",
      "os": "android",
      "device": {
        "brand": "TCL",
        "model": "43P635"
      },
      "timezone": "America/Sao_Paulo"
    }
  ],
  "meta": {
    "page": 1,
    "per_page": 2,
    "total": 3,
    "total_pages": 2
  }
}
Paramètre invalide400
GET /v1/tvs?per_page=500

{
  "error": {
    "code": "invalid_parameter",
    "message": "per_page must be a number between 1 and 100."
  }
}