Skip to content

Inicio rápido de la API

La API pública de ANKK es una API RESTful que permite la gestión programática de sus operaciones de redes sociales multicanal utilizando una sola clave de API con alcance de marca (spk_...).


📌 Descripción general de los puntos finales

Section titled “📌 Descripción general de los puntos finales”
  • URL base: https://api.ankk.app
  • Swagger / Documentación interactiva: https://api.ankk.app/v1/docs
  • Especificación JSON de OpenAPI: https://api.ankk.app/v1/openapi.json

Los puntos finales de control de salud no requieren encabezados de autenticación.

Terminal window
curl https://api.ankk.app/v1/health
{
"service": "api-public",
"status": "ok"
}

En la aplicación web (https://app.ankk.app), navegue a Configuración de la marca → Claves de API para generar una clave y luego expórtela:

Terminal window
export ANKK_API_KEY='spk_live_xxxxxxxxxxxxxxxx'

Verifique el estado de su marca y liste las cuentas de SNS conectadas para obtener los connection_id de destino.

Terminal window
# 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')

Envíe una solicitud de publicación con una idempotency_key generada por el cliente para evitar ejecuciones duplicadas.

Terminal window
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())

Una solicitud exitosa devuelve HTTP 202 Accepted y un content_id. Verifique el estado de entrega a través de:

Terminal window
curl "https://api.ankk.app/v1/brand/contents/$CONTENT_ID" \
-H "Authorization: Bearer $ANKK_API_KEY"