- [AckdbAggregatableFieldInfo](/content/docs/schemas/AckdbAggregatableFieldInfo/index.html)  
  A promoted event field the event-aggregate composer (#413) may reference. `numeric` fields are eligible for sum/avg/min/max; every field is usable for count + where conditions.

- [AckdbCompanyGraphResult](/content/docs/schemas/AckdbCompanyGraphResult/index.html)

- [AckdbCompanyIdentityRelationship](/content/docs/schemas/AckdbCompanyIdentityRelationship/index.html)

- [AckdbCompanyRelationship](/content/docs/schemas/AckdbCompanyRelationship/index.html)  
  One explicit child-to-parent episode between distinct company entities. Multiple parents, multiple children, and cycles are valid.

- [AckdbCompanyRelationshipMergeImpact](/content/docs/schemas/AckdbCompanyRelationshipMergeImpact/index.html)

- [AckdbCompanyRelationshipPathResult](/content/docs/schemas/AckdbCompanyRelationshipPathResult/index.html)

- [AckdbCompanyRelationshipSummary](/content/docs/schemas/AckdbCompanyRelationshipSummary/index.html)

- [AckdbCompanyRelationshipType](/content/docs/schemas/AckdbCompanyRelationshipType/index.html)

- [AckdbContactGraphResult](/content/docs/schemas/AckdbContactGraphResult/index.html)

- [AckdbContactPathResult](/content/docs/schemas/AckdbContactPathResult/index.html)

- [AckdbContactRelationship](/content/docs/schemas/AckdbContactRelationship/index.html)  
  One report-contact to manager-contact episode. Both endpoints are affiliations at entityId; matrix reporting is valid.

- [AckdbContactRelationshipSummary](/content/docs/schemas/AckdbContactRelationshipSummary/index.html)

- [AckdbContactRelationshipType](/content/docs/schemas/AckdbContactRelationshipType/index.html)

- [AckdbConversation](/content/docs/schemas/AckdbConversation/index.html)  
  A grouped, LLM-summarized conversation thread.

- [AckdbDashboard](/content/docs/schemas/AckdbDashboard/index.html)

- [AckdbDashboardShare](/content/docs/schemas/AckdbDashboardShare/index.html)  
  One grant, identical in shape to a segment share (#284): the grantee is a MEMBER (internal_users).

- [AckdbDashboardSummary](/content/docs/schemas/AckdbDashboardSummary/index.html)

- [AckdbDefaultSegmentResponse](/content/docs/schemas/AckdbDefaultSegmentResponse/index.html)  
  The default view for a kind. Either an explicitly-marked Segment (source 'explicit', id non-null) or the server-computed catalog fallback (source 'computed', id null). Clients seed a fresh table's columns+sort from this without hard-coding the column policy.

- [AckdbEntity](/content/docs/schemas/AckdbEntity/index.html)  
  A company/account entity in ackDB's entity store.

- [AckdbEntityEvent](/content/docs/schemas/AckdbEntityEvent/index.html)  
  Immutable company or human activity. Sole-person events have null entityId/contactId and a non-null personId, even when the human has employers.

- [AckdbEntityProfile](/content/docs/schemas/AckdbEntityProfile/index.html)  
  Aggregated entity profile - everything known about an entity in a single object. This is the primary response format for AI agent queries (L1 tier).

- [AckdbEntityTrait](/content/docs/schemas/AckdbEntityTrait/index.html)  
  A computed trait value for an entity. Uses typed value columns - only one of valueString, valueNumber, valueBool, valueDate is populated based on the trait's type.

- [AckdbEventTypeDefinition](/content/docs/schemas/AckdbEventTypeDefinition/index.html)  
  Complete source event contract, including ownership and optional subject mappings. entity is company-only; person extracts an affiliated actor; person_only resolves one independent human without an affiliation.

- [AckdbFieldDescriptor](/content/docs/schemas/AckdbFieldDescriptor/index.html)  
  A catalog field available for filtering/sorting/projection in Observe. Coverage is the count of active companies with a value for this field. `group` distinguishes system attributes, traits, and event types.

- [AckdbFieldLabelOverride](/content/docs/schemas/AckdbFieldLabelOverride/index.html)  
  A per-deployment override of an Observe field's DISPLAY label (#191). Presentation only - the key, compiler whitelist, filters, sort, and ingest are untouched.

- [AckdbFileMetadata](/content/docs/schemas/AckdbFileMetadata/index.html)  
  File metadata (summary view for list endpoints).

- [AckdbFileMetadataDetail](/content/docs/schemas/AckdbFileMetadataDetail/index.html)  
  Full file metadata including extracted text and content chunk link.

- [AckdbIdentityLink](/content/docs/schemas/AckdbIdentityLink/index.html)  
  Maps an external ID (Slack channel, Stripe customer, etc.) to an entity. One entity can have many identity links across many sources.

- [AckdbIdentityLinkTypeDefinition](/content/docs/schemas/AckdbIdentityLinkTypeDefinition/index.html)  
  A universal identity link type (#310) — resolves/matches an entity from ANY source, not just the one that declared it (like `domain`, but tenant-defined). Match-only by default; an entity-scoped type with `canMint: true` (#451) is a secondary anchor that can also CREATE an entity at ingest, for companies that have no domain. `domain` itself is built-in (`builtIn: true`) and always mints.

- [AckdbIngestLog](/content/docs/schemas/AckdbIngestLog/index.html)  
  Structured log for a single ingest HTTP request.

- [AckdbRawPayloadRecord](/content/docs/schemas/AckdbRawPayloadRecord/index.html)  
  A raw source payload stored in Postgres. Used for L3 evidence tier - deep evidence, citations, and debugging.

- [AckdbRecordDeletionHeader](/content/docs/schemas/AckdbRecordDeletionHeader/index.html)  
  One archive entry: what was deleted, by whom, why, and whether its identifiers are still frozen.

- [AckdbSegment](/content/docs/schemas/AckdbSegment/index.html)  
  A saved Observe Segment - config only (no data snapshot). Owned + per-user shared (#284); soft-deleted via deleted_at.

- [AckdbSegmentFolder](/content/docs/schemas/AckdbSegmentFolder/index.html)  
  A folder in ONE user's segment rail (#470). Folders are a personal filing layer: they are created, read, and written only by their owner, they are flat (a folder never contains another folder), and they span grains — one folder can hold company, contact and person segments, which is what keeps a derived segment filed next to the base it was pivoted from.

- [AckdbSegmentFolderItem](/content/docs/schemas/AckdbSegmentFolderItem/index.html)  
  One segment's placement inside a folder.

- [AckdbSegmentShare](/content/docs/schemas/AckdbSegmentShare/index.html)  
  One per-member grant on a segment (#284): a member from the GTM roster (memberId) + the role they hold. name/email are joined from the member row for display.

- [AckdbSegmentSummary](/content/docs/schemas/AckdbSegmentSummary/index.html)  
  Lightweight Segment list-item (no filter/sort/columns).

- [AckdbSourceDefinition](/content/docs/schemas/AckdbSourceDefinition/index.html)  
  Defines the expected shape of data arriving from a source type. Global defaults ship with ackDB.

- [AckdbSync](/content/docs/schemas/AckdbSync/index.html)

- [AckdbTraitDefinition](/content/docs/schemas/AckdbTraitDefinition/index.html)  
  Trait definition. Like Salesforce custom fields - defines what computed fields exist. AI agents discover fields by listing these at runtime.

- [AckdbUnresolvedContent](/content/docs/schemas/AckdbUnresolvedContent/index.html)  
  Data that arrived via ingest but couldn't be linked to an entity. Stored separately, queryable, and resolvable via POST /entities/resolve.

- [ActionGraphNode](/content/docs/schemas/ActionGraphNode/index.html)  
  One node in the workflow's action graph. `data[0]` is always the synthetic input node (`action_id: "input"`); subsequent elements are actions in topological execution order.

- [ActionInstance](/content/docs/schemas/ActionInstance/index.html)  
  An action instance in a workflow sheet's chain. Returned from Add Action and Get Action; contains enough information to subsequently call Configure Action (to wire inputs) or to wire downstream actions to this one (via `outputs[].reference`).

- [ActionNote](/content/docs/schemas/ActionNote/index.html)  
  A note attached to an action instance.

- [ActionOutput](/content/docs/schemas/ActionOutput/index.html)  
  A single output field produced by an action instance when it runs. `reference` is the variable token downstream actions use to pull this value. Outputs of type `structured_array` (a list of structured rows) additionally surface their per-column schema under `columns`, each with its own reference token for addressing individual columns. New `http_api_call` actions expose exactly two object outputs: `response` (the complete target body) and `metadata` ({status: number, isJson: boolean, durationMs: number, sizeBytes: number}). A target 4xx/5xx remains a completed action result: its body is saved in `response` and its status in `metadata`; only transport, timeout, the 25 MB response-size limit, or Floqer processing failures fail the cell. Metadata is separate from the body; durationMs measures request/body-read time in milliseconds and sizeBytes is the UTF-8 body length. Reference nested body values with a path such as `{{http_api_call_1.response.data.email}}`; materializing one as a column is a separate downstream `formula` action. Rootless legacy HTTP actions may retain configured projection outputs and are not automatically migrated.

- [AddRowsData](/content/docs/schemas/AddRowsData/index.html)  
  Outcome of an Add Rows batch.

- [DeleteAllRowsData](/content/docs/schemas/DeleteAllRowsData/index.html)  
  Outcome of a Delete All Rows call.

- [DeleteRowsData](/content/docs/schemas/DeleteRowsData/index.html)  
  Outcome of a Delete Rows batch.

- [EnvironmentVariable](/content/docs/schemas/EnvironmentVariable/index.html)  
  An organization environment variable. Reference it from an action field with the `reference` token; the value is substituted per row when the workflow runs. Values are never returned by the API.

- [GetOptionsData](/content/docs/schemas/GetOptionsData/index.html)  
  Response data for Get Action Field Options.

- [GetSourceDataResponse](/content/docs/schemas/GetSourceDataResponse/index.html)  
  Paginated rows imported into the source. `total_count` is the full row count in storage; `rows` is the current page.

- [GetSourceOptionsData](/content/docs/schemas/GetSourceOptionsData/index.html)  
  Response data for Get Source Field Options.

- [ImportCsvData](/content/docs/schemas/ImportCsvData/index.html)  
  Acknowledgement that the import was accepted and queued. Poll Get CSV Import Status for the outcome.

- [ImportCsvStatusData](/content/docs/schemas/ImportCsvStatusData/index.html)  
  Progress of the sheet's most recent CSV import.

- [Input](/content/docs/schemas/Input/index.html)  
  A single configured input field on a workflow sheet. Each input becomes a column in the sheet's data table and gets a `reference` token that downstream actions can use to pull the value.

- [ListRowsData](/content/docs/schemas/ListRowsData/index.html)  
  Paginated list of rows with their inputs and per-cell status.

- [PatchSourceStatusResponse](/content/docs/schemas/PatchSourceStatusResponse/index.html)  
  Confirmation of the source's new public lifecycle status.

- [RunRowsData](/content/docs/schemas/RunRowsData/index.html)  
  Outcome of a Run Rows call.

- [Sheet](/content/docs/schemas/Sheet/index.html)  
  A sheet in a workflow. Pass `sheet_id` as the `{sheet_id}` path parameter on every sheet-scoped endpoint.

- [SheetDeleted](/content/docs/schemas/SheetDeleted/index.html)  
  Confirmation envelope for a deleted child sheet.

- [SheetRenamed](/content/docs/schemas/SheetRenamed/index.html)  
  Confirmation envelope for a renamed child sheet.

- [Shortcut](/content/docs/schemas/Shortcut/index.html)  
  A shortcut wraps a workflow with typed input/output schemas, providing a simplified interface for running workflows programmatically. Shortcuts can be shared across an organization.

- [ShortcutRun](/content/docs/schemas/ShortcutRun/index.html)  
  Record of a single shortcut execution. Tracks input data, output results, and execution status from creation to completion.

- [SourceCreateResponse](/content/docs/schemas/SourceCreateResponse/index.html)  
  Create result envelope. `source_instance_id` is the new source's UUID — pass it to Sync / Get Source Data / Pause-Resume.

- [SourceListItem](/content/docs/schemas/SourceListItem/index.html)  
  A source the caller has created. Only sources whose type this API supports are listed.

- [SourcePreviewResponse](/content/docs/schemas/SourcePreviewResponse/index.html)  
  Preview result envelope. `data` is capped per source (at most 100 rows — e.g. find_job_postings returns up to 25, Slack up to 10). `metadata.total_results` is the upstream count. Per-row keys depend on the source.

- [SyncSourceResponse](/content/docs/schemas/SyncSourceResponse/index.html)  
  Confirmation that the source is connected to the workflow.

- [User](/content/docs/schemas/User/index.html)  
  Caller bootstrap payload. Identity and org membership are always present. Use List Workflows for accessible workflow metadata.

- [UserKnowledge](/content/docs/schemas/UserKnowledge/index.html)  
  The caller's organization knowledge file: a free-form text/markdown blob describing the org. `exists` is `false` and `content` is `null` when none has been written yet.

- [Workflow](/content/docs/schemas/Workflow/index.html)  
  A workflow summary. Timestamps are ISO 8601 UTC; `last_run_at` is `null` until the first run.

- [WorkflowDeleted](/content/docs/schemas/WorkflowDeleted/index.html)  
  Confirmation envelope for a deleted workflow.

- [WorkflowDuplicated](/content/docs/schemas/WorkflowDuplicated/index.html)  
  Identity of the newly-created workflow copy.

- [WorkflowOverview](/content/docs/schemas/WorkflowOverview/index.html)  
  Operational info for a workflow: metadata (same fields as List Workflows), sheet roster with settings and webhook URLs, and shared users.

- [WorkflowRenamed](/content/docs/schemas/WorkflowRenamed/index.html)  
  Confirmation envelope for a renamed workflow. This is the workflow's own name; the main sheet's tab label is stored separately and is set via Rename Sheet.

- [AckdbConfirmSyncBody](/content/docs/schemas/AckdbConfirmSyncBody/index.html)

- [AckdbCreateSyncBody](/content/docs/schemas/AckdbCreateSyncBody/index.html)

- [AckdbPatchSyncConnectionBody](/content/docs/schemas/AckdbPatchSyncConnectionBody/index.html)

- [AckdbResumeSyncConnectionBody](/content/docs/schemas/AckdbResumeSyncConnectionBody/index.html)

- [AddActionBody](/content/docs/schemas/AddActionBody/index.html)  
  Body for Add Action. `action_id` is the template; `after` (optional) is an `action_instance_id`; `name` (optional) overrides the template's default display name.
  Everything Configure Action accepts — `inputs`, `run_if`, `continue_workflow_if_action_fails`, `note` — can be sent here too, so an action can be created and fully configured in one request instead of two. Same shapes, same semantics, same `warnings[]`.

- [AddRowsBody](/content/docs/schemas/AddRowsBody/index.html)  
  Body for Add Rows. Accepts up to 1,000 rows per call.

- [ConfigureActionBody](/content/docs/schemas/ConfigureActionBody/index.html)  
  Body for Configure Action. Send only the fields you want to set — unset fields keep their current value.

- [CreateSheetBody](/content/docs/schemas/CreateSheetBody/index.html)  
  Body for Create Sheet. Only `name` is required.

- [CreateWorkflowBody](/content/docs/schemas/CreateWorkflowBody/index.html)  
  Body for Create Workflow. Only `name` is required.

- [DeleteRowsBody](/content/docs/schemas/DeleteRowsBody/index.html)  
  Body for Delete Rows. Accepts up to 200 row UUIDs per call.

- [DuplicateWorkflowBody](/content/docs/schemas/DuplicateWorkflowBody/index.html)  
  Body for Duplicate Workflow. `name` becomes the copied workflow's name.

- [GetOptionsBody](/content/docs/schemas/GetOptionsBody/index.html)  
  Body for Get Action Field Options. `context` carries any earlier cascading selections (e.g. `{ salesforce_object: "Account" }` for Salesforce field lookups). Resolvers without cascades accept an empty body.

- [GetSourceOptionsBody](/content/docs/schemas/GetSourceOptionsBody/index.html)  
  Body for Get Source Field Options. `context` carries any earlier cascading selections (e.g. `{ object_type: "contacts" }` for HubSpot property lookups). Resolvers without cascades accept an empty body.

- [ImportCsvBody](/content/docs/schemas/ImportCsvBody/index.html)  
  Body for Import CSV. The file must already be uploaded to Floqer; pass its object key.

- [ListRowsBody](/content/docs/schemas/ListRowsBody/index.html)  
  Body for List Rows. All fields optional.
  **Filtering** (browse mode only — `filters` / `status_filters` / `created_at` cannot combine with `row_ids`; the server returns 400 if you mix them):
  - `filters[]` — value filters on **sheet input columns**. Each entry: `{ variable, operator, values }`. `variable` is an `{{input.<column>}}` reference token.
  - `status_filters[]` — per-action cell-status filters. Each entry: `{ action_instance_id, is?, is_not? }` (exactly one of `is` / `is_not`).
  - `created_at` — single time filter on the row's creation timestamp. `{ operator, values }`.

- [MoveActionBody](/content/docs/schemas/MoveActionBody/index.html)  
  Body for Move Action. The moved action is placed immediately after the action identified by `after`.

- [PatchSourceStatusBody](/content/docs/schemas/PatchSourceStatusBody/index.html)  
  Lifecycle control for the source.

- [RenameActionBody](/content/docs/schemas/RenameActionBody/index.html)  
  Body for Rename Action. Sets the action instance's display name.

- [RenameSheetBody](/content/docs/schemas/RenameSheetBody/index.html)  
  Body for Rename Sheet. `name` is the only field.

- [RenameWorkflowBody](/content/docs/schemas/RenameWorkflowBody/index.html)  
  Body for Rename Workflow. `name` is the only field.

- [ReorderWaterfallBody](/content/docs/schemas/ReorderWaterfallBody/index.html)  
  Body for Reorder Waterfall Providers. Lists every currently configured provider by display name, exactly once, in the desired execution order.

- [RunRowsBody](/content/docs/schemas/RunRowsBody/index.html)  
  Body for Run Rows. Pass either `row_ids` (explicit list) or `first_10: true` (shortcut). Both-or-neither returns 400.

- [SaveNoteBody](/content/docs/schemas/SaveNoteBody/index.html)  
  Body for Save Action Note. Overwrites any existing note on the action.

- [SourceCreateBody](/content/docs/schemas/SourceCreateBody/index.html)  
  Per-source create body. Shape depends on `source_id` — see the provider README under `modules/sources/` (and optionally `/docs/source-detail/{source_id}.txt`). Validated at the handler level; the schema only enforces that the body is a JSON object.

- [SourcePreviewBody](/content/docs/schemas/SourcePreviewBody/index.html)  
  Per-source preview body. Shape depends on `source_id` — see the provider README under `modules/sources/` (and optionally `/docs/source-detail/{source_id}.txt`). Validated at the handler level; the schema only enforces that the body is a JSON object.
  
  One key is source-agnostic: `limit` (optional, positive integer) caps how many rows come back. It is consumed by the preview endpoint and never reaches the source, so it works on every source type and does not reduce upstream fetching or change `metadata.total_results`.

- [SyncSourceBody](/content/docs/schemas/SyncSourceBody/index.html)  
  Body for Sync Source to Workflow. Maps workflow inputs to source fields and (by default) backfills existing rows.

- [UserKnowledgeBody](/content/docs/schemas/UserKnowledgeBody/index.html)  
  Body for Set Org Knowledge. `content` replaces the entire knowledge file.

- [AckdbAddContactIdentityLinkRequest](/content/docs/schemas/AckdbAddContactIdentityLinkRequest/index.html)  
  Request body for POST /contacts/{contactId}/links. Only a REGISTERED universal type is accepted (no source-declared types, no 'domain'); always stamped source:'manual'.

- [AckdbAddIdentityLinkRequest](/content/docs/schemas/AckdbAddIdentityLinkRequest/index.html)  
  Request body for POST /entities/{ref}/links.

- [AckdbAgentApiKeyStatus](/content/docs/schemas/AckdbAgentApiKeyStatus/index.html)  
  Per-provider API key status. The raw key is write-only and never returned.

- [AckdbAgentWebSearchStatus](/content/docs/schemas/AckdbAgentWebSearchStatus/index.html)  
  Effective web access for the agent. Trust `active`, not `enabled`: a deployment can have web access turned on while running a provider that cannot honor it, in which case /ask stays offline and `inactiveReason` says why. anthropic enforces maxUses + allow/block lists; openai enforces an allow-list only (no block-list, no cap); kimi/glm cannot search.

- [AckdbAttributeCreateRequest](/content/docs/schemas/AckdbAttributeCreateRequest/index.html)  
  Create a custom attribute definition.

- [AckdbAttributeDefinition](/content/docs/schemas/AckdbAttributeDefinition/index.html)  
  An attribute definition (standard or custom) — a trait_definitions row shaped for the Attributes API.

- [AckdbAttributePatchRequest](/content/docs/schemas/AckdbAttributePatchRequest/index.html)  
  Edit an attribute's metadata (any subset of the fields its `editableFields` lists). `key` and `type` are always immutable. A custom attribute takes label/description/allowedValues; a STANDARD one takes `allowedValues` alone (#487). `scope` is the exclusive contact → person migration (#474) and must be the only field in the request.

- [AckdbAttributePutValuesRequest](/content/docs/schemas/AckdbAttributePutValuesRequest/index.html)  
  Set/clear attribute values on one record. `null` clears a value (DELETEs the row). All-or-nothing: every key/value is validated before anything is written.

- [AckdbBreakdownData](/content/docs/schemas/AckdbBreakdownData/index.html)

- [AckdbBulkAssignRequest](/content/docs/schemas/AckdbBulkAssignRequest/index.html)  
  Bulk-assign one member to many targets (#252). Supply at least one of entityIds, domains, or contactIds. isPrimary applies to every target.

- [AckdbBulkRecordDeletionResponse](/content/docs/schemas/AckdbBulkRecordDeletionResponse/index.html)

- [AckdbBulkUnassignRequest](/content/docs/schemas/AckdbBulkUnassignRequest/index.html)  
  Bulk-unassign one member from many explicit targets (#252). Supply at least one of entityIds, domains, or contactIds.

- [AckdbCompanyGraphCompany](/content/docs/schemas/AckdbCompanyGraphCompany/index.html)

- [AckdbCompanyReferenceInput](/content/docs/schemas/AckdbCompanyReferenceInput/index.html)

- [AckdbCompanyRelationshipProvenance](/content/docs/schemas/AckdbCompanyRelationshipProvenance/index.html)

- [AckdbContactCreateRequest](/content/docs/schemas/AckdbContactCreateRequest/index.html)  
  Explicit contact push. `linkedinUrl` / `email` double as the person's durable keys (that is how the human is resolved). `isExternal` is accepted but IGNORED — ackDB is the sole authority on internal/external classification (deployment config).

- [AckdbContactGraphContact](/content/docs/schemas/AckdbContactGraphContact/index.html)  
  A contact affiliation projection used as an org-chart node.

- [AckdbContactIdentityLink](/content/docs/schemas/AckdbContactIdentityLink/index.html)  
  Maps an external ID to a contact (#310). One contact can have many links across many sources. Contact writes only accept REGISTERED universal link types (never per-source-declared types) — see POST /schemas/identity-link-types.

- [AckdbContactMappingInput](/content/docs/schemas/AckdbContactMappingInput/index.html)  
  Maps event content fields to a contact (person) extracted at ingest time. A durable external ID is required; display name, email, title, and other person properties are optional.

- [AckdbContactMoveRequest](/content/docs/schemas/AckdbContactMoveRequest/index.html)  
  Re-parent this edge to the company it really belongs to (a correction — its events move with it).

- [AckdbContactRelationshipProvenance](/content/docs/schemas/AckdbContactRelationshipProvenance/index.html)

- [AckdbContactRepointRequest](/content/docs/schemas/AckdbContactRepointRequest/index.html)  
  Re-point this edge to another human (a correction — its events are restamped with the new person).

- [AckdbContactUpdateRequest](/content/docs/schemas/AckdbContactUpdateRequest/index.html)  
  Any subset. `title` and `status` transitions emit timeline events (see the endpoint description).

- [AckdbDashboardArtifact](/content/docs/schemas/AckdbDashboardArtifact/index.html)  
  Escape-hatch HTML page plus the queries that feed it. Informational: it never defines what a panel means. HTML is capped at 5MB and scanned for credentials at save.

- [AckdbDashboardBreakdownSpec](/content/docs/schemas/AckdbDashboardBreakdownSpec/index.html)  
  Group the segment's rows by one field and reduce each group to a number. A `date` groupBy is bucketed to the day; a NULL label is a real group ("unset"), never dropped.

- [AckdbDashboardCreateRequest](/content/docs/schemas/AckdbDashboardCreateRequest/index.html)

- [AckdbDashboardFeedSpec](/content/docs/schemas/AckdbDashboardFeedSpec/index.html)  
  Recent membership changes for the pinned segment, from the S1 change log. `reenter` is reported (and filtered) as `enter`.

- [AckdbDashboardFreshness](/content/docs/schemas/AckdbDashboardFreshness/index.html)

- [AckdbDashboardKpiSpec](/content/docs/schemas/AckdbDashboardKpiSpec/index.html)  
  One number. `count` is the segment's row count and takes NO field; every other agg requires a numeric catalog FIELD KEY (numeric traits/attributes, `sc__` score columns, `evc__` per-event-type counts, `emf__` promoted event fields). Contact-aggregate (#214) and event-aggregate (#413) columns are inline column specs, not field keys, so they cannot be named here.

- [AckdbDashboardPanel](/content/docs/schemas/AckdbDashboardPanel/index.html)  
  One panel. `segmentId` is REQUIRED for every type except `sql`, which forbids it. The pinned segment must be a BASE segment: a derived segment stores only the filter on top of its base, so a panel compiling it alone would answer for the wrong population (refused at save/preview, fails closed at read).

- [AckdbDashboardSqlCategoryViz](/content/docs/schemas/AckdbDashboardSqlCategoryViz/index.html)  
  Render SQL rows as horizontal bars or a pie. `labelKey` names any declared column; `valueKey` must name a number/currency column. topN defaults to all returned rows; `othersBucket` combines the remainder.

- [AckdbDashboardSqlLineViz](/content/docs/schemas/AckdbDashboardSqlLineViz/index.html)  
  Render ordered SQL rows as a line chart. `xKey` names a declared date/string/number column; `yKey` names a declared number/currency column. Row order is the query order.

- [AckdbDashboardSqlSpec](/content/docs/schemas/AckdbDashboardSqlSpec/index.html)  
  Escape hatch. A single read-only SELECT on the `ackdb_readonly` role (BEGIN READ ONLY + statement timeout + row/byte caps + extended wire protocol). Segment-less by design; never cached. No bind params in this build.

- [AckdbDashboardSqlViz](/content/docs/schemas/AckdbDashboardSqlViz/index.html)  
  A validated visualization mapping for a SQL panel. Omit `viz` to retain the declared-columns table.

- [AckdbDashboardTableSpec](/content/docs/schemas/AckdbDashboardTableSpec/index.html)  
  The segment results rails with a columns/sort override (the pivot override contract). Omitted columns/sort inherit the segment's own; rows come back identical to GET /observe/segments/{id}/results.

- [AckdbDashboardTimeseriesSpec](/content/docs/schemas/AckdbDashboardTimeseriesSpec/index.html)  
  One dense point per bucket. `bucket` x `windowDays` must yield at most 366 points (so a `day` bucket caps at 366 days), rejected at save/preview otherwise.

- [AckdbDashboardUpdateRequest](/content/docs/schemas/AckdbDashboardUpdateRequest/index.html)  
  A PATCH: an omitted key is left alone, an explicit `null` CLEARS description / artifact / layout.

- [AckdbDefaultTraitSpec](/content/docs/schemas/AckdbDefaultTraitSpec/index.html)  
  A trait that ships with a source definition as a default.

- [AckdbDeleteEventsRequest](/content/docs/schemas/AckdbDeleteEventsRequest/index.html)  
  Request body for DELETE /data/events. IDs-only by design (no filter selectors) to keep the blast radius minimal - look up ids via the read API first.

- [AckdbDeleteEventsResponse](/content/docs/schemas/AckdbDeleteEventsResponse/index.html)  
  Response from DELETE /data/events. A committed delete returns `deleted` (per-table counts); a dry-run returns `resolved` + `wouldDelete` with the identical report. `retained` says what was deliberately left standing; `pendingRebuild` reports, per entity+source pair, the derived content removed now and the surviving payloads queued for re-embedding.

- [AckdbEntityLogoUpload](/content/docs/schemas/AckdbEntityLogoUpload/index.html)  
  A base64-encoded company logo image.

- [AckdbErrorResponse](/content/docs/schemas/AckdbErrorResponse/index.html)  
  Standard error response envelope.

- [AckdbEventTypeFieldInput](/content/docs/schemas/AckdbEventTypeFieldInput/index.html)  
  One field within an event type's content schema. `requiredWhen` makes an otherwise-optional field conditionally required based on the value of a sibling field.

- [AckdbEventTypeInput](/content/docs/schemas/AckdbEventTypeInput/index.html)  
  Event type definition payload for declaring/editing an event type. The same shape is accepted in `SourceCreateRequest.events[]`, `POST .../events`, and `PUT .../events/{eventType}`.

- [AckdbFeedData](/content/docs/schemas/AckdbFeedData/index.html)

- [AckdbIdentityLinkTypeCreateRequest](/content/docs/schemas/AckdbIdentityLinkTypeCreateRequest/index.html)  
  Request body for POST /schemas/identity-link-types.

- [AckdbIdentityLinkTypeUpdateRequest](/content/docs/schemas/AckdbIdentityLinkTypeUpdateRequest/index.html)  
  Request body for PATCH /schemas/identity-link-types/{typeKey}. Provide at least one field.

- [AckdbIngestContact](/content/docs/schemas/AckdbIngestContact/index.html)  
  One person to create or update at the resolved entity, pushed via IngestRequest.contacts. Resolution is person-first: durable keys (LinkedIn, then email, then person-scoped ids) find the human globally, then the affiliation edge at this company is found or created.

- [AckdbIngestFile](/content/docs/schemas/AckdbIngestFile/index.html)  
  A file to upload during ingest. Content is base64-encoded. Max 10MB.

- [AckdbIngestIdentityLink](/content/docs/schemas/AckdbIngestIdentityLink/index.html)  
  Identity link in an ingest request - maps an external ID to the data.

- [AckdbIngestRequest](/content/docs/schemas/AckdbIngestRequest/index.html)  
  Request body for data ingestion from workflow tools. Content is validated against the source's content_schema, traits against trait_definitions. Ownership comes from the event type: entity is company-only, person is a person at a company, person_only is the human alone.
  Personal requests omit company links (or send empty arrays), forbid non-null entityId/contactId and nonempty contacts/traits/files, and resolve a durable person key or explicit personId. Personal structured/activity events create no affiliations.

- [AckdbIngestResponse](/content/docs/schemas/AckdbIngestResponse/index.html)  
  Response from a successful ingest operation.

- [AckdbIngestTrait](/content/docs/schemas/AckdbIngestTrait/index.html)  
  A pre-computed trait value in an ingest request.

- [AckdbInternalUser](/content/docs/schemas/AckdbInternalUser/index.html)  
  A known internal team member for contact classification.

- [AckdbKpiData](/content/docs/schemas/AckdbKpiData/index.html)  
  One number. An empty segment and a NULL aggregate both read null ("nothing to average", not 0).

- [AckdbMember](/content/docs/schemas/AckdbMember/index.html)  
  A member of the tenant's internal GTM team (the full internal_users row).

- [AckdbMemberAssignRequest](/content/docs/schemas/AckdbMemberAssignRequest/index.html)  
  Assign or reassign a member to a company or contact. Identify the member by memberId OR email.

- [AckdbMemberAssignment](/content/docs/schemas/AckdbMemberAssignment/index.html)  
  The ownership link between a member and an owned company (entityId) or contact (contactId) — exactly one target is set. isPrimary marks the owner/DRI.

- [AckdbMemberCreateRequest](/content/docs/schemas/AckdbMemberCreateRequest/index.html)  
  Create a member. Supply at least one of email, name, or sourceIds.

- [AckdbMemberIdsResponse](/content/docs/schemas/AckdbMemberIdsResponse/index.html)

- [AckdbMemberUpdateRequest](/content/docs/schemas/AckdbMemberUpdateRequest/index.html)  
  Patch a member. Only provided fields change; nullable fields accept null to clear.

- [AckdbMergeCandidate](/content/docs/schemas/AckdbMergeCandidate/index.html)  
  One first-writer-wins key conflict: a write tried to attach a key that another person already owns. It is recorded, never acted on — merging is always a human decision.
  A repeat of the same tuple bumps `updatedAt`; a dismissed candidate stays dismissed.

- [AckdbMergeDuplicatePersonsRequest](/content/docs/schemas/AckdbMergeDuplicatePersonsRequest/index.html)  
  Batch-consume the open merge candidates. Dry-run unless `dryRun: false` is sent explicitly.

- [AckdbMergeRequest](/content/docs/schemas/AckdbMergeRequest/index.html)  
  Request to merge two duplicate entities. Winner keeps its entity_id.

- [AckdbMergeResponse](/content/docs/schemas/AckdbMergeResponse/index.html)  
  Response from a successful merge operation. All data is transferred - nothing is lost.

- [AckdbObserveAttributeCondition](/content/docs/schemas/AckdbObserveAttributeCondition/index.html)  
  A condition on a fixed entity attribute (name, domain, status, timestamps, event counts, sources, last activity, or source presence).

- [AckdbObserveEventCondition](/content/docs/schemas/AckdbObserveEventCondition/index.html)  
  A condition on the entity's event timeline. `eventType` is source-prefixed and whitelisted against the catalog. `withinDays` bounds the lookback; `count` is used by count_gte/count_lte.

- [AckdbObserveEventFieldCondition](/content/docs/schemas/AckdbObserveEventFieldCondition/index.html)  
  A condition on a promoted event-metadata field's reduced scalar value (#212). `columnKey` is the synthetic field-catalog key (`emf__<source>__<field>` for the latest value, or `…__sum` for a numeric running total) and is whitelisted against the catalog; the operator must be legal for the field's valueType (same legality as a trait of that type).

- [AckdbObserveFieldEditResponse](/content/docs/schemas/AckdbObserveFieldEditResponse/index.html)  
  Result of a direct field-value edit (#238). `updated` lists the field keys that were written; `errors` maps each field that was NOT written to a reason - an unknown field, a type/allowedValues violation, or a non-editable field (a computed/derived column, an append-only event/event-field column, or the internal `status` lifecycle enum).

- [AckdbObserveFilter](/content/docs/schemas/AckdbObserveFilter/index.html)  
  Recursive Observe filter DSL. A node is either a boolean `group` (with `op` and a `children` array of further nodes) or a leaf condition (`trait`, `attribute`, `event`, or `event_field`). The root node is always a group. Empty groups compile to TRUE (match all).

- [AckdbObserveFilterGroup](/content/docs/schemas/AckdbObserveFilterGroup/index.html)  
  A boolean group combining child nodes with AND/OR.

- [AckdbObserveQueryRequest](/content/docs/schemas/AckdbObserveQueryRequest/index.html)  
  Body for POST /observe/companies/query (and the /observe/contacts/query, /observe/persons/query twins). All fields optional - an empty body returns the default page of all active rows. The envelope is validated: an unknown top-level key, or a `group` node carrying an unknown key / a non-array `children`, is a 400 rather than a silently unfiltered query.

- [AckdbObserveQueryResponse](/content/docs/schemas/AckdbObserveQueryResponse/index.html)  
  Response for the Observe company query. `data` rows always carry entityId, name, and domain plus the projected columns. `pagination.totalIsLowerBound` may be set when the count was clamped.

- [AckdbObserveTraitCondition](/content/docs/schemas/AckdbObserveTraitCondition/index.html)  
  A condition on a registered entity trait. `traitKey` is whitelisted against the field catalog; the operator must be legal for the trait's valueType.

- [AckdbPagination](/content/docs/schemas/AckdbPagination/index.html)

- [AckdbPaginationMeta](/content/docs/schemas/AckdbPaginationMeta/index.html)  
  Pagination metadata included in paginated responses.

- [AckdbPanelEnvelope](/content/docs/schemas/AckdbPanelEnvelope/index.html)  
  A panel's whole answer, always HTTP 200 for a data-shaped outcome. EXACTLY one arm: `data` (it ran), `degraded` (a scrub path disarmed it, or its segment is gone: no data, no 400), or `error` (timeout, read-only guard rejection, stale field - isolated to this panel).

- [AckdbPerson](/content/docs/schemas/AckdbPerson/index.html)  
  One human. The true identity is the ULID; durable keys are pointers into it (exactly as `domain` → entityId). `status` is the IDENTITY lifecycle only — a person with three ended jobs is still `active`; employment state lives on each contact edge.

- [AckdbPersonAffiliation](/content/docs/schemas/AckdbPersonAffiliation/index.html)  
  One STINT: a contact edge (person @ company) plus its company name. `status: former` + `endedAt` is a finished stint; a boomerang employee has several stints at the same company.

- [AckdbPersonCreateRequest](/content/docs/schemas/AckdbPersonCreateRequest/index.html)  
  Manual person create. All fields are optional — a person with no keys is a legal singleton.

- [AckdbPersonIdentityLink](/content/docs/schemas/AckdbPersonIdentityLink/index.html)  
  A durable person key. Values are stored NORMALIZED and are globally UNIQUE per (externalIdType, externalIdValue) — one human per key, which is the structural dedup guarantee. Keys accrete over a career and are never re-pointed (first-writer-wins).

- [AckdbPersonLinkCreateRequest](/content/docs/schemas/AckdbPersonLinkCreateRequest/index.html)  
  Attach one durable key to a person.

- [AckdbPersonListItem](/content/docs/schemas/AckdbPersonListItem/index.html)  
  A Person plus the cheap list-view aggregates (no N+1 needed to render a table).

- [AckdbPersonMergeRequest](/content/docs/schemas/AckdbPersonMergeRequest/index.html)  
  Merge `loserId` into the path person (or into `winnerOverride`, which must be one of the two).

- [AckdbPersonMergeResult](/content/docs/schemas/AckdbPersonMergeResult/index.html)  
  Outcome of a person merge. `merged: false` = both ids already resolved to the same human (a no-op).

- [AckdbPersonProfile](/content/docs/schemas/AckdbPersonProfile/index.html)  
  The person grain's L1 read: who they are, how we know them, where they work(ed), what just happened.

- [AckdbPersonUpdateRequest](/content/docs/schemas/AckdbPersonUpdateRequest/index.html)  
  Person-grain fact update (#372, #544). At least one field must be provided.

- [AckdbPurgeResponse](/content/docs/schemas/AckdbPurgeResponse/index.html)  
  Response from a purge operation. Includes per-table counts of deleted records so callers can verify the expected data was removed.

- [AckdbRecordDeletionCounts](/content/docs/schemas/AckdbRecordDeletionCounts/index.html)  
  Per-table row counts a delete removed. Every field is always present (0 when untouched).

- [AckdbRecordDeletionResponse](/content/docs/schemas/AckdbRecordDeletionResponse/index.html)

- [AckdbResolveRequest](/content/docs/schemas/AckdbResolveRequest/index.html)  
  Request to resolve unresolved content to an entity.

- [AckdbResolveResponse](/content/docs/schemas/AckdbResolveResponse/index.html)  
  Response from a successful resolve operation.

- [AckdbScoreCapabilities](/content/docs/schemas/AckdbScoreCapabilities/index.html)  
  What this server's score validator accepts (#438): the contract a builder renders from instead of probing for support by saving throwaway definitions. Static, since it mirrors the validator's own constants, so it needs no DB round trip.

- [AckdbScoreCriterion](/content/docs/schemas/AckdbScoreCriterion/index.html)  
  One scoring rule: a field reference + exactly one scoring mode. Field refs — `trait:<key>` / `attribute:<key>` (company grain; person grain: `attribute:is_internal|affiliation_count|key_count`), `identity_link:<type>`, `event:<source>.<bareType>` (aggregate), `contacts` (company grain persona count), `company:trait:<key>` (person grain, best match over ANY active affiliation), `convergence` (both grains: the count of DISTINCT `sources` with activity — or of DISTINCT fired `signals` event refs — inside `windowDays`, scored via `bands`; exactly one of sources | signals).

- [AckdbScoreDefinition](/content/docs/schemas/AckdbScoreDefinition/index.html)

- [AckdbScoreDefinitionInput](/content/docs/schemas/AckdbScoreDefinitionInput/index.html)  
  Create/replace body for a score definition.

- [AckdbScoreExplain](/content/docs/schemas/AckdbScoreExplain/index.html)  
  Per-criterion score breakdown — identical math to the compiled sc__ column.

- [AckdbScoreHistory](/content/docs/schemas/AckdbScoreHistory/index.html)  
  A subject's score series from the sweep's change-only `score.changed` events. `changes`: one point per emission (date = full ISO timestamp). `locf`: one point per UTC day (date = YYYY-MM-DD), last observation carried forward, seeded from before the range; days before the first-ever observation are omitted (never fabricated as zero).

- [AckdbScorePreview](/content/docs/schemas/AckdbScorePreview/index.html)  
  The builder histogram: 20 five-point buckets over the 0–100 score axis.

- [AckdbSegmentBootstrapPageResponse](/content/docs/schemas/AckdbSegmentBootstrapPageResponse/index.html)

- [AckdbSegmentChange](/content/docs/schemas/AckdbSegmentChange/index.html)  
  One change-log row: a member's transition for a segment.

- [AckdbSegmentChangesResponse](/content/docs/schemas/AckdbSegmentChangesResponse/index.html)

- [AckdbSegmentColumn](/content/docs/schemas/AckdbSegmentColumn/index.html)  
  One projected column: a field key, optionally frozen to the left edge, optionally a persisted pixel width. Width is per-segment layout (presentation only) - the compiler ignores it.

- [AckdbSegmentSort](/content/docs/schemas/AckdbSegmentSort/index.html)  
  One sort directive: a field key and a direction.

- [AckdbSetContactIdentityLinkValuesRequest](/content/docs/schemas/AckdbSetContactIdentityLinkValuesRequest/index.html)  
  Request body for PUT /contacts/{contactId}/links/{type}. Declarative: this becomes the complete value set for the type; [] clears it. Adding requires a registered universal type; removing never does.

- [AckdbSetIdentityLinkValuesRequest](/content/docs/schemas/AckdbSetIdentityLinkValuesRequest/index.html)  
  Request body for PUT /entities/{ref}/links/{type}. Declarative: this becomes the complete value set for the type; [] clears it.

- [AckdbSourceCreateDefaultTrait](/content/docs/schemas/AckdbSourceCreateDefaultTrait/index.html)  
  A default trait to register when declaring a source. The key MUST be `<sourceType>_*`.

- [AckdbSourceCreateRequest](/content/docs/schemas/AckdbSourceCreateRequest/index.html)  
  Declare a custom source with eventTypeField. identityLinkTypes may be empty for a closed source containing only person_only types; otherwise include domain.

- [AckdbSourceUpdateRequest](/content/docs/schemas/AckdbSourceUpdateRequest/index.html)  
  Partial source edit. Every field is optional; provided fields replace the existing ones. Allowed on custom sources and shipped packs (an edit marks the row `user_modified`).

- [AckdbSqlData](/content/docs/schemas/AckdbSqlData/index.html)

- [AckdbSyncConnection](/content/docs/schemas/AckdbSyncConnection/index.html)

- [AckdbSyncCounters](/content/docs/schemas/AckdbSyncCounters/index.html)

- [AckdbSyncErrorResponse](/content/docs/schemas/AckdbSyncErrorResponse/index.html)

- [AckdbTableData](/content/docs/schemas/AckdbTableData/index.html)  
  Rows verbatim from the grain's row compiler - byte-identical to GET /observe/segments/{id}/results.

- [AckdbTimeseriesData](/content/docs/schemas/AckdbTimeseriesData/index.html)  
  Dense: one point per bucket, `t` is the bucket START (ISO-8601), ascending. Event and membership values are zero-filled numbers; a score month with no scored member is null.

- [AckdbTombstoneIdentifiers](/content/docs/schemas/AckdbTombstoneIdentifiers/index.html)  
  The frozen `(type, value)` pairs, stored exactly as the resolvers store them (domains as ingested, emails lowercased, LinkedIn canonical) — the guard compares with plain equality.

- [AckdbTraitValueType](/content/docs/schemas/AckdbTraitValueType/index.html)  
  Type system for trait validation and storage. Controls how trait values are validated on ingest and stored in the entity_traits table.

- [AckdbTransferBookRequest](/content/docs/schemas/AckdbTransferBookRequest/index.html)  
  Transfer a member's book (companies + contacts) to another member (#252). Destination by toMemberId OR toEmail. all:true moves the whole book; otherwise list entityIds/contactIds.

- [ActionInput](/content/docs/schemas/ActionInput/index.html)  
  A single input field on an action instance. The caller wires this field up via the Configure Action endpoint.

- [ConfigureActionWarning](/content/docs/schemas/ConfigureActionWarning/index.html)  
  A non-fatal issue detected while applying a Configure Action request.

- [DeletedRowRejection](/content/docs/schemas/DeletedRowRejection/index.html)  
  A row UUID the server couldn't delete, with a human-readable reason.

- [InputCreate](/content/docs/schemas/InputCreate/index.html)  
  An input field to add to a workflow sheet. `reference` is server-computed from `name` and is never accepted on the request.

- [InputField](/content/docs/schemas/InputField/index.html)  
  Definition of a single input field in a shortcut's input schema. Each field maps to a column in the underlying workflow's input action.

- [OptionItem](/content/docs/schemas/OptionItem/index.html)  
  One value the resolver returned. `value` is what to send back via Configure Action; `label` is the human-readable text. `extras` carries integration-specific metadata when present (Salesforce field metadata, HubSpot property type, etc.).

- [OutputConfig](/content/docs/schemas/OutputConfig/index.html)  
  Definition of a single output field in a shortcut's output schema. Each field maps to a column produced by the workflow's OUTPUT_CUSTOM_ENRICHMENT action.

- [RejectedRow](/content/docs/schemas/RejectedRow/index.html)  
  A row the server couldn't accept. Original content is echoed back so the caller can fix and resend without position tracking.

- [RowCell](/content/docs/schemas/RowCell/index.html)  
  One cell of a row (a single action × a single row). Branch on `status` to decide which of `outputs` / `outputs_ref` / `error` to read.

- [RowView](/content/docs/schemas/RowView/index.html)  
  A row on a sheet with its inputs and per-cell action status/outputs.

- [RowWarning](/content/docs/schemas/RowWarning/index.html)  
  A non-fatal issue detected while processing a rows batch.

- [SourceOptionItem](/content/docs/schemas/SourceOptionItem/index.html)  
  One value the resolver returned. `value` is what to send back in the source's create / preview payload; `label` is the human-readable text. `extras` carries integration-specific metadata when present (HubSpot property type, list color, etc.).

- [SuccessMessage](/content/docs/schemas/SuccessMessage/index.html)  
  Simple success response with a confirmation message.

- [UserOrgMembers](/content/docs/schemas/UserOrgMembers/index.html)  
  Members of the caller's organization. Emails are Floqer usernames.

- [WorkflowOverviewSheet](/content/docs/schemas/WorkflowOverviewSheet/index.html)  
  A sheet's operational settings within the parent workflow returned by Get Workflow Overview. `sheet_id` is the UUID to pass on sheet-scoped endpoints.
