Hoppa till innehållet
Sursa Developers

POST/v1/catalog/resolve

Matcha namn mot tjänster i katalogen

resolve_catalog_services

Returnerar för varje namn, så som det förekommer i organisationens data (ett tjänste- eller leverantörsnamn i en utgiftstabell), den matchande katalogposten eller ingenting. Matchningen är deterministisk: namnet normaliseras (skiftläge, diakritiska tecken, skiljetecken, juridiska suffix som Inc, Ltd, GmbH) och jämförs i sin helhet med namnet, gruppen, kurerade alias och en unik webbplatsdomän. Organisationens egna kopplingar (/v1/org/service-aliases) har företräde. Med suggest: true får namn utan matchning upp till fem liknande poster som tips för manuell koppling; de tillämpas aldrig automatiskt. Sursa fyller i fältet service i svarens entiteter (AnswerEntity) och i rader med utgiftsinsikter på samma sätt. Upp till 200 namn per anrop. Det här är en läsåtgärd och är tillgänglig i läget ”View as” (visa som en annan användare).

Autentisering

Skicka en API-nyckel i huvudet Authorization: Authorization: Bearer <nyckel>.

Parametrar i huvuden

  • X-View-Asstring

    Bara för API-nycklar med rollen admin. Gör anropet som dataprofilen <profile>[:viewer|verifier|editor], till exempel employee:viewer. Installationsnyckeln kan inte använda det här huvudet (403).

Cookie-parametrar

  • kb_view_asstring

    Cookie för läget ”View as” (visa som en annan användare) i en session. POST /auth/view-as sätter den och DELETE /auth/view-as tar bort den.

Anropets brödtext

application/json

Objekt: CatalogResolveRequest

  • namesarray of stringobligatorisk

    Namn från organisationens data (1–200), så som de visas i tabeller och svar.

    items ≥ 1, items ≤ 200

  • suggestboolean

    För namn utan träff returneras upp till fem liknande poster (tips för manuell koppling).

    Standard: false

Svar

200Lyckat svar

Svarshuvuden

  • RateLimit-Policy

    Gällande gränser i formatet från IETF-utkastet draft-ietf-httpapi-ratelimit-headers: kommaseparerade poster "<name>";q=<quota>;w=<window in seconds>. key är API-nyckelns anropsfrekvens (kvoten är toppen (burst), fönstret är tiden tills den har fyllts på helt; för en session är det user, utan autentiseringsuppgifter ip); minute, day och month är organisationens kvoter för kalenderminuten, kalenderdygnet och kalendermånaden i UTC.

  • RateLimit

    Vad som återstår av varje gräns i RateLimit-Policy: "<name>";r=<remaining>;t=<seconds until reset>.

  • X-RateLimit-Limit

    Gränsen för den striktaste posten i RateLimit-Policy (den med minst antal återstående anrop).

  • X-RateLimit-Remaining

    Återstående anrop inom den striktaste gränsen.

  • X-RateLimit-Reset

    Sekunder tills den striktaste gränsen nollställs.

application/json

Objekt: CatalogResolveResponse

401Inga autentiseringsuppgifter skickades (varken en sessionscookie eller en API-nyckel), eller så hittades inte nyckeln.

Svarshuvuden

  • RateLimit-Policy

    Gällande gränser i formatet från IETF-utkastet draft-ietf-httpapi-ratelimit-headers: kommaseparerade poster "<name>";q=<quota>;w=<window in seconds>. key är API-nyckelns anropsfrekvens (kvoten är toppen (burst), fönstret är tiden tills den har fyllts på helt; för en session är det user, utan autentiseringsuppgifter ip); minute, day och month är organisationens kvoter för kalenderminuten, kalenderdygnet och kalendermånaden i UTC.

  • RateLimit

    Vad som återstår av varje gräns i RateLimit-Policy: "<name>";r=<remaining>;t=<seconds until reset>.

  • X-RateLimit-Limit

    Gränsen för den striktaste posten i RateLimit-Policy (den med minst antal återstående anrop).

  • X-RateLimit-Remaining

    Återstående anrop inom den striktaste gränsen.

  • X-RateLimit-Reset

    Sekunder tills den striktaste gränsen nollställs.

application/json

Objekt: Error

403Åtgärden är inte tillåten: rollen räcker inte, det saknas åtkomst till samlingen eller kortet, anropet körs i läget ”View as” (visa som en annan användare), eller organisationen är avstängd eller borttagen (`detail` är ett objekt med `code: org_suspended | org_deleted`).

Svarshuvuden

  • RateLimit-Policy

    Gällande gränser i formatet från IETF-utkastet draft-ietf-httpapi-ratelimit-headers: kommaseparerade poster "<name>";q=<quota>;w=<window in seconds>. key är API-nyckelns anropsfrekvens (kvoten är toppen (burst), fönstret är tiden tills den har fyllts på helt; för en session är det user, utan autentiseringsuppgifter ip); minute, day och month är organisationens kvoter för kalenderminuten, kalenderdygnet och kalendermånaden i UTC.

  • RateLimit

    Vad som återstår av varje gräns i RateLimit-Policy: "<name>";r=<remaining>;t=<seconds until reset>.

  • X-RateLimit-Limit

    Gränsen för den striktaste posten i RateLimit-Policy (den med minst antal återstående anrop).

  • X-RateLimit-Remaining

    Återstående anrop inom den striktaste gränsen.

  • X-RateLimit-Reset

    Sekunder tills den striktaste gränsen nollställs.

application/json

Objekt: Error

422Valideringsfel: brödtexten eller parametrarna stämmer inte med schemat (`detail` är en lista med valideringsfel), eller så ligger ett parametervärde utanför det tillåtna intervallet (`detail` är ett meddelande).

Svarshuvuden

  • RateLimit-Policy

    Gällande gränser i formatet från IETF-utkastet draft-ietf-httpapi-ratelimit-headers: kommaseparerade poster "<name>";q=<quota>;w=<window in seconds>. key är API-nyckelns anropsfrekvens (kvoten är toppen (burst), fönstret är tiden tills den har fyllts på helt; för en session är det user, utan autentiseringsuppgifter ip); minute, day och month är organisationens kvoter för kalenderminuten, kalenderdygnet och kalendermånaden i UTC.

  • RateLimit

    Vad som återstår av varje gräns i RateLimit-Policy: "<name>";r=<remaining>;t=<seconds until reset>.

  • X-RateLimit-Limit

    Gränsen för den striktaste posten i RateLimit-Policy (den med minst antal återstående anrop).

  • X-RateLimit-Remaining

    Återstående anrop inom den striktaste gränsen.

  • X-RateLimit-Reset

    Sekunder tills den striktaste gränsen nollställs.

application/json

Objekt: Error

429För många anrop (`api.rate_limited`), organisationens kvot för minuten, dygnet eller månaden är förbrukad (`api.quota_exceeded`; `error.details` innehåller `quota`, `limit` och `reset_at`), organisationens gräns är nådd eller svarstjänsten är upptagen (`answers.engine_busy`). Vänta den tid som anges i huvudet `Retry-After`.

Svarshuvuden

  • Retry-After

    Antal sekunder att vänta innan du skickar anropet igen.

  • RateLimit-Policy

    Gällande gränser i formatet från IETF-utkastet draft-ietf-httpapi-ratelimit-headers: kommaseparerade poster "<name>";q=<quota>;w=<window in seconds>. key är API-nyckelns anropsfrekvens (kvoten är toppen (burst), fönstret är tiden tills den har fyllts på helt; för en session är det user, utan autentiseringsuppgifter ip); minute, day och month är organisationens kvoter för kalenderminuten, kalenderdygnet och kalendermånaden i UTC.

  • RateLimit

    Vad som återstår av varje gräns i RateLimit-Policy: "<name>";r=<remaining>;t=<seconds until reset>.

  • X-RateLimit-Limit

    Gränsen för den striktaste posten i RateLimit-Policy (den med minst antal återstående anrop).

  • X-RateLimit-Remaining

    Återstående anrop inom den striktaste gränsen.

  • X-RateLimit-Reset

    Sekunder tills den striktaste gränsen nollställs.

application/json

Objekt: Error

Felkoder

Koder som den här slutpunkten kan returnera i error.code, utöver de allmänna koderna för alla anrop.

Säkra nya försök

Skicka huvudet Idempotency-Key (till exempel ett UUID) med varje POST och PATCH. Ett nytt försök med samma nyckel inom 24 timmar returnerar det sparade svaret i stället för att köra anropet igen.

Hastighetsbegränsningar

Svaren innehåller huvudena RateLimit och RateLimit-Policy samt de tidigare X-RateLimit-Limit, X-RateLimit-Remaining och X-RateLimit-Reset. Ett 429-svar har Retry-After i sekunder: vänta och försök igen.

← catalog · API-referens