---
title: "Generate AI prompt hypotheses"
method: POST
path: "/projects/{project_id}/ai-tracking/suggestions/generate"
tags: ["ai-tracking"]
---

# Generate AI prompt hypotheses

`POST /projects/{project_id}/ai-tracking/suggestions/generate`

## Request

- Base URL: `https://eu.bisibility.com/api/v1`
- URL: `https://eu.bisibility.com/api/v1/projects/{project_id}/ai-tracking/suggestions/generate`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer
  - OAuth 2 (authorization code, authorization URL `/api/auth/oauth2/authorize`, token URL `/api/auth/oauth2/token`, scopes: `api:write`)

## Path parameters

- `project_id` string, required: Project public ID; write membership and scope are enforced.

## Headers

- `Bisibility-API-Version` 'v1'
- `Idempotency-Key` string, uuid, required
- `X-Bisibility-Source` 'sdk' | 'cli' | 'mcp'

## Request body

- object
  - `preview` object, required: Complete frozen preview returned after explicit review.
    - `configuration` object, required: Reviewed model and market configuration.
      - `provider` 'dataforseo', required: Provider used for model generation.
      - `engine` 'chat_gpt', required: Model API generation engine; these are synthetic hypotheses.
      - `model` string, required: Current model ID from the free AI research catalog.
      - `language_code` string, required: Requested generation language.
      - `country_iso_code` string: Optional reviewed market country hint.
      - `max_output_tokens` integer, required: Reviewed output token limit.
      - `advisory_cost_limit_cents` number, required: Advisory estimate limit; actual provider cost has no guaranteed maximum.
    - `input_snapshot` object, required: Complete reviewed input snapshot, at most 5000 serialized characters; never silently truncated.
      - `context` object, required: All five explicitly reviewed project context fields.
        - `business` string, required: Reviewed business description.
        - `audience` string, required: Reviewed target audience.
        - `products` string, required: Reviewed products and services.
        - `goals` string, required: Reviewed business goals.
        - `agent_rules` string, required: Reviewed business rules, treated as untrusted model input.
      - `competitors` object[], required: Explicitly reviewed authoritative project competitors.
        - `id` string, required: Authoritative project competitor public ID.
        - `label` string, nullable, required: Reviewed competitor label, or null.
        - `domain` string, required: Reviewed competitor domain.
    - `credential_connection_id` string, required: Connection public ID bound by preview.
    - `version` 1, required: Frozen generation preview contract version.
    - `snapshot_hash` string, required: Hash binding the exact reviewed snapshot.
    - `estimated_cost_cents` number, required: Advisory forecast in cents.
    - `estimate_kind` 'forecast', required: Forecast only; not a guaranteed maximum.
    - `is_guaranteed_maximum` false, required: Explicit acknowledgement that forecast is not a hard cap.
    - `credential_version` string, required: Preview-bound credential version.
    - `budget_revision` string, required: Preview-bound budget revision.
    - `consent_revision` string, required: Preview-bound consent revision.
    - `expires_at` string, date-time, required: UTC preview expiry; stale previews require review again.
    - `limitations` string[], required: Forecast and generation limitations displayed for review.
  - `consent` true, required: Explicit acceptance of model generation cost with no guaranteed maximum.

## Response `200`

Project-scoped tracking data with retained provenance and explicit unknown measurements.

- object
  - `data` object, required
    - `generation_id` string, required
    - `drafts` object[], required
      - `draft_id` string, uuid, required
      - `text` string, required
      - `category` 'neutral' | 'comparative' | 'branded', required
      - `provenance` 'model_generated_hypothesis', required
      - `evidence_ids` unknown[], required
        - unknown
      - `popularity` unknown, required
      - `accepted` unknown, required
    - `cost_usd` string, nullable, required
    - `cost_state` 'unknown' | 'confirmed', required
    - `method` 'model_generated_hypothesis', required
    - `limitations` string[], required

## Other responses

- `400`: Invalid input or cursor
- `401`: Authentication required
- `403`: Project membership or credential scope denied
- `404`: Project-scoped resource not found
- `409`: Idempotency key payload or state conflict; Unsupported API version
- `422`: Unsupported source, model, consent or cost policy
- `423`: Project is read-only
- `429`: Rate limited

## Changes

- **2026-10-19** `a6e1ec0dec82`: 1 breaking, 8 info
  - removed the media type `application/json` for the response with the status `409`
  - the endpoint scheme security `AppOAuth` was added to the API
  - media type `application/json` was changed to a more specific media type `application/problem+json` for the response status `400`
  - media type `application/json` was changed to a more specific media type `application/problem+json` for the response status `401`
  - …5 more

[Operation history](https://skmtc.dev/bisibility/apis/bisibility-public-api/changes/projects/:project_id/ai-tracking/suggestions/generate/post.md)

---

[API](https://skmtc.dev/bisibility/apis/bisibility-public-api.md) · [All operations](https://skmtc.dev/bisibility/apis/bisibility-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/bisibility/apis/bisibility-public-api/revisions/a6e1ec0dec82?raw)
