---
sidebar:
  order: 1
title: HTTP-API
description: >-
  Autentisera, hitta verktyg och bekräfta ändringar via det befintliga HTTP-API:et.
---

Skicka produktens API-begäranden till din betrodda Influence-adress, till exempel `https://influence.so`. Dokumentationsdomänen tar inte emot produktens API-begäranden. Använd exakt de sökvägar som visas nedan utan frågeparametrar.

## Skapa en API-nyckel med avgränsade behörigheter [#create-a-scoped-api-key]

I [Inställningar i Influence](https://influence.so/sign-in?next=%2Fapp%2Fsettings%2Faccount%23settings-developer) öppnar du Appar och automatiseringar → API-nycklar. Välj de behörigheter du behöver och en giltighetstid. Spara nyckeln, som visas 1 gång, i din hemlighetshantering som `PUBLISH_API_TOKEN`. Skicka den i `Authorization: Bearer …`; lägg den aldrig i en URL, begärandekropp eller chatt. Återkalla den när den inte längre behövs.

## Hitta verktyg och läs konton [#discover-tools-and-make-a-read]

Sätt `PUBLISH_API_URL` till den betrodda ursprungsadressen. Exemplen förutsätter att processen redan har `PUBLISH_API_TOKEN`. `accountList` kräver `integrations:read`; följ fälten för sidindelning för att hämta fler sidor.

```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":{}}'
```

## Sökvägar för begäranden [#request-paths]

| Metod | Sökväg | Syfte |
| --- | --- | --- |
| `GET` | `/api/v1/tools` | Lista verktygen som dessa autentiseringsuppgifter ger åtkomst till. |
| `POST` | `/api/v1/tools/{tool}/call` | Anropa ett verktyg som inte kräver bekräftelse, inklusive fortsättning av godkända uppladdningar. |
| `POST` | `/api/v1/tools/{tool}/prepare` | Förbered en exakt skrivning utan att utföra den. |
| `POST` | `/api/v1/tools/{tool}/confirm` | Bekräfta den förberedda skrivningen. |
| `POST` | `/api/v1/media/import` | Bekräfta en förberedd uppladdning av en liten binär bildfil. |

JSON-begäranden till verktyg använder `Content-Type: application/json` och en kropp som bara innehåller `input`: `{"input":{…}}`. Hämta varje verktygs indataschema från den aktuella verktygskatalogen.

## Förbered och bekräfta åtgärder [#prepare-and-confirm-actions]

Använd katalogens fält `confirmation`: läsningar kräver oftast ingen bekräftelse, men en uppdatering av Insikter kräver det trots att den är en läsning. Uppslagning av uppladdningsdelar, slutförande och avbrytande fortsätter en redan godkänd uppladdning via `/call`.

1. Skicka de exakta indata för verksamhetsåtgärden till `/prepare`. Ett lyckat svar innehåller `status: "confirmation_required"`, `confirmationCapability`, `expiresAt`, `inputDigest` och eventuellt `summary`.
2. Skicka samma indata till `/confirm` innan giltighetstiden löper ut. Lägg det returnerade bekräftelsevärdet i `X-Publish-Confirmation` och en ny klientgenererad nyckel i `Idempotency-Key`.
3. Behåll indata, bekräftelsevärdet och nyckeln tillsammans. Efter en avbruten eller osäker bekräftelse ska du återanvända alla 3 för samma begäran. Förbered inte en ersättningsåtgärd för att hantera ett osäkert resultat.

En idempotensnyckel innehåller 16–200 tecken ur `A–Z`, `a–z`, `0–9`, `.`, `_`, `:` och `-`. Bekräftelsevärden är opaka hemligheter. En nyckel som skickas till `/call` eller `/prepare` reserverar ingen bekräftad skrivning.

Transportbekräftelse är skild från godkännande av publicering. Vid publicering eller ändring av schemat ska du visa hela den aktuella granskningen: konton, text, inställningar, faktiska medieförhandsvisningar eller länkar, schemalagd tid och tidszon. Klienten kan rapportera ett nytt uttryckligt mänskligt godkännande med `approval: "approved"` för de granskningar av sociala text-, bild- och videoinlägg som stöds; den får inte hitta på samtycke eller behandla förberedelse som godkännande. Influence registrerar detta som klientrapporterat godkännande. Ett inbäddat kort som stöds eller en inloggad granskning registrerar sin egen mänskliga handling.

TikTok Direct tillåter uttryckliga val och samtycke i chatten via [granskningsflödet](/sv/developers/mcp#prepare-finished-content). Spara de fullständiga valen med `campaignReview` och få sedan ett nytt godkännande av den uppdaterade granskningen före körning. Ett granskningskort är valfritt. Vanlig API/CLI-schemaläggning förbrukar inte AI-kvoten för schemaläggning; den separata [kvoten för MCP och Influence IQ](/sv/help/ai-assistants#scheduling-allowance) följer dessa flöden även om en sparad AI-granskning senare godkänns i Influence. Andra krav från abonnemang och leverantörer gäller fortfarande. Läs det sparade kvittot före nästa åtgärd; `needs_review` kräver avstämning, inte en ny sändning.

## Hantera fel och osäkra resultat [#handle-errors-and-uncertain-results]

Kontrollera både HTTP-status och svarskropp. Lyckade verktyg returnerar `{"ok":true,"toolName":"…","output":{…}}`. Verktygsfel returnerar `{"ok":false,"toolName":"…","error":{"code":"…","message":"…","retryable":false}}` och kan komma med HTTP 200. Transportfel använder `{"error":{"code":"…","message":"…","retryable":false}}` utan `ok` eller `toolName`.

401 betyder att autentisering krävs; kontrollera utgångstid eller återkallande. En saknad behörighet kräver rätt godkännande, inte upprepade begäranden. 503 kan betyda att tjänsten är otillgänglig eller att en annan schemaläggningsbegäran uppdaterar arbetsytan. Använd den returnerade felkoden och råden om nya försök; kör inte automatiskt en publiceringsåtgärd igen. En timeout bevisar inte att en skrivning misslyckades: behåll bekräftelseuppgifterna och läs aktuell status innan du skickar igen. Accepterat, schemalagt och publicerat är olika utfall.

## Ladda upp medier [#upload-media]

Använd helst SDK:ets `uploadMedia` eller CLI:ets `media:upload` för lokala filer. De använder samma multipartverktyg och behåller en stabil `clientKey` för nya försök. Endast ett klart resultat med `assetId` kan bifogas. För en godkänd HTTPS-länk använder du `mediaImport` med `url` och valfritt `name`. Verkliga filreferenser från värden använder det separata objektet `file`; en offentlig URL behöver inget påhittat värdfil-ID. En lokal filsökväg är ingen nedladdningsadress. Se [mediegränser](/sv/help/media): import av HTTPS-video är begränsad till 250 MiB, även när en större färdig MP4 tillåts via direkt uppladdning.

`POST /api/v1/media/import` stöder den befintliga transporten för små bilder: förbered `mediaImport` med den exakta uppladdningsbeskrivningen och skicka sedan samma byte som `application/octet-stream`. Ta med `X-Publish-Confirmation`, `Idempotency-Key` och `X-Publish-Upload` med uppladdningsbeskrivningen som URI-kodad JSON. Byten måste matcha storleken och SHA-256. Transporten är begränsad till 3 MiB; använd uppladdningshjälpen för större filer som stöds. Uppladdning godkänner aldrig publicering.

[Bläddra i API-referensen](/sv/api-reference) eller [ladda ner OpenAPI-specifikationen](/specs/influence.openapi.json).
