Genfeed API Overview
The REST API of your own Genfeed instance.
Introduction
Every self-hosted instance runs the API alongside the web app. It provides endpoints for content generation, management, distribution, and analytics.
Base URL: http://localhost:3010/v1 on a default install. If you put the instance behind your own domain, use that API URL instead (see Reverse Proxy and HTTPS).
OpenAPI Spec: http://localhost:3010/v1/openapi.json
Authentication: Better Auth bearer JWTs or gf_ API keys
Video merge options
Video merge requests support transitions, captions, resizing, muting and
background music. zoomEaseCurve and zoomConfigs are slideshow effects and
are unsupported by video stitching. Supplying either option to a video merge
returns HTTP 400 with “Zoom effects are not supported when merging videos.”
The merge schema omits these options. The MCP transform_media tool with operation: "merge" runs the
same merge and rejects those fields instead of dropping them.
Authentication
The API accepts two bearer credentials on the same Authorization header. Any
token beginning with gf_ is validated as an API key; everything else is
validated as a Better Auth JWT.
| Method | Credential | Use it for |
|---|---|---|
| Better Auth JWT | Short-lived session token | Browser and app clients acting as a signed-in user |
| API key | Long-lived gf_live_… / gf_test_… secret | Server-to-server calls, automation, CI, and MCP clients |
API keys also accept the ApiKey scheme:
Authorization: Bearer gf_live_xxx
Authorization: ApiKey gf_live_xxxSee API Keys for creation, scopes, and rate limits, and MCP Server for AI-client setup.
Quick Start with an API Key
1. Create a Key
Create a key in organization settings at /{orgSlug}/~/connectors/api-keys, copy
it once, and export it where your integration runs:
export GENFEED_API_KEY=gf_live_xxx2. Make API Request
curl http://localhost:3010/v1/posts \
-H "Authorization: Bearer $GENFEED_API_KEY"Quick Start with a Session Token
1. Get Authentication Token
Authenticate with Better Auth and get a JWT token:
import { useAuth } from '@genfeedai/auth-client/react';
const { getToken } = useAuth();
const token = await getToken();2. Make API Request
const response = await fetch('http://localhost:3010/v1/posts', {
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json',
},
});3. Handle Response
const data = await response.json();
console.log(data);Core Features
- Content Generation: Text, images, videos, music, voice
- Content Management: Posts, ingredients, publications
- Account Management: Social media accounts, credentials
- Analytics: Performance tracking, insights
- Workflows: Automated content creation and distribution
API Reference
Your instance serves its OpenAPI specification at http://localhost:3010/v1/openapi.json.
For interactive API documentation, visit the API Reference page.
- API Keys — create, scope, rotate, and revoke
gf_keys - MCP Server — connect AI clients over Streamable HTTP
- CLI — drive your instance from a terminal
- Webhooks — signed outbound publish events
Support
- Troubleshooting: Self-host troubleshooting
- Bugs and requests: GitHub issue forms