---
title: "The structured positioning facts the engine drafts from: strategic_positioning (one-liner, primary value prop, target audience, notable differentiators), category, positioning_language, icp, pricing_model, feature_taxonomy, each with the updated_at of the row it came from, plus the competitor set with how each rival is similar and how it differs. A fact that has not been extracted is null rather than an error, and the competitor roster is empty rather than absent when no snapshot has run."
method: GET
path: "/api/v1/kb/business-context"
---

# The structured positioning facts the engine drafts from: strategic_positioning (one-liner, primary value prop, target audience, notable differentiators), category, positioning_language, icp, pricing_model, feature_taxonomy, each with the updated_at of the row it came from, plus the competitor set with how each rival is similar and how it differs. A fact that has not been extracted is null rather than an error, and the competitor roster is empty rather than absent when no snapshot has run.

`GET /api/v1/kb/business-context`

## Request

- Base URL: `https://afterlaunch.io`
- URL: `https://afterlaunch.io/api/v1/kb/business-context`
- Auth: HTTP bearer

## Response `200`

The positioning facts, each nullable.

- object
  - `data` object, required
  - `meta` object, required
    - `enrollment_id` string, uuid, required
    - `generated_at` string, date-time, required

## Other responses

- `401`: Missing, invalid or revoked API key.
- `403`: The key does not carry the scope this endpoint requires.
- `404`: No enrollment data, or a key bound to a superseded product run.
- `429`: Per-key rate limit exceeded. Honour Retry-After.

---

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