---
sidebar:
  order: 1
title: HTTP-API
description: >-
  Autentiser, finn verktøy og bekreft endringer gjennom det eksisterende HTTP-API-et.
---

Send forespørsler til produktets API til Influence-opprinnelsen du stoler på, for eksempel `https://influence.so`. Dokumentasjonsdomenet godtar ikke forespørsler til produktets API. Bruk de nøyaktige stiene nedenfor uten spørringsparametere.

## Opprett en API-nøkkel med avgrenset tilgang [#create-a-scoped-api-key]

I [Influence-innstillingene](https://influence.so/sign-in?next=%2Fapp%2Fsettings%2Faccount%23settings-developer) åpner du Apper og automatiseringer → API-nøkler. Velg tillatelsene du trenger, og en utløpstid. Lagre nøkkelen som vises bare 1 gang, i hemmelighetslageret ditt som `PUBLISH_API_TOKEN`. Send den i `Authorization: Bearer …`. Legg den aldri i en URL, forespørselskropp eller chat. Tilbakekall den når du ikke trenger den lenger.

## Finn verktøy og les kontoer [#discover-tools-and-make-a-read]

Sett `PUBLISH_API_URL` til opprinnelsen du stoler på. Disse eksemplene forutsetter at prosessen din allerede har `PUBLISH_API_TOKEN`. `accountList` krever `integrations:read`. Følg pagineringsfeltene for å hente flere sider.

```sh
export PUBLISH_API_URL="https://influence.so"
curl "$PUBLISH_API_URL/api/v1/tools" \
  -H "Authorization: Bearer $PUBLISH_API_TOKEN"

curl "$PUBLISH_API_URL/api/v1/tools/accountList/call" \
  -H "Authorization: Bearer $PUBLISH_API_TOKEN" \
  -H 'Content-Type: application/json' \
  --data '{"input":{}}'
```

## Forespørselsstier [#request-paths]

| Metode | Sti | Formål |
| --- | --- | --- |
| `GET` | `/api/v1/tools` | Vis verktøyene som er tilgjengelige med disse tilgangsopplysningene. |
| `POST` | `/api/v1/tools/{tool}/call` | Kall et verktøy som ikke krever bekreftelse, inkludert videreføring av autoriserte opplastinger. |
| `POST` | `/api/v1/tools/{tool}/prepare` | Klargjør en nøyaktig skriveoperasjon uten å utføre den. |
| `POST` | `/api/v1/tools/{tool}/confirm` | Bekreft den klargjorte skriveoperasjonen. |
| `POST` | `/api/v1/media/import` | Bekreft en klargjort binær opplasting av et lite bilde. |

JSON-forespørsler til verktøy bruker `Content-Type: application/json` og en kropp som bare inneholder `input`: `{"input":{…}}`. Hent inndataskjemaet for hvert verktøy fra den gjeldende verktøykatalogen.

## Klargjør og bekreft handlinger [#prepare-and-confirm-actions]

Bruk katalogens `confirmation`-felt. Leseoperasjoner trenger vanligvis ingen bekreftelse, mens en oppdatering av Innsikt krever bekreftelse selv om det er en leseoperasjon. Oppslag av opplastingsdeler, fullføring og avbryting viderefører en allerede autorisert opplasting gjennom `/call`.

1. Send de nøyaktige forretningsinndataene til `/prepare`. Et vellykket svar har `status: "confirmation_required"`, `confirmationCapability`, `expiresAt`, `inputDigest` og en valgfri `summary`.
2. Send de samme inndataene til `/confirm` før utløp. Legg den returnerte bekreftelsesverdien i `X-Publish-Confirmation` og en ny nøkkel generert av den som gjør kallet, i `Idempotency-Key`.
3. Behold inndataene, bekreftelsesverdien og nøkkelen samlet. Etter en avbrutt bekreftelse eller en bekreftelse med usikkert utfall gjenbruker du alle 3 for den samme forespørselen. Ikke klargjør en erstatning for å gjenopprette et usikkert resultat.

En idempotensnøkkel inneholder 16–200 tegn fra `A–Z`, `a–z`, `0–9`, `.`, `_`, `:` og `-`. Bekreftelsesverdiene er hemmelige verdier der innholdet ikke skal tolkes. En nøkkel som sendes til `/call` eller `/prepare`, reserverer ikke en bekreftet skriveoperasjon.

Bekreftelse av transporten er separat fra godkjenning av publisering. Ved publisering eller endringer i publiseringstidspunktet viser du hele den gjeldende gjennomgangen: kontoer, tekst, innstillinger, faktiske medieforhåndsvisninger eller lenker, planlagt tidspunkt og tidssone. Klienten kan rapportere en ny, uttrykkelig menneskelig godkjenning med `approval: "approved"` for gjennomganger av sosiale tekst-, bilde- og videoinnlegg som oppfyller kravene. Den må ikke finne på samtykke eller behandle klargjøring som godkjenning. Influence registrerer dette som klientrapportert godkjenning. Et støttet innebygd kort eller en gjennomgang mens du er logget inn, registrerer sin egen menneskelige handling.

TikTok Direct godtar uttrykkelige valg og samtykke i chatten gjennom [gjennomgangsflyten](/nb/developers/mcp#prepare-finished-content). Lagre alle valgene med `campaignReview`, og innhent deretter en ny godkjenning av den oppdaterte gjennomgangen før utføring. Et kort for gjennomgang er valgfritt. Vanlig planlegging av publisering gjennom API/CLI bruker ikke av kvoten for planlegging av publisering med KI. Den separate [kvoten for MCP og Influence IQ](/nb/help/ai-assistants#scheduling-allowance) følger disse flytene selv når en lagret KI-gjennomgang senere godkjennes i Influence. Andre krav fra abonnementet og tjenesten gjelder fortsatt. Les den lagrede kvitteringen før du gjør noe mer. `needs_review` krever avklaring, ikke en ny sending.

## Håndter feil og usikre resultater [#handle-errors-and-uncertain-results]

Kontroller både HTTP-statusen og svarkroppen. Vellykkede verktøykall returnerer `{"ok":true,"toolName":"…","output":{…}}`. Verktøyfeil returnerer `{"ok":false,"toolName":"…","error":{"code":"…","message":"…","retryable":false}}` og kan komme med HTTP 200. Transportfeil bruker `{"error":{"code":"…","message":"…","retryable":false}}` uten `ok` eller `toolName`.

En 401 betyr at autentisering kreves. Kontroller utløp eller tilbakekalling. En manglende tillatelse krever at riktig tilgang gis, ikke gjentatte forespørsler. En 503 kan bety at tjenesten er utilgjengelig, eller at en annen forespørsel om planlagt publisering oppdaterer arbeidsområdet. Bruk den returnerte feilkoden og veiledningen for nye forsøk. Ikke gjenta en publiseringshandling automatisk. Et tidsavbrudd beviser ikke at en skriveoperasjon mislyktes. Behold bekreftelsesdataene, og les den gjeldende statusen før du sender inn på nytt. Godtatt, planlagt og publisert er ulike utfall.

## Last opp medier [#upload-media]

Bruk helst SDK-ens `uploadMedia` eller CLI-ens `media:upload` for lokale filer. De bruker de samme verktøyene for multipart-opplasting og bevarer en stabil `clientKey` for nye forsøk. Bare et klart resultat med en `assetId` kan legges ved. For en autorisert HTTPS-lenke bruker du `mediaImport` med `url` og valgfri `name`. Reelle filreferanser fra vertsmiljøet bruker det separate `file`-objektet. En offentlig URL trenger ingen oppdiktet fil-ID fra vertsmiljøet. En lokal filsti er ikke en nedlastings-URL. Se [mediegrensene](/nb/help/media): HTTPS-import av video har en grense på 250 MiB, selv når en større MP4-fil som er klar til publisering, ville vært tillatt ved direkte opplasting.

`POST /api/v1/media/import` støtter den eksisterende transporten for små bilder. Klargjør `mediaImport` med den nøyaktige opplastingsbeskrivelsen, og send deretter de samme bytene som `application/octet-stream`. Ta med `X-Publish-Confirmation`, `Idempotency-Key` og `X-Publish-Upload` som inneholder den URI-kodede JSON-beskrivelsen. Bytene må samsvare med størrelsen og SHA-256-verdien. Denne transporten er begrenset til 3 MiB. Bruk opplastingshjelperen for større støttede filer. Opplasting godkjenner aldri publisering.

[Bla i API-referansen](/nb/api-reference) eller [last ned OpenAPI-spesifikasjonen](/specs/influence.openapi.json).
