---
title: "METERED: run an on-demand AI Visibility scan. Scope 'write'; Founder tier; ONE scan per scan type per product per local day (any repeat that day replays the original result, whatever the key); per-tenant daily and monthly spend caps; Idempotency-Key header REQUIRED."
method: POST
path: "/api/v1/scans/{scan}/refresh"
---

# METERED: run an on-demand AI Visibility scan. Scope 'write'; Founder tier; ONE scan per scan type per product per local day (any repeat that day replays the original result, whatever the key); per-tenant daily and monthly spend caps; Idempotency-Key header REQUIRED.

`POST /api/v1/scans/{scan}/refresh`

## Request

- Base URL: `https://afterlaunch.io`
- URL: `https://afterlaunch.io/api/v1/scans/{scan}/refresh`
- Auth: HTTP bearer

## Path parameters

- `scan` 'ai_visibility', required

## Headers

- `Idempotency-Key` string, required

## Response `200`

Dispatched (or idempotent replay).

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

## Other responses

- `400`: Unknown scan, or missing Idempotency-Key.
- `401`: Missing, invalid or revoked API key.
- `402`: Not enough credits (once credit metering is live). The error carries an upgrade pointer (top-up + create_checkout).
- `403`: The key does not carry the scope this endpoint requires.
- `429`: Per-key rate limit exceeded. Honour Retry-After.
- `503`: Claims temporarily unavailable; nothing was started.

---

[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)
