Aller au contenu

Démarrage rapide de l'API

L’API publique ANKK est une API RESTful qui permet une gestion programmatique de vos opérations sur les réseaux sociaux multicanaux à l’aide d’une seule clé API limitée à la marque (spk_...).


📌 Aperçu des points de terminaison (Endpoints)

Section intitulée « 📌 Aperçu des points de terminaison (Endpoints) »
  • URL de base : https://api.ankk.app
  • Swagger / Documentation interactive : https://api.ankk.app/v1/docs
  • Spécification JSON OpenAPI : https://api.ankk.app/v1/openapi.json

Les points de terminaison de vérification de santé ne nécessitent pas d’en-têtes d’authentification.

Fenêtre de terminal
curl https://api.ankk.app/v1/health
{
"service": "api-public",
"status": "ok"
}

Dans l’application web (https://app.ankk.app), accédez à Paramètres de la marque → Clés API pour générer une clé, puis exportez-la :

Fenêtre de terminal
export ANKK_API_KEY='spk_live_xxxxxxxxxxxxxxxx'

Vérifiez le statut de votre marque et listez les comptes de réseaux sociaux connectés pour obtenir les connection_id cibles.

Fenêtre de terminal
# 1. Inspect brand details
curl https://api.ankk.app/v1/brand \
-H "Authorization: Bearer $ANKK_API_KEY"
# 2. List connected SNS accounts
curl https://api.ankk.app/v1/brand/connections \
-H "Authorization: Bearer $ANKK_API_KEY"
const API_KEY = process.env.ANKK_API_KEY;
if (!API_KEY) throw new Error('Set ANKK_API_KEY');
const BASE_URL = 'https://api.ankk.app/v1';
const res = await fetch(`${BASE_URL}/brand/connections`, {
headers: {
Authorization: `Bearer ${API_KEY}`
}
});
if (!res.ok) throw new Error(`Connections request failed: ${res.status}`);
const { items: connections } = await res.json();
console.log('Connected accounts:', connections);
const targetConnectionId = connections[0]?.connection_id;
if (!targetConnectionId) throw new Error('Connect an SNS account first');
import os
import requests
API_KEY = os.environ['ANKK_API_KEY']
BASE_URL = 'https://api.ankk.app/v1'
headers = {'Authorization': f'Bearer {API_KEY}'}
response = requests.get(f'{BASE_URL}/brand/connections', headers=headers)
response.raise_for_status()
connections = response.json().get('items', [])
print(f'Connected accounts: {connections}')
target_connection_id = connections[0]['connection_id'] if connections else None
if not target_connection_id:
raise RuntimeError('Connect an SNS account first')

Soumettez une demande de publication avec une clé d’idempotence générée par le client pour éviter les exécutions en double.

Fenêtre de terminal
curl -X POST "https://api.ankk.app/v1/brand/contents" \
-H "Authorization: Bearer $ANKK_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"connection_id": "conn_01jm8x9k2example",
"idempotency_key": "my-first-post-001",
"text": "Hello World from ANKK Public API! 🚀"
}'
const publishRes = await fetch(`${BASE_URL}/brand/contents`, {
method: 'POST',
headers: {
Authorization: `Bearer ${API_KEY}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
connection_id: targetConnectionId,
idempotency_key: 'my-first-post-001',
text: 'Hello World from TypeScript! 🚀'
})
});
if (publishRes.status !== 202) throw new Error(`Publish request failed: ${publishRes.status}`);
const result = await publishRes.json();
console.log('Publish accepted (HTTP 202):', result);
payload = {
'connection_id': target_connection_id,
'idempotency_key': 'my-first-post-001',
'text': 'Hello World from Python! 🚀',
}
publish_res = requests.post(
f'{BASE_URL}/brand/contents',
headers={**headers, 'Content-Type': 'application/json'},
json=payload,
)
publish_res.raise_for_status()
print('Publish outcome:', publish_res.json())

Une requête réussie renvoie HTTP 202 Accepted et un content_id. Vérifiez le statut de livraison via :

Fenêtre de terminal
curl "https://api.ankk.app/v1/brand/contents/$CONTENT_ID" \
-H "Authorization: Bearer $ANKK_API_KEY"