Automate your content operations with the KuzeyOS REST API. All endpoints return JSON and require JWT Bearer token authentication.
https://api.sosyalmedyax.comAll API requests require an Authorization header. You can create your API key from Settings → API Keys.
Header
Authorization: Bearer YOUR_API_KEYcurl -X GET "https://api.sosyalmedyax.com/api/posts" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" # Global search curl -X GET "https://api.sosyalmedyax.com/api/search?q=doctrine&types=posts,ideas" \ -H "Authorization: Bearer YOUR_API_KEY"
import requests
API_KEY = "your_api_key"
BASE_URL = "https://api.sosyalmedyax.com"
headers = {"Authorization": f"Bearer {API_KEY}"}
# List posts
posts = requests.get(f"{BASE_URL}/api/posts", headers=headers).json()
# Global search
results = requests.get(
f"{BASE_URL}/api/search",
headers=headers,
params={"q": "doctrine", "types": "posts,ideas", "limit": 5}
).json()
# Add new idea
idea = requests.post(
f"{BASE_URL}/api/ideas",
headers=headers,
json={"raw_idea": "Thread about AI agents", "source": "api"}
).json()const API_KEY = "your_api_key";
const BASE_URL = "https://api.sosyalmedyax.com";
const headers = {
"Authorization": `Bearer ${API_KEY}`,
"Content-Type": "application/json",
};
// List posts
const posts = await fetch(`${BASE_URL}/api/posts`, { headers })
.then(r => r.json());
// Global search
const results = await fetch(
`${BASE_URL}/api/search?q=doctrine&types=posts,ideas`,
{ headers }
).then(r => r.json());
// Start opportunity scan
await fetch(`${BASE_URL}/api/opportunities/scan`, {
method: "POST",
headers,
});/api/auth/loginUser login — returns access + refresh token/api/auth/refreshGet new access token using refresh token/api/auth/logoutEnd session, revoke refresh token/api/auth/forgot-passwordSend password reset email/api/auth/reset-passwordReset password with token/api/postsList all posts (with status filter)/api/postsCreate new post/api/posts/{id}Single post detail/api/posts/{id}/statusUpdate post status (draft → approved → queued)/api/posts/{id}Delete post/api/ideasList ideas/api/ideasAdd new idea/api/ideas/{id}/generateGenerate draft from idea (LLM)/api/ideas/{id}Delete idea/api/searchGlobal search — posts, ideas, people, opportunities (q, types, limit parameters)/api/analytics/overviewGeneral performance metrics/api/analytics/advancedCohort, format/hook/language analysis/api/analytics/funnelFunnel attribution data/api/audienceAudience CRM list/api/audienceAdd new person/api/audience/{id}Person detail + interaction history/api/opportunitiesOpportunity list/api/opportunities/scanStart manual opportunity scan/api/opportunities/{id}Update opportunity status/api/notificationsNotification list (unread_only filter)/api/notifications/streamSSE stream — real-time notifications/api/notifications/unread-countUnread notification count/api/notifications/{id}/readMark notification as read/api/webhooksWebhook list/api/webhooksCreate new webhook/api/webhooks/{id}Update webhook/api/webhooks/{id}Delete webhook/api/webhooks/{id}/testSend test payload/api/webhooks/{id}/logsDelivery logs/api/help/faqFAQ list — 4 categories, 14 questions/api/changelogVersion history and changelog/api/docs/sectionsDocs navigation sectionsWhen the limit is exceeded, 429 Too Many Requests is returned. The Retry-After header indicates the wait time.
Auth endpoints
Brute force protection
LLM endpoints (Starter)
Draft generation, coach, radar
LLM endpoints (Pro)
LLM endpoints (Creator OS)
General API
Webhook delivery
200Success201Created400Bad request401Authentication required403Unauthorized access404Not found429Rate limit exceeded500Server errorSearch across all content with a single endpoint.
GET /api/search?q=doctrine