레퍼런스 · TV

TV 목록 조회

GET /v1/tvs

사용자가 TV를 볼 수 있는 회사의 활성화된 TV를 이름순으로 나열합니다.

페이지 단위 응답: 항목은 data에, 페이지 정보는 meta에 담깁니다. 페이지네이션 및 필터

매개변수

이름타입설명
organizationstring회사의 uid. 해당 회사의 항목만 반환합니다(/organizations 참고).
qstring이름의 일부(최대 100자).
pageinteger페이지 번호(1부터 시작). 기본값: 1.
per_pageinteger페이지당 항목 수(1~100). 기본값: 50.

각 항목의 필드

uid string
TV 식별자로, 관리 패널에서 사용하는 것과 같습니다.
name string
TV 이름.
description string
TV 설명(비어 있을 수 있음).
organization object
TV가 속한 회사: uid 및 name.
playlist object | null
TV의 재생목록(uid 및 name). 없으면 null.
status string
online, alert 또는 offline. 자세한 내용은 아래 설명을 참고하세요.
last_seen_at string | null
TV가 플랫폼과 마지막으로 통신한 시각. 한 번도 연결된 적이 없으면 null.
activated_at string | null
TV가 활성화된 시각.
app_version string
TV에 설치된 앱 버전.
os string
TV 운영체제(예: android).
device object
기기 브랜드(brand)와 모델(model). TV가 정보를 보고한 경우에만 제공됩니다.
timezone string | null
TV 시간대(예: America/Sao_Paulo) 또는 null.

상태 계산 방식

  • online 3분 이내에 통신했으며 재생 중
  • alert 마지막 통신이 3~9분 전이거나 TV가 아직 시작 중
  • offline 10분 이상 통신이 없거나 한 번도 연결된 적 없음

관리 패널의 상태 색상과 같은 규칙입니다.

발생 가능한 오류

  • 400 invalid_parameter 매개변수 값이 잘못되었습니다(예: per_page가 최댓값을 초과한 경우).
  • 404 organization_not_found 지정한 organization 값은 사용자가 이 유형의 항목을 볼 수 있는 회사에 해당하지 않습니다.
  • 키 및 요청 한도 관련 오류는 모든 엔드포인트에 적용됩니다. 모든 오류 보기
요청
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();
응답200
{
  "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
  }
}