Integracje
Dokumentacja API Zapier
Uwierzytelnianie, subskrypcje i dostarczanie zdarzeń w integracji Agentinosaurus z Zapier.
Adresy i uprawnienia
Bazowy adres API to https://api.agentinosaurus.com/api/zapier. Żądania i odpowiedzi używają JSON; endpoint tokenów przyjmuje też application/x-www-form-urlencoded. Odpowiedzi zawierające dane konta nie są zapisywane w pamięci podręcznej.
Zakres automatyzacji umożliwia odczyt nazw kamer i Zdarzeń, pobieranie przykładowych zdarzeń oraz zarządzanie subskrypcjami tego połączenia. Nie pozwala odczytywać nagrań, klatek, danych logowania kamer ani kluczy OpenAI, zmieniać kamer lub zarządzać rozliczeniami. Dane zdarzeń, nowe subskrypcje i wysyłka wymagają aktywnego płatnego dostępu lub wyraźnie przyznanych uprawnień do automatyzacji.
Połączenie i listy wyboru
Przy każdym poniższym żądaniu wysyłaj Authorization: Bearer <access-token>. GET /me zwraca id (identyfikator połączenia), account (adres e-mail konta) i includeSummary (zgodę na opisy). Pozostaje dostępny po wstrzymaniu uprawnień z planu.
GET /cameras i GET /events zwracają tablice {id, name}. Stronicowanie używa page=0, następnie 1, 2 itd., po maksymalnie 100 pozycji; pusta tablica oznacza koniec. GET /events?cameraId=<id> zwraca tylko zdarzenia przypisane do wskazanej własnej kamery. Bez cameraId zwracane są wszystkie własne zdarzenia.
Tworzenie, edycja i usuwanie subskrypcji
POST /subscriptions przyjmuje url, trigger, cameraId, eventId i includeSummary. url musi być adresem HTTPS hooks.zapier.com/hooks/ otrzymanym od Zapier, bez parametrów zapytania. trigger to new_incident, incident_resolved, monitoring_interrupted lub monitoring_restored. Filtry kamery i zdarzenia domyślnie są puste (dowolne); includeSummary domyślnie wynosi false.
Filtry zdarzeń dotyczą tylko wyzwalaczy incydentów. Jeśli podano oba filtry, zdarzenie musi być przypisane do kamery. Wysyłka opisów wymaga zgody dla połączenia i włączenia jej w subskrypcji. Konto obsługuje do 100 aktywnych subskrypcji i 10 bieżących połączeń.
Odpowiedź to {id: <subscription-id>}. Ponowienie tego samego aktywnego adresu i filtrów zwraca istniejący identyfikator. Edycja filtrów wyłącza starą subskrypcję i zwraca nowy identyfikator; oczekujące wysyłki starej konfiguracji są anulowane. Zachowaj nowy identyfikator do usunięcia subskrypcji. Żądanie już w trakcie wysyłania może jeszcze dotrzeć.
DELETE /subscriptions/<id> usuwa wyłącznie subskrypcję należącą do uwierzytelnionego połączenia i zwraca {ok: true}. Można je bezpiecznie ponawiać, także po wstrzymaniu uprawnień z planu. Opóźnione usunięcie starego identyfikatora nie usuwa nowej subskrypcji.
{
"url": "https://hooks.zapier.com/hooks/standard/<id>/<secret>/",
"trigger": "new_incident",
"cameraId": "<camera-id>",
"eventId": "<event-id>",
"includeSummary": false
}Przykłady i działanie wyzwalaczy
GET /samples przyjmuje parametry trigger, cameraId, eventId i includeSummary. Zwraca do trzech pasujących ostatnich zdarzeń na podstawie Wiadomości lub sztuczny przykład z is_test=true, jeśli ich nie ma. Pobranie przykładów nie dodaje wysyłki do kolejki. Użycie przykładu do testowania Zapa może jednak wykonać rzeczywistą akcję w aplikacji docelowej.
New Incident jest wysyłany raz na incydent, bez przypomnień. Incident Resolved jest wysyłany raz, gdy kolejne obserwacje spowodują oznaczenie incydentu jako zakończony, niezależnie od ustawienia Wiadomości o zakończeniu. Zakończenie nie gwarantuje bezpieczeństwa sytuacji. Monitoring Interrupted i Monitoring Restored odpowiadają przerwaniu i wznowieniu monitorowania.
Pola danych to id, type, camera_id, camera_name, event_id, event_name, incident_id, detected_at, summary, incident_url i is_test. Identyfikatory są stałe dla zdarzenia i służą do usuwania duplikatów. detected_at to czas zmiany w formacie ISO 8601. Pola incydentu i zdarzenia mogą być puste przy zmianach monitorowania. summary jest pusty bez obu zgód. incident_url używa języka wybranego dla połączenia i wymaga zalogowania.
{
"id": "incident:example",
"type": "new_incident",
"camera_id": "camera-example",
"camera_name": "Loading bay",
"event_id": "event-example",
"event_name": "Delivery arrives",
"incident_id": "example",
"detected_at": "2026-10-20T12:00:00.000Z",
"summary": "",
"incident_url": "https://agentinosaurus.com/en/app/cameras/camera-example?incident=example",
"is_test": false
}Dostarczanie, ponawianie i diagnostyka
Zdarzenia są wysyłane jako żądania HTTPS POST z JSON na adres subskrypcji. Mogą dotrzeć wielokrotnie lub poza kolejnością. Odpowiedź 2xx oznacza przyjęcie przez Zapier, nie ukończenie kolejnych akcji. HTTP 408, 429, 5xx i błędy połączenia są ponawiane z rosnącymi opóźnieniami, do dziesięciu prób. Inne nieudane odpowiedzi kończą wysyłkę; HTTP 410 dodatkowo wyłącza subskrypcję.
Ustawienia → Integracje pokazują problemy połączeń, stan subskrypcji i ostatnie wysyłki. Stan połączenia jest sprawdzany okresowo, również gdy kamery nie zgłaszają incydentów. Nieoczekiwane przerwy związane z bezpieczeństwem lub planem powodują wysłanie e-maila; ostrzeżenia o wysyłce są grupowane. Zmiana na niższy plan wstrzymuje wysyłkę, a pominięte lub anulowane zdarzenia nie są odtwarzane po przywróceniu planu.
Błędy i limity żądań
Błędy tokenów używają kodów OAuth: invalid_client (401), invalid_grant (400) i unsupported_grant_type (400). Pozostałe endpointy zwracają {error: <message>}: 400 dla błędnych danych, 401 dla nieważnego dostępu, 403 przy braku uprawnienia lub zgody, 404 dla niedostępnych zasobów, 413 dla zbyt dużego żądania i 429 dla przekroczenia limitu. Odpowiedź 401 powinna wywołać jedno odświeżenie tokenu i ponowienie żądania.
Uwierzytelnione żądania Zapier mają limit 600 na minutę na właściciela. Ochrona sieciowa ogranicza także wymiany tokenów do 60 na minutę i pozostałe żądania Zapier do 3000 na minutę na adres źródłowy. Odpowiedź 429 zawiera Retry-After; odczekaj wskazaną liczbę sekund. Sekrety klienta i tokeny przechowuj po stronie serwera i nigdy nie umieszczaj ich w logach pomocy technicznej.