Get Execution

Retrieve a completed content draft. The article content lives in the outputs field.

GEThttps://api.boringmarketing.com/brands/{brand_id}/executions/{execution_id}

Returns a single completed execution. The generated article content lives in the outputs field (a JSON object produced by the content agent — shape depends on the execution format).

Path parameters

brand_idstringrequired

The brand UUID.

execution_idstringrequired

The execution UUID. This is not the same as the run_id returned from POST /brands/{id}/execute — list executions first to find the right ID.

Response

{
  "id": "exec-uuid",
  "brand_id": "brand-uuid",
  "run_id": "exec-run-uuid",
  "brief_id": "brief-uuid",
  "format": "comparison",
  "status": "draft",
  "content": {
    "title": "Best AI Marketing Tools in 2026: Complete Comparison",
    "body": "# Best AI Marketing Tools in 2026\n\nMarketing teams face a paradox...",
    "word_count": 2847
  },
  "gate_scores": null,
  "created_at": "2026-04-07T10:45:00Z",
  "updated_at": "2026-04-07T10:48:12Z"
}

Field notes

FieldDescription
idExecution UUID. Not the same as the run_id returned from POST /execute — fetch executions via this ID.
run_idPipeline run that produced this execution.
brief_idThe brief used as input.
formatOne of hub_and_spokes, single_article, programmatic, comparison, landing_page.
contentOpaque JSON blob produced by the content agent. The shape is not a stable API contract — it reflects whatever the current content agent emits and may change between deployments. Tolerate unknown keys; do not hard-code paths beyond title / body-style top-levels you have verified at runtime.
gate_scoresReserved — always null in the current implementation. Quality gate scores are not produced today.
statusAlways "draft" in the current implementation. State transitions (queuedrunningdone / failed) are planned but not wired — the value is set once at persist time and never updated. To know whether the execution finished, poll the run_id (GET /brands/{id}/runs/{run_id}), not the execution row.

List all executions

To list all executions for a brand:

curl -H "X-API-Key: $BM_API_KEY" \
  https://api.boringmarketing.com/brands/$BRAND_ID/executions

Example

# First find the execution_id
curl -H "X-API-Key: $BM_API_KEY" \
  https://api.boringmarketing.com/brands/$BRAND_ID/executions

# Then fetch the full execution
curl -H "X-API-Key: $BM_API_KEY" \
  https://api.boringmarketing.com/brands/$BRAND_ID/executions/$EXECUTION_ID