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/).

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