Documentație API peșteri (GraphQL)

Speologie.org oferă un API GraphQL pentru interogarea peșterilor publicate din catalog. Accesul se face cu o API key personală.

1. Endpoint

Trimite cereri POST la:

https://speologie.org/api/graphql

Un GET pe același URL returnează un scurt rezumat de utilizare.

2. Autentificare (API key)

  1. Autentifică-te pe dashboard.
  2. Deschide Editează profilul — cheia apare sub câmpul de email (doar citire).
  3. Poți copia cheia sau o reînnoi dacă ai deja una setată. Dacă nu ai cheie, contactează un administrator.

Include cheia în fiecare cerere, într-unul din headere:

X-API-Key: sk_cheia_ta
# sau
Authorization: Bearer sk_cheia_ta

3. Exemple curl

Lista — 5 peșteri

curl -X POST https://speologie.org/api/graphql \
  -H 'Content-Type: application/json' \
  -H 'X-API-Key: CHEIA_TA' \
  -d '{"query":"{ pesteri(limit: 5) { id title slug judet lungime } }"}'

O peșteră după slug

curl -X POST https://speologie.org/api/graphql \
  -H 'Content-Type: application/json' \
  -H 'X-API-Key: CHEIA_TA' \
  -d '{"query":"{ pestera(slug: \"pestera-ursilor\") { id title slug descriere localitate munte } }"}'

O peșteră după id (cu variabile)

curl -X POST https://speologie.org/api/graphql \
  -H 'Content-Type: application/json' \
  -H 'X-API-Key: CHEIA_TA' \
  -d '{
    "query": "query ($id: Int!) { pestera(id: $id) { id title slug } }",
    "variables": { "id": 123 }
  }'

4. Query-uri GraphQL

Căutare / filtru

{
  pesteri(q: "ursilor", judet: "Bihor", limit: 20, offset: 0) {
    id
    title
    slug
    lungime
    denivelare
  }
}

O peșteră

Folosește exact unul dintre argumente: id sau slug.

{ pestera(id: 123) { id title slug } }
# sau
{ pestera(slug: "pestera-ursilor") { id title slug } }

5. Câmpuri pe tipul Pestera

  • id
  • title
  • slug
  • descriere
  • judet
  • localitate
  • munte
  • lungime
  • denivelare
  • denNegativa
  • altitudine
  • nrHidro
  • bazinHidroId
  • roca
  • scufundabila
  • clasificare
  • stiinta
  • disparuta
  • codAp

6. Limitări

  • Doar peșteri publicate (status = 1).
  • Argumentul limit are maxim 100.
  • Te rugăm să nu abuzezi de API (fără scraping agresiv sau volume inutile de cereri).

Ai nevoie de altceva?

Dacă cauți câmpuri, filtre sau relații care încă nu apar în schemă, scrie-ne la contact@speologie.org — putem extinde API-ul.

Acest site folosește cookies și tehnologii similare pentru funcționalitățile de bază, afișarea de conținut și reclame personalizate și altele. . Informații suplimentare poți găsi în Politica de cookies și Termenii de confidențialitate.