Skip to main content
GET
GET /api/v1/content returns recent generated content history for the caller’s active business. POST /api/v1/content generates a new draft or refines an existing draft for the caller’s active business. Use an API key with the content:read scope for history reads. Use an API key with the content:write scope for generation and refinement. This endpoint is available on Growth plans and higher.
string
required
Your API key from Settings > API Keys
string
Filter by content type: landing_page, faq, gbp_post, social_post, review_response_template, or blog_outline
number
default:"20"
Number of results to return (max 100)

Query parameters

Response

Create or refine content

Request body

Refinement example

Create response

Access

The endpoint uses the caller’s active personal or organization business context. Organization members only see history for businesses they can access. POST also requires the member’s content_studio_generate organization permission when the active business belongs to a team workspace. Accounts below Growth receive 403. API keys without competitors:read on GET or content:write on POST receive 403 requiredScope. Generated history stores structured output and derived source counts. It does not store raw review text.

Dashboard approval signals

The dashboard records approval signals when a signed-in user publishes, approves, rejects, or edits a generated draft.

GET /api/businesses/me/content/:id

Returns one generated content item for the active business. This dashboard endpoint uses the signed-in app session and the same Growth+ content-studio gate as the history endpoint.

PATCH /api/businesses/me/content/:id

Saves deterministic dashboard edits to generated content or updates generated content status from dashboard actions such as publish, approve, or reject. The same route is also documented as PATCH /api/businesses/me/content/{id} for clients that use brace-style path params.

Direct edit request body

Direct edits are local deterministic writes. They do not call AI providers and do not consume content-generation quota. NearIQ records edit distance and marks the row’s quality signal as edited when editedContent changes.

Status request body

DELETE /api/businesses/me/content/:id

Deletes a generated content item from the active business history.

PATCH /api/businesses/me/content/:id/feedback

This dashboard endpoint uses the active personal or organization business context and returns 401 when no user session is present. It is not a public API-key endpoint.

Request body

At least one field is required. These approval signals help future drafts prioritize formats users actually publish while preserving the same business/org access rules as Content Studio history.

PATCH /api/businesses/me/content/feedback

Legacy compatibility endpoint for feedback updates by body ID. Prefer PATCH /api/businesses/me/content/{id}/feedback for new integrations.
When a social post is created with contentGenerationId, NearIQ also links the post to the generation and records a social publish selection event. Gap analysis and intelligence reports use those aggregate content effectiveness signals when enough history exists.

POST /api/businesses/me/content/music

Generates background music for Growth+ content workflows.

POST /api/businesses/me/content/voice

Generates a voiceover draft for Growth+ content workflows.

POST /api/businesses/me/video

Creates a video generation job for the active business. The route supports prompt-only video, prompt-image video, and ad/content-studio creative intent.

GET /api/businesses/me/video

Returns video job status, or a signed download when id, download=1, and a valid composite token are present.

POST /api/businesses/me/video/talking-avatar

Creates a talking-avatar video render from an HTTPS avatar image plus either script-to-speech, a saved voice profile, or a pre-rendered HTTPS audio URL. This is a dashboard-session route for Content Studio and requires the active team member to have create_video; using a saved voice profile also requires manage_voice. The route requires explicit consent fields so uploaded photos, cloned voices, and AI-generated labels are auditable. Billing is charge-on-completed-render: a processing ledger row is created with zero credits, then video credits are deducted only when the provider reports a completed MP4.

GET /api/businesses/me/video/talking-avatar

Returns the talking-avatar config when no id is supplied. With an id, polls provider status, updates video_generations, and charges credits only after completion. Add download=1 to proxy the completed MP4 through the app session.

POST /api/businesses/me/video/composite

Queues final video compositing with captions, voice, music, and overlay settings.

GET /api/businesses/me/video/composite

Polls composite status by jobId and jobToken.

POST /api/businesses/me/images/generate

Generates a draft image for Content Studio. context is required (gbp_post, social, product, service, or general). The optional style must be one of the 15 presets (photoreal, food_photo, product_photo, interior, social_graphic, logo_text, brand_safe, infographic, before_after, team_action, event_promo, seasonal, menu_board, service_showcase, custom); it defaults to photoreal. Optional size (1024x1024, 1792x1024, 1024x1792), quality (standard, hd), and providerPreset (auto, text_and_logo, brand_graphic, photoreal, general) are also accepted.

POST /api/businesses/me/images/edit

Creates an edited or variation image from a transient source image. Uploaded source images are used for the request and are not stored as generated library assets. image is required and must be an HTTPS URL or a PNG/JPEG/WebP data URL. Optional size (1024x1024, 1792x1024, 1024x1792) defaults to 1024x1024, which preserves the source aspect ratio.

POST /api/businesses/me/images/transform

Applies a deterministic, local image edit to a transient source image — no generative AI and no paid provider call. Each request runs exactly one operation. Source images are transient HTTPS URLs or bounded data URLs and are not stored; the edited result is returned as a hosted URL. image is required and must be an HTTPS URL or a PNG/JPEG/WebP data URL. Optional format (webp, png, jpeg) defaults to webp. Inputs larger than 4000px on either axis are downscaled before processing.

Operations

Dashboard media endpoint errors