Inicio rápido
Cuatro peticiones: perfil, conexión, cuenta y publicación.
1. Consigue tu API key
Entra en el panel, ve a API keys y crea una. Se muestra una sola vez: guárdala como variable de entorno.
export CRIER_API_KEY="crier_live_…"2. Crea un perfil
Un perfil agrupa las cuentas de una marca o de uno de tus clientes. Guarda su id.
curl -X POST "https://api.usecrier.com/v1/profiles" \
-H "Authorization: Bearer $CRIER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Acme",
"timezone": "Europe/Madrid"
}'const res = await fetch('https://api.usecrier.com/v1/profiles', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.CRIER_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
"name": "Acme",
"timezone": "Europe/Madrid"
}),
});
const { data } = await res.json();import os, requests
res = requests.post(
"https://api.usecrier.com/v1/profiles",
headers={"Authorization": f"Bearer {os.environ['CRIER_API_KEY']}"},
json={
"name": "Acme",
"timezone": "Europe/Madrid"
},
)
data = res.json()["data"]{
"data": {
"id": "prf_8f2k4d",
"name": "Acme",
"timezone": "Europe/Madrid",
"createdAt": "2026-10-23T10:00:00.000Z",
"updatedAt": "2026-10-23T10:00:00.000Z"
}
}3. Conecta una cuenta
Pide la URL de conexión de la red y abre esa URL en el navegador del usuario. Cuando autorice, volverá a tu redirectUrl.
curl "https://api.usecrier.com/v1/connect/instagram?profileId=prf_8f2k4d&redirectUrl=https%3A%2F%2Fapp.acme.com%2Fconectado" \
-H "Authorization: Bearer $CRIER_API_KEY"const res = await fetch('https://api.usecrier.com/v1/connect/instagram?profileId=prf_8f2k4d&redirectUrl=https%3A%2F%2Fapp.acme.com%2Fconectado', {
headers: {
Authorization: `Bearer ${process.env.CRIER_API_KEY}`,
},
});
const { data } = await res.json();import os, requests
res = requests.get(
"https://api.usecrier.com/v1/connect/instagram?profileId=prf_8f2k4d&redirectUrl=https%3A%2F%2Fapp.acme.com%2Fconectado",
headers={"Authorization": f"Bearer {os.environ['CRIER_API_KEY']}"},
)
data = res.json()["data"]https://app.acme.com/conectado?connected=instagram&accountId=acc_3k9x2m&username=acme4. Publica
Manda el texto y las cuentas. Sin scheduledFor se publica ahora mismo.
curl -X POST "https://api.usecrier.com/v1/posts" \
-H "Authorization: Bearer $CRIER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"content": "¡Hola desde Crier! 👋",
"targets": [
{
"accountId": "acc_3k9x2m"
}
]
}'const res = await fetch('https://api.usecrier.com/v1/posts', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.CRIER_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
"content": "¡Hola desde Crier! 👋",
"targets": [
{
"accountId": "acc_3k9x2m"
}
]
}),
});
const { data } = await res.json();import os, requests
res = requests.post(
"https://api.usecrier.com/v1/posts",
headers={"Authorization": f"Bearer {os.environ['CRIER_API_KEY']}"},
json={
"content": "¡Hola desde Crier! 👋",
"targets": [
{
"accountId": "acc_3k9x2m"
}
]
},
)
data = res.json()["data"]{
"data": {
"id": "pst_7q1w0e",
"status": "publishing",
"targets": [
{ "accountId": "acc_3k9x2m", "platform": "instagram", "status": "pending" }
]
}
}Unos segundos después la publicación pasa a published y cada destino lleva su url. Consúltalo con GET /v1/posts/{id} o, mejor, con un webhook.