---
sidebar:
  order: 1
title: HTTP API
description: >-
  Mevcut HTTP API üzerinden kimlik doğrulayın, araçları keşfedin ve değişiklikleri onaylayın.
---

Ürün API isteklerini `https://influence.so` gibi güvenilir Influence adresinize gönderin. Belgelerin alan adı ürün API isteklerini kabul etmez. Aşağıdaki yolları aynen ve sorgu parametresi olmadan kullanın.

## İzinleri sınırlandırılmış bir API anahtarı oluşturun [#create-a-scoped-api-key]

[Influence ayarlarında](https://influence.so/sign-in?next=%2Fapp%2Fsettings%2Faccount%23settings-developer) Uygulamalar ve otomasyonlar → API anahtarları bölümünü açın. Gereken izinleri ve bir geçerlilik süresi seçin. Yalnızca 1 kez gösterilen anahtarı gizli bilgi deponuzda `PUBLISH_API_TOKEN` olarak saklayın. `Authorization: Bearer …` içinde gönderin; URL, istek gövdesi veya sohbete asla koymayın. Artık gerekmiyorsa anahtarı iptal edin.

## Araçları keşfedin ve hesap bilgilerini okuyun [#discover-tools-and-make-a-read]

`PUBLISH_API_URL` değerini güvenilir sunucu adresine ayarlayın. Bu örnekler, çalışan sürecinizde `PUBLISH_API_TOKEN` değerinin zaten bulunduğunu varsayar. `accountList` için `integrations:read` gerekir. Sonraki sayfaları almak için aracın sayfalama alanlarını izleyin.

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

## İstek yolları [#request-paths]

| Yöntem | Yol | Amaç |
| --- | --- | --- |
| `GET` | `/api/v1/tools` | Bu kimlik bilgisiyle kullanılabilen araçları listeleyin. |
| `POST` | `/api/v1/tools/{tool}/call` | Yetkilendirilmiş yüklemelerin devam adımları dahil, onay gerektirmeyen bir aracı çağırın. |
| `POST` | `/api/v1/tools/{tool}/prepare` | Girdileri belirlenmiş bir yazma işlemini çalıştırmadan hazırlayın. |
| `POST` | `/api/v1/tools/{tool}/confirm` | Hazırlanmış yazma işlemini onaylayın. |
| `POST` | `/api/v1/media/import` | Küçük bir görselin ikili veriyle hazırlanmış yüklemesini onaylayın. |

JSON araç istekleri `Content-Type: application/json` kullanır. Gövdede yalnızca `input` bulunur: `{"input":{…}}`. Her aracın girdi şemasını güncel araç kataloğundan alın.

## İşlemleri hazırlayın ve onaylayın [#prepare-and-confirm-actions]

Kataloğun `confirmation` alanını esas alın. Okuma işlemleri genellikle onay gerektirmez, ancak İstatistikler verilerini yenilemek, okuma işlemi olsa da onay ister. Yükleme parçası sorgulama, tamamlama ve iptal etme işlemleri, zaten yetkilendirilmiş bir yüklemeyi `/call` üzerinden sürdürür.

1. İşleme ait girdiyi aynen `/prepare` yoluna gönderin. Başarılı yanıtta `status: "confirmation_required"`, `confirmationCapability`, `expiresAt`, `inputDigest` ve isteğe bağlı `summary` bulunur.
2. Süre dolmadan aynı girdiyi `/confirm` yoluna gönderin. Dönen onay yetkisini `X-Publish-Confirmation` içine, çağrıyı yapanın yeni oluşturduğu anahtarı ise `Idempotency-Key` içine koyun.
3. Girdiyi, onay yetkisini ve anahtarı birlikte saklayın. Onay işlemi kesilir veya sonucu belirsiz kalırsa aynı istek için bu 3 değeri yeniden kullanın. Belirsiz bir sonucu kurtarmak için yerine yeni bir hazırlık oluşturmayın.

Tekrarlı işlemleri önleyen idempotency anahtarı; `A–Z`, `a–z`, `0–9`, `.`, `_`, `:` ve `-` karakterlerinden oluşan 16–200 karakter içerir. Onay yetkileri içeriği yorumlanmaması gereken gizli değerlerdir. `/call` veya `/prepare` yoluna anahtar göndermek, onaylı bir yazma işlemini ayırmaz.

İsteği onaylamak ile yayına insan onayı vermek ayrı işlemlerdir. Yayın veya zamanlama değişikliklerinde güncel incelemenin tamamını gösterin: hesaplar, metin, ayarlar, gerçek medya önizlemeleri veya bağlantıları, zamanlanmış saat ve saat dilimi. Uygun sosyal medya gönderilerinin metin, görsel ve video incelemelerinde istemci, `approval: "approved"` ile kişinin yeni verdiği açık onayı bildirebilir. İstemci rıza uyduramaz veya hazırlığı onay sayamaz. Influence bunu istemcinin bildirdiği onay olarak kaydeder. Desteklenen gömülü kart ya da oturum açıkken yapılan inceleme, kullanıcının o arayüzdeki eylemini kaydeder.

TikTok Direct, [inceleme akışında](/tr/developers/mcp#prepare-finished-content) sohbet üzerinden açık seçimleri ve rızayı kabul eder. Tam seçimleri `campaignReview` ile kaydedin, ardından çalıştırmadan önce güncellenmiş inceleme için yeni onay alın. İnceleme kartı isteğe bağlıdır. Normal API/CLI zamanlaması yapay zeka zamanlama hakkını tüketmez. Kaydedilmiş bir yapay zeka incelemesi daha sonra Influence içinde onaylansa bile, ayrı [MCP ve Influence IQ hakkı](/tr/help/ai-assistants#scheduling-allowance) ilgili akışlarda geçerlidir. Diğer plan ve sağlayıcı gereksinimleri de geçerliliğini korur. Başka bir işlem yapmadan önce kaydedilmiş işlem sonucunu okuyun. `needs_review`, yeniden göndermeyi değil, mevcut sonucun netleştirilmesini gerektirir.

## Hataları ve belirsiz sonuçları yönetin [#handle-errors-and-uncertain-results]

Hem HTTP durumunu hem yanıt gövdesini kontrol edin. Başarılı araçlar `{"ok":true,"toolName":"…","output":{…}}` döndürür. Araç hataları `{"ok":false,"toolName":"…","error":{"code":"…","message":"…","retryable":false}}` döndürür ve HTTP 200 ile de gelebilir. Aktarım hataları ise `ok` veya `toolName` olmadan `{"error":{"code":"…","message":"…","retryable":false}}` kullanır.

401 kimlik doğrulama gerektiğini belirtir; sürenin dolup dolmadığını veya anahtarın iptal edilip edilmediğini kontrol edin. Eksik izin için isteği tekrarlamak değil, uygun yetki gerekir. 503, hizmetin kullanılamadığını veya başka bir zamanlama isteğinin çalışma alanını güncellediğini gösterebilir. Dönen hata kodunu ve yeniden deneme yönlendirmesini izleyin; bir yayın işlemini otomatik olarak yinelemeyin. Zaman aşımı, yazma işleminin başarısız olduğunu kanıtlamaz. Onay verilerini koruyun ve yeniden göndermeden önce güncel durumu okuyun. Kabul edilme, zamanlanma ve yayımlanma farklı sonuçlardır.

## Medya yükleyin [#upload-media]

Yerel dosyalar için SDK içindeki `uploadMedia` veya CLI içindeki `media:upload` yardımcısını tercih edin. Aynı çok parçalı yükleme araçlarını kullanır ve yeniden denemeler için sabit bir `clientKey` korurlar. Yalnızca `assetId` içeren hazır bir sonuç eklenebilir. Yetkili bir HTTPS bağlantısı için `mediaImport` aracını `url` ve isteğe bağlı `name` ile kullanın. Gerçek sunucu dosya referansları ayrı `file` nesnesini kullanır; herkese açık bir URL için dosya kimliği uydurmanız gerekmez. Yerel dosya yolu bir indirme URL’si değildir. [Medya sınırlarına](/tr/help/media) bakın: doğrudan yüklemeyle daha büyük bir hazır MP4 kabul edilse bile HTTPS video içe aktarma sınırı 250 MiB’dir.

`POST /api/v1/media/import` mevcut küçük görsel aktarımını destekler: `mediaImport` aracını tam yükleme tanımlayıcısıyla hazırlayın, ardından aynı baytları `application/octet-stream` olarak gönderin. `X-Publish-Confirmation`, `Idempotency-Key` ve URI kodlamalı JSON tanımlayıcısını içeren `X-Publish-Upload` başlıklarını ekleyin. Baytlar, tanımlayıcıdaki boyut ve SHA-256 ile eşleşmelidir. Bu aktarımın sınırı 3 MiB’dir; desteklenen daha büyük dosyalarda yükleme yardımcısını kullanın. Yükleme yapmak yayını asla onaylamaz.

[API referansını inceleyin](/tr/api-reference) veya [OpenAPI belirtimini indirin](/specs/influence.openapi.json).
