---
title: "Resolve Video Moments Api"
method: GET
path: "/v2/videos/{video_id}/moments/resolve"
tags: ["Video Emotion API"]
---

# Resolve Video Moments Api

`GET /v2/videos/{video_id}/moments/resolve`

## Request

- Base URL: `https://api.imentiv.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.imentiv.ai/v2/videos/{video_id}/moments/resolve`
- Auth: one of:
  - API key in header `X-API-Key`
  - HTTP bearer
  - OAuth 2
    - Authorization code: `https://api.imentiv.ai/oauth/authorize`
    - Token URL: `https://api.imentiv.ai/oauth/token` scopes: `media.read`

Follow moment ids from an earlier computation to the latest stored moments.

Same authorization as other video GETs (owner, admin, shared, or sample).
This call does not start a computation. It answers from the latest stored
moments even when those are stale.

`moments_status` and `stale` mean the same thing as on
`GET /v2/videos/{video_id}/moments`. `generation` and `profile_version`
identify that stored computation, together with `computed_at`: `generation`
and `profile_version` can stay the same across a recomputation, and
`computed_at` changes whenever the stored moments do.

Each `results` row echoes the id that was asked:

- `current` — the id is in the latest stored moments. `current_id` is that id.
- `superseded` — the id was followed to an id in the latest stored moments.
  That is the best overlapping moment for the same subject and kind, which can
  be a moment that also absorbed a neighbor. Check the span before treating it
  as the same event. A moment tied to a stimulus is followed only to a moment
  for that same stimulus.
- `gone` — nothing for the same subject and kind overlapped enough.
  `current_id` is null. This is not proof the event ceased to exist: a subject
  change, for example, has no eligible overlap.
- `unknown` — the id is in neither the latest stored moments nor a computation
  this answer can follow. `current_id` is null. Ids from older computations
  may be reported as unknown.

## Path parameters

- `video_id` string, required: The unique video ID of the video to resolve moments for

## Query parameters

- `ids` string[], nullable: Moment ids to follow, repeated once per id. Send 1 to 200 ids. Zero ids, more than 200, or an id longer than 256 characters is rejected after the video is authorized. A blank id is reported unknown. Duplicates are kept in order. An id from an older computation may be unknown.

## Response `200`

Successful Response

- MomentResolveResponse: Where moment ids from an earlier computation are in the latest stored moments. Does not start a computation. `moments_status` and `stale` mean the same as on `GET /v2/videos/{video_id}/moments`.
  - `moments_status` string, required: `ready`, `computing`, `failed` or `unavailable`.
  - `stale` boolean: True when the stored moments are not the current computation. Answers are still about those stored moments.
  - `generation` integer, nullable: Which computation the stored moments belong to. Null when nothing is stored. Compare it together with `profile_version` and `computed_at`.
  - `profile_version` string, nullable: Analysis profile version of the stored moments. Null when nothing is stored.
  - `computed_at` string, date-time, nullable: When the stored moments were computed. Changes on every successful computation, including when `generation` and `profile_version` stay the same. Null when nothing is stored.
  - `results` MomentResolveRow[]
    - `id` string, required: The id that was asked about.
    - `status` string, required: `current`, `superseded`, `gone` or `unknown`.
    - `current_id` string, nullable: The id in the latest stored moments. Equal to `id` when `current`, the followed id when `superseded`, and null when `gone` or `unknown`.

## Other responses

- `422`: `ids` is missing, empty, longer than 200, or an id is longer than 256 characters. The check runs after the video is authorized. The body is `{"detail": "<message>"}`.

## Changes

- **2026-10-01** `72330e2229c7`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/imentiv/apis/welcome-to-imentiv-ai/changes/v2/videos/:video_id/moments/resolve/get.md)

---

[API](https://skmtc.dev/imentiv/apis/welcome-to-imentiv-ai.md) - [All operations](https://skmtc.dev/imentiv/apis/welcome-to-imentiv-ai/llms.txt) - [OpenAPI document](https://skmtc.dev/imentiv/apis/welcome-to-imentiv-ai/revisions/9c4d258def38?raw)
