Integrations
REST API
Call the Aidelly API directly from your code or any HTTP client.
The Aidelly REST API lets you integrate social publishing into any stack. Use it from server-side code, CI/CD pipelines, custom GPT actions, or any tool that can make HTTP requests.
Base URL
https://app.aidelly.ai/api/public/v1Authentication
Authorization: Bearer aidelly_live_xxxAll write endpoints also require:
Idempotency-Key: <unique-string>
x-aidelly-workspace-id: <workspace-uuid> # if scoping to a workspaceCreate a post
curl -sS "https://app.aidelly.ai/api/public/v1/posts" \
-X POST \
-H "Authorization: Bearer $AIDELLY_API_KEY" \
-H "Idempotency-Key: post-$(uuidgen)" \
-H "x-aidelly-workspace-id: $WORKSPACE_ID" \
-H "Content-Type: application/json" \
-d '{
"brand_id": "'$BRAND_ID'",
"content": "Hello from the Aidelly API!",
"platforms": ["linkedin", "instagram"],
"publish_now": true
}'Schedule a post
curl -sS "https://app.aidelly.ai/api/public/v1/posts" \
-X POST \
-H "Authorization: Bearer $AIDELLY_API_KEY" \
-H "Idempotency-Key: scheduled-post-001" \
-H "x-aidelly-workspace-id: $WORKSPACE_ID" \
-H "Content-Type: application/json" \
-d '{
"brand_id": "'$BRAND_ID'",
"content": "This posts on Friday morning.",
"platforms": ["x", "linkedin"],
"schedule_at": "2026-04-18T09:00:00Z"
}'List posts
curl "https://app.aidelly.ai/api/public/v1/posts?status=scheduled&limit=20" \
-H "Authorization: Bearer $AIDELLY_API_KEY" \
-H "x-aidelly-workspace-id: $WORKSPACE_ID"Upload media
# Step 1: get a signed upload URL
curl -sS "https://app.aidelly.ai/api/public/v1/media/upload-url" \
-X POST \
-H "Authorization: Bearer $AIDELLY_API_KEY" \
-H "Idempotency-Key: media-$(uuidgen)" \
-H "x-aidelly-workspace-id: $WORKSPACE_ID" \
-H "Content-Type: application/json" \
-d '{"filename": "photo.jpg", "content_type": "image/jpeg"}'
# Step 2: upload directly to the signed URL
curl -X PUT "$UPLOAD_URL" \
-H "Content-Type: image/jpeg" \
--data-binary @photo.jpg
# Step 3: include media_ids in your postTypeScript / Node.js example
const response = await fetch('https://app.aidelly.ai/api/public/v1/posts', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.AIDELLY_API_KEY}`,
'Idempotency-Key': crypto.randomUUID(),
'x-aidelly-workspace-id': process.env.WORKSPACE_ID!,
'Content-Type': 'application/json',
},
body: JSON.stringify({
brand_id: process.env.BRAND_ID,
content: 'Posting from TypeScript!',
platforms: ['linkedin', 'x'],
publish_now: true,
}),
});
const { success, data, error } = await response.json();
if (!success) throw new Error(error.code);
console.log('Post ID:', data.post_id);Python example
import os, uuid, requests
response = requests.post(
"https://app.aidelly.ai/api/public/v1/posts",
headers={
"Authorization": f"Bearer {os.environ['AIDELLY_API_KEY']}",
"Idempotency-Key": str(uuid.uuid4()),
"x-aidelly-workspace-id": os.environ["WORKSPACE_ID"],
"Content-Type": "application/json",
},
json={
"brand_id": os.environ["BRAND_ID"],
"content": "Posting from Python!",
"platforms": ["linkedin", "instagram"],
"publish_now": True,
},
)
data = response.json()
print(data["data"]["post_id"])Interactive reference
The full endpoint reference with live Try-It console:
Or download the OpenAPI spec:
curl https://app.aidelly.ai/api/public/v1/openapi -o aidelly-openapi.yaml