API — wprowadzenie
REST i GraphQL, tokeny, webhooki, limity, najlepsze praktyki.
Avenit udostępnia publiczne API do każdego modułu — REST, GraphQL, webhooki. Ta strona pokazuje podstawy.
Base URL
Każdy tenant ma własny endpoint:
https://{slug}.app.avenit.pl/api/v1
Przykład: https://techflow.app.avenit.pl/api/v1/contractors.
Uwierzytelnianie
Wspieramy dwie metody:
Personal Access Token (PAT) — token dla konkretnego użytkownika, generowany w Ustawienia → Tokeny API. Dodajesz w nagłówku:
Authorization: Bearer avenit_pat_xyz123...
OAuth 2.0 — dla aplikacji zewnętrznych. Szczegóły w OAuth flow.
Pierwszy request
curl -H "Authorization: Bearer $AVENIT_TOKEN" \
https://techflow.app.avenit.pl/api/v1/contractors?limit=10
Odpowiedź:
{
"data": [
{
"id": "018f2b1a-...",
"type": "company",
"name": "ACME Sp. z o.o.",
"taxId": "1234567890",
"email": "kontakt@acme.pl"
}
],
"meta": { "total": 284, "page": 1, "limit": 10 }
}
GraphQL
Dostępny pod /api/v1/graphql. Ten sam model danych co REST, ale z możliwością dokładnego wyboru pól i zagnieżdżonych relacji.
query {
contractors(limit: 10) {
id
name
opportunities { id, value, stage }
}
}
Webhooki
Każde zdarzenie systemowe (create / update / delete) może wywołać webhook na Twój endpoint. Konfigurujesz w Ustawienia → Webhooki.
- Retry: 3× z exponential backoff (1s, 10s, 60s).
- Signature: nagłówek
X-Avenit-Signature: sha256=...dla weryfikacji. - At-least-once delivery — pamiętaj o idempotencji po stronie odbiorcy.
Limity
- REST/GraphQL: 600 requestów/minutę per tenant (burst 1200).
- Webhooki wychodzące: 100/s.
- Payload: max 10 MB.
Plan Enterprise może negocjować wyższe limity.