---
title: "List trait definitions"
method: GET
path: "/api/v1/ackdb/schemas/traits"
tags: ["ackDB"]
---

# List trait definitions

`GET /api/v1/ackdb/schemas/traits`

## Request

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

Returns trait definitions. This is how AI agents discover what fields are available. Pass `?source=<sourceType>` to scope the result to a single source's traits (e.g. for a per-source ingest example); omit it for every trait. Returns an empty array if no matching trait definitions exist (e.g. no sources enabled yet, or a source that registers no traits).

## Query parameters

- `source` string

## Response `200`

List of trait definitions (may be empty)

- object
  - `data` AckdbTraitDefinition[], required
    - `traitKey` string, required: Unique within org. Convention: prefix with source name.
    - `valueType` 'string' | 'number' | 'boolean' | 'date' | 'string_array', required: Type system for trait validation and storage. Controls how trait values are validated on ingest and stored in the entity_traits table.
    - `source` string, required: Which source system this trait comes from.
    - `description` string, required: Human/AI-readable description. AI agents use this to understand the trait.
    - `allowedValues` unknown[], required: Optional enum constraint. Write API rejects values not in this list.
      - unknown
    - `scope` 'entity' | 'contact': Trait grain: entity (company) or contact. Defaults to "entity".
    - `createdAt` string, date-time, required

---

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