Przejdź do treści
Avenit

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.

Co dalej