Skip to Content
API ReferenceOverview

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.

MethodCredentialUse it for
Better Auth JWTShort-lived session tokenBrowser and app clients acting as a signed-in user
API keyLong-lived gf_live_… / gf_test_… secretServer-to-server calls, automation, CI, and MCP clients

API keys also accept the ApiKey scheme:

Authorization: Bearer gf_live_xxx Authorization: ApiKey gf_live_xxx

See 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_xxx

2. 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

Last updated on