Liigu sisu juurde
Agency pakett

Husly API

Halda saite, lehti, blogi ja meediat oma skriptist, Zapierist või agentuuri tööriistast. Versioonitud REST-liides, autentimine API-võtmega.

Loo API-võti
Mida on vaja

API kuulub Agency-paketti. Võtme saab luua konto omanik: Minu konto -> API-võtmed. Täisvõtit näidatakse ainult ÜHEL korral - salvesta see kohe.

Alusta

curl
# Who am I? Returns the account id and the key's scopes.
curl https://api.husly.app/api/v1/me \
  -H "Authorization: Bearer hsly_live_ab12cd34ef56_..."

# List the sites on this account.
curl https://api.husly.app/api/v1/sites \
  -H "Authorization: Bearer hsly_live_ab12cd34ef56_..."

Autentimine

Iga päring kannab API-võtit. Kaks vormi töötavad ühtemoodi - vali see, mida sinu tööriist toetab. Võti algab alati eesliitega hsly_live_. Ilma võtmeta või tühistatud võtmega päring saab 401.

HTTP
Authorization: Bearer hsly_live_ab12cd34ef56_XXXXXXXXXXXXXXXXXXXXXXXX

# or

X-Api-Key: hsly_live_ab12cd34ef56_XXXXXXXXXXXXXXXXXXXXXXXX
Võti on saladus

Ära pane võtit brauseris jooksvasse koodi ega avalikku repositooriumi - see annab ligipääsu kogu kontole. Hoia seda serveri keskkonnamuutujas. Lekkinud võtme saab kohe tühistada ja uue luua.

Õigused (scope'id)

Võti kannab täpselt neid õigusi, mille sa loomisel märkisid. Puuduv õigus annab 403 insufficient_scope. Anna igale võtmele ainult see, mida ta päriselt vajab: Zapieri võti, mis loeb vormivastuseid, ei pea saama saite kustutada.

Endpointid

Kõik teed algavad https://api.husly.app pealt. :siteId on saidi id, mille saad GET /api/v1/sites vastusest. Sait peab kuuluma sinu kontole - võõra saidi id vastab 404, mitte 403, sest võti ei tohi teada teiste kontode olemasolust.

Konto

Saidid

Lehed

Blogi

Meedia

Vormid

Suunamised

Menüüd

Statistika

Veebihaagid

Näide: avalda blogipostitus

Postituse sisu on plokipuu - sama kuju, mida builder salvestab. Lihtsaim algus on üks richtext-plokk. Kui jätad layoutJson andmata, tekib tühi postitus, mille sisu saad builderis edasi toimetada.

curl
curl -X POST https://api.husly.app/api/v1/sites/SITE_ID/posts \
  -H "Authorization: Bearer hsly_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "slug": "kevadised-pakkumised",
    "title":   { "et": "Kevadised pakkumised", "en": "Spring offers" },
    "excerpt": { "et": "Lühike sissejuhatus.", "en": "A short intro." },
    "status": "published",
    "authorName": "Mari Maasikas",
    "layoutJson": {
      "contentWidth": "narrow",
      "blocks": [
        { "id": "b1", "type": "richtext", "props": {
            "content": { "et": "<p>Tere tulemast!</p>", "en": "<p>Welcome!</p>" } } }
      ]
    }
  }'

Vead

Viga tuleb alati JSON-ina kujul { "error": "kood" }, vahel koos lisaväljadega (nt required, limit). Kood on masinloetav ja püsiv - kirjuta oma loogika koodi, mitte teksti järgi.

Piirangud

Päringute arv on piiratud võtme kohta minutis. Üle piiri minek annab 429 koos Retry-After päisega ja vastuses on limit-väli, mis ütleb, milline piir kehtis. Paketi kvoodid - saitide arv, lehtede arv, meediamaht - kehtivad ka API kaudu: neid ei saa skriptiga mööda hiilida.

Versioon

Praegune versioon on v1. Me ei muuda v1 vastuste kuju viisil, mis su integratsiooni katki teeb - uued väljad võivad lisanduda, olemasolevad ei kao. Murrav muudatus tähendaks uut teed (/api/v2/).

Rendi partneri API

Eraldi API reisibüroodele, kanalihalduritele ja tehisintellekti agentidele, kes müüvad ühe Husly rendiettevõtte autosid, rattaid, paate, varustust või majutust. Võtme loob saidi omanik Rendi vahekaardil „Integratsioonid“ (Partneri API) ja annab selle partnerile. Võti avab ainult selle saidi: avaldatud kataloogi ja need broneeringud, mille partner ise tegi. Agency-paketti pole vaja, see kuulub rendi lisamooduli juurde.

Teine võti, teine aadress

Partneri võti algab eesliitega hsly_partner_ ja töötab ainult aadressil /api/partner/v1/rentals. Konto API võti (hsly_live_) siin ei tööta, ja partneri võti ei tööta konto API-s.

curl
# The site, its terms, and what this key may do.
curl https://api.husly.app/api/partner/v1/rentals/me \
  -H "Authorization: Bearer hsly_partner_ab12cd34ef56_..."

# What is free from 12 to 14 June, with the lowest price.
curl "https://api.husly.app/api/partner/v1/rentals/listings?from=2027-06-12&to=2027-06-14" \
  -H "Authorization: Bearer hsly_partner_ab12cd34ef56_..."

# Hold a car for 20 minutes...
curl -X POST https://api.husly.app/api/partner/v1/rentals/bookings \
  -H "Authorization: Bearer hsly_partner_ab12cd34ef56_..." \
  -H "Content-Type: application/json" \
  -d '{
    "listing": "toyota-rav4",
    "from": "2027-06-12",
    "to": "2027-06-14",
    "guest": { "name": "Mari Maasikas", "email": "[email protected]", "phone": "+372 5555 5555" },
    "termsAccepted": true,
    "hold": true,
    "reference": "AG-10442"
  }'

# ...and book it once the traveller says yes.
curl -X POST https://api.husly.app/api/partner/v1/rentals/bookings/BOOKING_ID/confirm \
  -H "Authorization: Bearer hsly_partner_ab12cd34ef56_..."

Partneri API endpointid

Kõigepealt hoia, siis kinnita

"hold": true hoiab kuupäevi 20 minutit (kuni 60) ega kirjuta kellelegi. POST /bookings/:id/confirm teeb sellest broneeringu; kinnitamata hoidmine vabastab kuupäevad ise. Sama "reference" uuesti saates saad sama broneeringu, mitte teist. Hind ja vabad päevad on samad mis rendiettevõtte enda lehel. Partneri broneeringut Huslys ei maksta: raha arveldab partner rentijaga.

Tehisintellekti agendid (MCP)

Sama API on ka MCP-server aadressil POST /api/partner/v1/rentals/mcp, sama võtmega. See räägib MCP versioone 2026-07-28, 2025-11-25, 2025-06-18, 2025-03-26. Tööriistad: rentals_site_info, search_rentals, get_rental, get_rental_calendar, quote_rental, book_rental, confirm_booking, cancel_booking, get_booking, list_bookings. Ainult lugemiseks mõeldud võti broneerimise tööriistu ei saa. book_rental hoiab kuupäevad vaikimisi kinni ja palub agendil enne confirm_booking'ut reisija nõusolekut küsida.

mcp.json
{
  "mcpServers": {
    "husly-rentals": {
      "type": "http",
      "url": "https://api.husly.app/api/partner/v1/rentals/mcp",
      "headers": {
        "Authorization": "Bearer hsly_partner_ab12cd34ef56_..."
      }
    }
  }
}

Partneri veebihaak

Partner määrab oma aadressi päringuga PUT /api/partner/v1/rentals/webhook; allkirjastamise saladust näidatakse ühe korra. Sündmused: rental.booking.created, rental.booking.confirmed, rental.booking.cancelled, ainult partneri enda broneeringute kohta. Allkiri on sama mis konto veebihaagil: X-Husly-Signature: sha256=<hex>, HMAC-SHA256 väärtusest <timestamp>.<body>.

Täielik viide

Kõik väljad ja vastuste kujud on partneri API oma juhendis ja OpenAPI 3.1 failis, mille saab tõmmata Postmani või kliendi genereerimiseks.

Korduma kippuvad küsimused

Valmis alustama?

API kuulub Agency-paketti. Kui sul on juba konto, loo võti mõne klikiga.

Loo API-võti