Siirry sisältöön
Sursa Developers

Todennus

Jokaisessa Sursa API:n pyynnössä on Authorization-otsakkeessa API-avain tai sovelluksen OAuth-käyttöoikeustunnus:

Authorization: Bearer kb_3f9c…

Avain tunnistaa organisaation ja ratkaisee, mitä pyyntö voi nähdä ja muuttaa: sen rooli, sen käyttöalueet, sen dataprofiili ja sen kokoelmat. API-osoitteessa ei ole istuntoja eikä evästeitä. Jokainen pyyntö todennetaan erikseen, joten voit lähettää pyyntöjä samalla avaimella rinnakkain ja useilta palvelimilta.

curl https://api.sursa.com/v1/me \
  -H "Authorization: Bearer $SURSA_API_KEY"

Aiemmat integraatiot voivat lähettää avaimen sen sijaan X-API-Key-otsakkeessa. Se hyväksytään edelleen, mutta uudessa koodissa kannattaa käyttää Authorization: Bearer -muotoa.

Tunnistetietojen lajit

TunnistetietoMuotoMissä se toimii
Organisaation API-avainkb_…Kaikki API:n päätepisteet avaimen roolin, käyttöalueiden, dataprofiilin ja kokoelmien rajoissa.
Mukautetun lähteen avainkbsrc_…Vain oman mukautetun lähteensä push-päätepisteet (/v1/push/sources/{source_id}/…).
OAuth-käyttöoikeustunnuskbat_…API-viitteen päätepisteet käyttöoikeustunnuksen käyttöalueiden rajoissa. Valtuutuskoodilla POST /oauth/token -päätepisteestä saatu käyttöoikeustunnus toimii sen työntekijän puolesta, joka antoi suostumuksen; client_credentials-käyttöoikeustunnus toimii organisaation puolesta kuten API-avain. Käyttöoikeustunnus on voimassa 1 tunnin.

Kaikki lähetetään samalla tavalla. Mukautetun lähteen avain ei voi lukea, hakea eikä muuttaa mitään lähteensä ulkopuolella; käytä sitä silloin, kun avainta säilyttää kolmas osapuoli, kuten integraatioalusta.

Todennusvirheet

Tila ja koodiMitä se tarkoittaaMitä tehdä
401 auth.not_authenticatedAvain puuttuu, se on kirjoitettu väärin tai se on peruttu.Tarkista otsake ja avaimen arvo.
401 api_keys.expiredAvaimen vanhenemispäivä on ohitettu.Luo uusi avain ja korvaa vanha sillä.
401 sources.push_key_invalidMukautetun lähteen avain on väärä tai peruttu, tai se kuuluu toiselle lähteelle.Tarkista avain ja polussa oleva lähteen tunnus.
401 oauth.token_expiredOAuth-käyttöoikeustunnuksen voimassaolo on päättynyt.Hae uusi käyttöoikeustunnus päivitystunnuksella.
403 api_keys.scopeAvaimella ei ole tämän toiminnon käyttöaluetta.Lisää käyttöalue tai käytä avainta, jolla se on.
403 api_keys.feature_disabledOrganisaation pakettiin eivät sisälly API-avaimet.Ota yhteyttä organisaation ylläpitäjään.
403 api_keys.ip_not_allowedPyyntö tulee osoitteesta, joka ei kuulu avaimen sallittuihin osoitteisiin.Kutsu API:a sallitusta verkosta tai muuta avaimen osoitteita.
403 api_keys.mcp_onlyHenkilökohtaista MCP-avainta käytettiin /mcp-päätepisteen ulkopuolella.Käytä API:ssa organisaation API-avainta.
403 oauth.operation_not_allowedToiminto ei ole osa julkista API:a, joten OAuth-käyttöoikeustunnus ei voi kutsua sitä.Käytä API-viitteessä kuvattua toimintoa.
403 org.suspendedOrganisaation toiminta on keskeytetty. Sen tiedot säilytetään.Ota yhteyttä organisaation ylläpitäjään.

403 tarkoittaa, että pyyntö on todennettu, mutta sitä ei sallita. Objekti, jota avain ei saa nähdä, vastaa 404 aivan kuten objekti, jota ei ole olemassa, joten avain ei voi saada selville, mitä sen käyttöoikeuksien ulkopuolella on.

Toimiminen dataprofiilin puolesta

Avain, jolla on rooli admin, voi tarkistaa, mitä jokin toinen ihmisryhmä näkisi: X-View-As-otsake suorittaa pyynnön dataprofiilin ja valinnaisesti myös roolin puolesta.

curl "https://api.sursa.com/v1/cards?limit=20" \
  -H "Authorization: Bearer $SURSA_ADMIN_KEY" \
  -H "X-View-As: employee:viewer"

Tässä tilassa pyynnöt vain lukevat: mikä tahansa muutos palauttaa 403-vastauksen ja koodin view_as.read_only. OAuth-käyttöoikeustunnus tai avain, jolla ei ole roolia admin, ei voi käyttää X-View-As-otsaketta: tällainen pyyntö palauttaa 403-vastauksen ja koodin view_as.admin_key_required. Otsake, joka ei nimeä mitään olemassa olevaa profiilia, palauttaa 400-vastauksen ja koodin view_as.invalid_header.

Selainsovellukset

API sallii pyynnöt mistä tahansa verkkoalkuperästä (Access-Control-Allow-Origin: *) eikä koskaan käytä evästeitä, joten verkkosivu voi kutsua sitä fetch-funktiolla. Avain on tällöin sivulla ja näkyy jokaiselle, joka sivua käyttää. Kutsu API:a selaimesta vain sellaisella avaimella, jonka voit näyttää näille käyttäjille, kuten julkisiin kokoelmiin rajatulla viewer-avaimella, tai sijoita oma palvelimesi selaimen ja Sursan väliin.

Mitä vain työntekijä voi tehdä

Organisaation API-avain toimii organisaation puolesta, ei henkilön. Kaksi API:n osaa kuuluu ihmisille, joten ne toimivat vain sellaisella tunnistetiedolla, joka toimii työntekijän puolesta: Sursan istunnolla tai OAuth-käyttöoikeustunnuksella, joka on myönnetty työntekijän suostumuksella.

Keskustelut kuuluvat henkilölle. Organisaation API-avain näkee GET /v1/conversations -listassa vain keskustelut, jotka se on itse aloittanut. Julkisessa API:ssa ei ole toimintoa, joka aloittaisi keskustelun, joten avaimelle lista on yleensä tyhjä, eikä työntekijöiden keskusteluja näytetä sille koskaan. Kysymykset ilman keskustelua, POST /v1/ask -pyynnöllä tai POST /v1/chat -pyynnöllä, toimivat millä tahansa avaimella, jolla on käyttöalue ask. Jos haluat listata työntekijän keskustelut ja lukea yhden niistä historian GET /v1/conversations/{conv_id} -pyynnöllä, kutsu API:a OAuth-käyttöoikeustunnuksella kyseisen työntekijän puolesta. Käyttöoikeustunnus näkee vain tämän työntekijän omat keskustelut; mikä tahansa muu keskustelu palauttaa 404-vastauksen ja koodin conversations.not_found.

Vain työntekijä vahvistaa kortin. Vahvistus kertoo, että henkilö on tarkistanut sisällön, joten POST /v1/cards/{card_id}/verification/verify ja POST /v1/cards/{card_id}/verify edellyttävät istuntoa tai OAuth-käyttöoikeustunnusta sellaisen työntekijän puolesta, joka saa vahvistaa kortin. Organisaation API-avaimella tai client_credentials-käyttöoikeustunnuksella ne palauttavat 400-vastauksen ja koodin cards.verify_user_account_required. Tavalliset tarkistukset tehdään ensin: kortti, jota avain ei näe, palauttaa 404-vastauksen, ja avain, joka ei saa vahvistaa korttia, saa 403-vastauksen.