---
title: "Artifact pre-rendered vintages"
method: GET
path: "/artifacts/as-of"
tags: ["Discovery"]
---

# Artifact pre-rendered vintages

`GET /artifacts/as-of`

## Request

- Base URL: `https://riskmodels.app/api`
- URL: `https://riskmodels.app/api/artifacts/as-of`
- Auth: HTTP bearer

The pre-rendered `as_of` dates for one (slug, subject_id), with the formats stored under each date and their object URIs. Read-only: no render is triggered by asking.
Pre-rendered subject kinds (filers, cohorts) have no live loader, so a caller must know which dates exist. For cohort subjects `as_of=latest` on the render call resolves to the newest date listed here; for filers pass one of these dates explicitly. Both spellings of a filer id are searched and merged.
**Authentication:** API key or session. Unmetered.
**Billing:** Free.

## Query parameters

- `slug` string, required
- `subject_id` string, required
- `version` string

## Response `200`

At least one vintage is pre-rendered.

- ArtifactAsOfResponse
  - `slug` string, required
  - `version` string, required
  - `subject_id` string, required: The id as requested.
  - `subject_kind` string, required
  - `canonical_subject_id` string: The canonical spelling (differs from `subject_id` only for filers).
  - `subject_id_spellings_searched` string[]
  - `as_of_latest` 'loader' | 'newest_prerendered' | 'unsupported', required: What `as_of=latest` does on the render call for this subject kind: `newest_prerendered` (cohorts — the newest date below), `unsupported` (filers — pass a date from `as_of`), or `loader` (live data; this listing is informational).
  - `latest` string, date, required: Newest pre-rendered date.
  - `as_of` string[], required: Date-only view of `vintages`, oldest first.
  - `vintages` object[], required
    - `as_of` string, date, required
    - `formats` string[], required: Formats stored for the default render (no params).
    - `params_variants` string[], required: Params fragments stored alongside, e.g. `peer_n-5`.
    - `gcs_path` object, required: Object URI per default-render format.
  - `count` integer, required

## Other responses

- `400`: Missing or malformed slug, subject_id, or version.
- `401`: Missing or invalid Bearer token.
- `404`: Nothing pre-rendered. `slug_populated` in the body distinguishes an unbuilt slug (false) from an unknown subject on a populated slug (true).

---

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