---
title: "List unresolved content"
method: GET
path: "/api/v1/ackdb/unresolved"
tags: ["ackDB"]
---

# List unresolved content

`GET /api/v1/ackdb/unresolved`

## Request

- Base URL: `http://localhost:3009`
- URL: `http://localhost:3009/api/v1/ackdb/unresolved`
- Auth: HTTP bearer

Returns unresolved content records - data that arrived via `POST /ingest` without a `domain` identity link, so it couldn't be automatically resolved to an entity. Filterable by source type and date range.

## Query parameters

- `source` string
- `since` string, date-time
- `until` string, date-time

## Response `200`

List of unresolved content records

- object
  - `data` AckdbUnresolvedContent[], required
    - `id` string, required: ULID identifier
    - `source` string, required
    - `identityLinks` AckdbIngestIdentityLink[], required: Original identity links from the ingest request.
      - `externalIdType` string, required: Must be in the source definition's identityLinkTypes, or a universal type like `domain`.
      - `externalIdValue` string, required: The actual external ID value.
      - `confidence` number, required: 1.0 = verified/exact match, lower = fuzzy.
    - `text` string, required: Raw text from the content payload.
    - `metadata` object, required: Source-specific metadata.
    - `traits` AckdbIngestTrait[], required: Original traits from the ingest request, replayed after resolution.
      - `traitKey` string, required: Must exist in trait_definitions for this org.
      - `value` unknown, required
      - `op` 'set' | 'increment' | 'decrement' | 'min' | 'max' | 'set_if_newer' | 'set_if_older' | 'append' | 'remove': Atomic operation to apply. Default is `set` (overwrite). Use computed ops to avoid read-then-write race conditions on concurrent events. **Number ops:** `increment` (current + value), `decrement` (current - value), `min` (keep smaller), `max` (keep larger). **Date ops:** `set_if_newer` (keep more recent), `set_if_older` (keep older). **Array ops:** `append` (add items, deduped), `remove` (remove items). **The op MUST be compatible with the trait's `valueType` or the ingest is rejected (422):** `set` works for every type; `increment`/`decrement`/`min`/`max` are number-only; `set_if_newer`/`set_if_older` are date-only; `append`/`remove` are string_array-only. An omitted op silently defaults to `set` (overwrite) - pick the right op for accumulating counts/sums (`increment`) and 'keep latest' dates (`set_if_newer`), or you will clobber the prior value.
      - `workflow` string, required: Which workflow computed this value. Empty string = direct API write.
      - `confidence` number, required: 1.0 = observed/verified, lower = inferred/estimated.
    - `rawPayload` object, required: Entire original request body.
    - `timestamp` string, date-time, required
    - `createdAt` string, date-time

---

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