---
title: "List goals"
method: GET
path: "/api/v1/business/goals"
tags: ["business"]
---

# List goals

`GET /api/v1/business/goals`

## Request

- Base URL: `https://point11.ai`
- URL: `https://point11.ai/api/v1/business/goals`
- Auth: one of:
  - HTTP bearer
  - OAuth 2 (authorization code, authorization URL `https://auth.point11.ai/oauth2/authorize`, token URL `https://auth.point11.ai/oauth2/token`)

List a business profile's goals (by its id or profile key, or "default" for the one business_profile_selections_get selects by default), oldest first: each goal's metric, target and due date, the reading it started from, the metric's current reading and history from the product that owns it, and its status (reached, on track, behind, below target for an ongoing goal or one with no baseline to pace from, missed, stale, or no reading yet; within_margin is no goal's status any more, since no reading carries a margin of error, and each reading's low and high equal its value). Archived goals are included only when includeArchived is true.

## Query parameters

- `limit` integer: Number of items to return (1–1000)
- `cursor` string: Opaque cursor returned as nextCursor by the previous page
- `businessProfileId` string, required: The business profile: its id or profile key, or "default" for the profile business.profile-selections.get.v1 selects by default
- `includeArchived` boolean

## Headers

- `Point11-Organization` string, uuid

## Response `200`

Success.

- BusinessGoalsListResponse
  - `data` BusinessDataItem[], required
    - `id` string, uuid, required
    - `businessProfileId` string, uuid, required
    - `profileName` string, required
    - `metric` 'discovery_brand_win_rate' | 'discovery_brand_share' | 'experience_pass_rate' | 'inspector_score' | 'google_ads_quality_score', required
    - `metricLabel` string, required
    - `product` string, required
    - `unit` 'percent' | 'score' | 'quality_score', required
    - `min` number, required
    - `max` number, required
    - `campaignId` string, uuid, nullable, required
    - `googleAdsAccountId` string, uuid, nullable, required
    - `subjectLabel` string, required
    - `targetValue` number, required
    - `dueOn` string, date, nullable, required
    - `baselineValue` number, nullable, required
    - `baselineReadAt` string, date-time, nullable, required
    - `current` object, nullable, required
      - `value` number, nullable, required
      - `low` number, nullable, required
      - `high` number, nullable, required
      - `readAt` string, date-time, nullable, required
      - `caption` string, nullable, required: What the reading stands on, in its owner's words, shown beside it; null where the owner states none, as every metric's owner does now
    - `status` 'no_reading' | 'reached' | 'on_track' | 'within_margin' | 'behind' | 'below_target' | 'missed' | 'stale', required
    - `paceValue` number, nullable, required
    - `gapClosedPct` number, nullable, required
    - `daysLeft` integer, nullable, required
    - `targetWorthUsd` number, nullable, required
    - `series` object[], required
      - `label` string, required: A short display label for the point's day: "Sep 27", or "09-27" for a Google Ads Quality Score
      - `day` string, date, required: The point's UTC day, YYYY-MM-DD
      - `value` number, required
    - `seriesBreaks` object[], required: Days from which the metric's owner measured it differently (for Journey pass rate, a scorer, shopper, model plan or browser change), one a day, oldest first: each a rule the trend draws. Empty for a metric whose owner states none.
      - `day` string, date, required: The UTC day the change was first measured, YYYY-MM-DD
      - `label` string, required: Every change that day, in the owner's words
    - `archivedAt` string, date-time, nullable, required
    - `revision` integer, required
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required
  - `nextCursor` string, nullable, required

## Other responses

- `400`: The input, query, or Idempotency-Key is invalid.
- `401`: The bearer is missing, expired, or not accepted.
- `403`: The credential lacks the operation's scope or role, or the operation needs a different door.
- `404`: The resource or organization does not exist for this caller.
- `405`: This path takes another HTTP method, named in `Allow`.
- `409`: The request conflicts with current state or with prior use of its Idempotency-Key.
- `413`: The request, or the answer it asks for, is too large; narrow it.
- `429`: The credential's rate budget is spent; retry after `Retry-After` seconds.
- `500`: An unexpected server failure; retry later. Only `request_id` identifies it.
- `503`: A dependency is temporarily unavailable; retry after `Retry-After` seconds.
- `default`: Another status a product answers for its own refusal (for example `415` for an unsupported attachment); branch on `code`.

---

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