Skip to content

API reference

Generate brief

customers.GenerateBriefWriteMember delegation

Generate or refresh a record’s brief in Brigg. A current brief is reused unless force is true. When work starts, poll workspace.GetJob using job_id. The public API returns progress and the affected record ID; the brief body is reviewed in Brigg and is not included in the public record model.

POST/v1/operations/customers.GenerateBrief
On this page

Access & visibility

Allow customers.GenerateBrief on your API key.

Acting member required. Send Brigg-Act-As with an approved member account ID. The key supplies permissions; the member selects whose data is used.

The selected member must be active and approved by the credential. This selects whose private data is used; the credential supplies permissions. Private ownership and project boundaries still apply.

Set up authentication · Choose permissions

Request fields

Send a JSON object with the following fields. Required fields must be included; omit optional fields you do not need.

targetobjectRequired

The record or content item to which this operation applies.

Nested fields
typestringRequired

The record's type: core:Meeting, core:Company or core:Person.

At least 1 character. At most 60 characters.

idstringRequired

Visible Company, Person or Meeting record ID. Match it to target.type; an account ID cannot be used here.

At least 1 character. At most 80 characters.

forcebooleanOptional

Regenerate a fresh brief. Omit or send false to reuse it. Other readiness, permission and credit checks still apply.

Start, wait, then review

  1. Find the target with List companies, List people or List meetings. Pass its resource type and record ID together.
  2. Call this operation. started: true means work was queued, not that the brief is ready. Keep the returned job_id.
  3. Poll Get job with the same acting member until it completes, fails or needs input. Respect retry_at when supplied.
  4. Review the brief on that record in Brigg. The current public record models do not expose the brief body; the job result identifies the affected record, not the generated text. Use this operation to refresh Brigg's briefing, not to obtain generated prose for another system.

When no job starts

fresh means the existing brief can be reused. already_running means another run is working on this target; this response does not include that run's job ID. scrape_pending waits for linked website content. awaiting_first_prep waits for the meeting's initial preparation. no_target means the target disappeared or is no longer available. Other reasons can be returned; retain the reason for diagnostics instead of assuming every no-op means success.

force: true bypasses the freshness check only. It does not bypass an active run, pending source material, access checks or credit checks. Starting generation uses workspace credits; reusing a fresh brief starts no new generation.

Response

Returns 200 OK with a JSON body.

okbooleanRequired

Whether the action completed successfully.

startedbooleanRequired

True when new background work started. False requires inspecting reason; neither value means generation has completed.

reasonstringOptional

Why no new work started, for example fresh, already_running, scrape_pending or awaiting_first_prep. Treat this as an open set of outcomes.

job_idstringOptional

Present when new work starts. Poll Get job as the same member.

Errors & retries

Set BRIGG_REQUEST_ID once for each logical action. The samples send it as Idempotency-Key. Reuse the same value and body on retries, including after a timeout; a missing response does not prove the action failed.

For rate limits, follow the server’s retry guidance and back off. See HTTP errors and safe retries and limits.

HTTP status Code What to do
400 invalid_json Send a JSON object with Content-Type: application/json.
400 invalid_input Check the request fields and types. Supply a stable Idempotency-Key containing 1–200 characters.
401 invalid_key The workspace API key is missing, invalid or revoked.
403 forbidden Check the key’s operation and resource grants. Supply Brigg-Act-As with a member authorized by the key’s delegation grant. The selected member must be active and approved by the credential. This selects whose private data is used; the credential supplies permissions. Private ownership and project boundaries still apply.
404 not_found The requested operation or resource is not available to this credential.
429 rate_limited Wait for Retry-After before retrying. Reuse the original Idempotency-Key.

Next steps

Download OpenAPI · Versioning & retirement

JSON schemas

Use the complete schemas for validation or client generation.

Full request JSON schema
{
  "type": "object",
  "properties": {
    "target": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "minLength": 1,
          "maxLength": 60,
          "description": "The record's type: core:Meeting, core:Company or core:Person."
        },
        "id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 80,
          "description": "Visible Company, Person or Meeting record ID. Match it to target.type; an account ID cannot be used here."
        }
      },
      "required": [
        "type",
        "id"
      ],
      "additionalProperties": false,
      "description": "The record or content item to which this operation applies."
    },
    "force": {
      "type": "boolean",
      "description": "Regenerate a fresh brief. Omit or send false to reuse it. Other readiness, permission and credit checks still apply."
    }
  },
  "required": [
    "target"
  ],
  "additionalProperties": false,
  "examples": [
    {
      "target": {
        "type": "core:Company",
        "id": "e_company_northstar"
      }
    }
  ]
}
Full response JSON schema
{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "Whether the action completed successfully."
    },
    "started": {
      "type": "boolean",
      "description": "True when new background work started. False requires inspecting reason; neither value means generation has completed."
    },
    "reason": {
      "type": "string",
      "description": "Why no new work started, for example fresh, already_running, scrape_pending or awaiting_first_prep. Treat this as an open set of outcomes."
    },
    "job_id": {
      "type": "string",
      "description": "Present when new work starts. Poll [Get job](/developers/reference/workspace/GetJob) as the same member."
    }
  },
  "required": [
    "ok",
    "started"
  ],
  "additionalProperties": false,
  "examples": [
    {
      "ok": true,
      "started": true,
      "job_id": "job_brief_northstar"
    }
  ]
}

Search by operation name or what you want to build.

Use arrow keys to browse. Enter opens a result.