Sari la conținut
onDuty

API REST · v0.12.2

onDuty API

API-ul onDuty: proiecte, servicii, verificări, incidente, ture, pagini de status, alerte primite, apeluri și SMS. Autentificare cu o cheie API: Authorization: Bearer od_live_… (Integrări › Chei API). Răspunsurile sunt JSON, cu cheile în română, datele în ISO 8601; listele vin în date, cu pagina, pe_pagina (50) și total. Erorile au forma {"eroare": "cod", "mesaj": "…"}. Limită: 120 de cereri pe minut pe cheie.

Cuprins
# lista incidentelor deschise
curl https://api.onduty.ro/v1/incidents?stare=deschis \
  -H "Authorization: Bearer od_live_…"

Monitorizare

Proiecte, servicii și verificări.

get /projects → 200

Proiectele · Dreptul cheii: „citire”.

get /services → 200

Serviciile · Dreptul cheii: „citire”.

  • proiect (în query) · ID-ul proiectului
  • pagina (în query) · Pagina, de la 1
get /services/{id} → 200

Un serviciu · Dreptul cheii: „citire”.

  • id (în adresă)
get /checks → 200

Verificările · Dreptul cheii: „citire”.

  • serviciu (în query) · ID-ul serviciului
  • pagina (în query) · Pagina, de la 1
post /checks → 201

Adaugă o verificare · Dreptul cheii: „scriere”.

Corpul (VerificareNoua)
  • serviciu obligatoriu string
  • tip obligatoriu string: http, keyword, api, ping, port, udp, smtp, imap, ssl, domain, dns, heartbeat
  • metoda string · Pentru tip = http sau keyword; implicit GET
  • coduri string · Codurile acceptate, de exemplu 200-299, 301
  • asertiuni array · Pentru tip = http: aserțiuni pe corpul JSON (planurile cu „API checks”)
  • pasi array · Pentru tip = api: 1–10 cereri, în ordine (planurile cu „API checks”)
  • payload string · Pentru tip = udp: ce trimitem
  • format_payload string: text, hex
  • raspuns_asteptat string · Pentru tip = udp: textul pe care trebuie să-l conțină răspunsul
  • tls string: none, starttls, tls · Pentru tip = smtp sau imap
  • etichete array
  • regiuni_publice boolean · false: rulează doar din verificatoarele private alese
  • verificatoare_private array · Id-urile verificatoarelor private ale contului
  • nume string
  • tinta string · URL-ul, host-ul sau domeniul
  • critica boolean
  • interval integer · Secunde, dintre intervalele planului
  • cuvant string · Pentru tip = keyword
  • cuvant_absent boolean
  • port integer · Pentru tip = port sau udp (obligatoriu), smtp sau imap (opțional)
  • inregistrare string · Pentru tip = dns: A, AAAA, CNAME, MX, NS, TXT
  • asteptat string
  • perioada integer · Pentru tip = heartbeat, secunde
  • gratie integer
get /checks/{id} → 200

O verificare · Dreptul cheii: „citire”.

  • id (în adresă)
post /checks/{id}/pause → 200

Pune verificarea în pauză · Dreptul cheii: „scriere”.

  • id (în adresă)
post /checks/{id}/resume → 200

Reia verificarea · Dreptul cheii: „scriere”.

  • id (în adresă)
get /regions → 200

Regiunile active și adresele IP din care pleacă verificările, pentru whitelisting în firewall (aceeași listă ca onduty.ro/ip-uri.json și /ip-uri.txt); fără cheie

Incidente

Deschide, confirmă și rezolvă incidente.

get /incidents → 200

Incidentele, cele mai noi întâi · Dreptul cheii: „citire”.

  • stare (în query) · deschis, confirmat sau rezolvat
  • proiect (în query) · ID-ul proiectului
  • serviciu (în query) · ID-ul serviciului
  • test (în query) · „da” include simulările
  • pagina (în query) · Pagina, de la 1
post /incidents → 201

Deschide un incident; politica proiectului sau a serviciului anunță echipa. Cu aceeași „cheie” cât e deschis, întoarce același incident · Dreptul cheii: „scriere”.

Corpul (IncidentNou)
  • titlu obligatoriu string
  • proiect obligatoriu string
  • serviciu string
  • prioritate integer
  • descriere string
  • cheie string · Deduplicare: cât incidentul e deschis, aceeași cheie îl întoarce
get /incidents/{reference} → 200

Un incident, după INC-0142 sau UUID · Dreptul cheii: „citire”.

  • reference (în adresă)
post /incidents/{reference}/acknowledge → 200

Confirmă incidentul (oprește escaladarea) · Dreptul cheii: „scriere”.

  • reference (în adresă)
post /incidents/{reference}/resolve → 200

Rezolvă incidentul · Dreptul cheii: „scriere”.

  • reference (în adresă)

Gardă

Cine e de gardă și paginile de status.

get /shifts → 200

Cine e de gardă pe fiecare tură, acum sau la „la” · Dreptul cheii: „citire”.

  • la (în query) · Momentul, ISO 8601
get /status-pages → 200

Paginile de status, cu starea componentelor · Dreptul cheii: „citire”.

Evenimente

Alerte din alte sisteme, cu cheia unui punct de primire.

post /events → 202

O alertă din alt sistem, în formatul generic onDuty; „cheie” deduplică, „stare: rezolvat” închide

Corpul (Eveniment)
  • integrare obligatoriu string · Cheia punctului de primire (ultima parte a URL-ului lui)
  • titlu obligatoriu string
  • severitate string · critic, mare, mediu, mic (sau P1–P4)
  • sursa string
  • cheie string · Alertele cu aceeași cheie actualizează același incident
  • stare string: deschis, rezolvat
  • descriere string
  • link string
  • etichete object

Apeluri și SMS

Apeluri și SMS-uri spre numerele verificate ale contului.

post /calls → 202

Sună un număr verificat și citește mesajul (TTS, română) · Dreptul cheii: „apeluri și SMS”.

Corpul (ApelNou)
  • catre obligatoriu string
  • mesaj obligatoriu string
  • de_pe string · Unul dintre numerele contului
  • webhook string · URL https unde trimitem rezultatul
get /calls/{id} → 200

Rezultatul unui apel · Dreptul cheii: „apeluri și SMS”.

  • id (în adresă)
post /sms → 202

Trimite un SMS spre un număr verificat · Dreptul cheii: „apeluri și SMS”.

Corpul (SmsNou)
  • catre obligatoriu string
  • mesaj obligatoriu string
  • webhook string
get /sms/{id} → 200

Starea unui SMS · Dreptul cheii: „apeluri și SMS”.

  • id (în adresă)

Erori

Orice eroare are forma {"eroare": "cod", "mesaj": "explicație"}: 401 cheie_invalida, 403 drept_lipsa, 404 negasit, 409 stare_gresita, 422 date_invalide sau numar_neverificat, 429 prea_multe_cereri sau limita_zilnica.