API reference

Ask, threads and evidence

Ask the Manager or a specialist, read findings and the inbox, and open the snapshot rows behind every number.

post

/v1/findings/{id}:dismiss

findings.dismiss.v1 — dismiss an open finding with a reason code (payload finding_id must equal the path id)

operationId dismissFinding

Auth

Member token+Tenant header

Parameters

  • idin pathstringrequired
    pattern ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$

Request body

object
  • command_idUuid7required
  • idempotency_keystringrequired
    pattern ^[A-Za-z0-9_.:-]{8,100}$
  • typeconst "findings.dismiss.v1"required
  • payloadFindingsDismissV1required

Response 200

CommandResultcontract command-result
  • command_idUuid7required
  • typestringrequired
    pattern ^[a-z][a-z_]*(\.[a-z][a-z_]*)+\.v[1-9][0-9]*$
  • entity_idUuid7required
  • committed_atIsoDatetimerequired

Errors

Every error body carries a code, a message and, where it applies, a reason_code. All error and reason codes.

get

/v1/conversations

Conversations in the caller's outlet scope (handovers, supplier and imported chats); a conversation with no outlet is tenant-wide

operationId listConversations

Auth

Member token+Tenant header

Parameters

  • outletin querystringoptional
    pattern ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
  • kindin queryenum (5)optional
    handoversuppliercustomerimported_chatother
  • limitin queryintegeroptional
  • cursorin querystringoptional
    pattern ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$

Response 200

V1Conversationscontract v1.conversations
  • itemsarray of objectrequired
    • conversation_idUuid7required
    • outlet_idUuid7 | nullrequired
    • kindenum (5)required
      handoversuppliercustomerimported_chatother
    • titlestring | nullrequired
    • document_idUuid7 | nullrequired
    • created_atIsoDatetimerequired
  • next_cursorUuid7 | nullrequired

Errors

Every error body carries a code, a message and, where it applies, a reason_code. All error and reason codes.

get

/v1/conversations/{id}/messages

A conversation's messages, oldest first; bodies are untrusted text

operationId listConversationMessages

Auth

Member token+Tenant header

Parameters

  • idin pathstringrequired
    pattern ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
  • limitin queryintegeroptional
  • cursorin querystringoptional
    pattern ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$

Response 200

V1ConversationMessagescontract v1.conversation.messages
  • itemsarray of objectrequired
    • message_idUuid7required
    • conversation_idUuid7required
    • author_member_idUuid7 | nullrequired
    • author_labelstring | nullrequired
    • bodystringrequired
    • sent_atIsoDatetimerequired
  • next_cursorUuid7 | nullrequired

Errors

Every error body carries a code, a message and, where it applies, a reason_code. All error and reason codes.

get

/v1/wiki/pages

Wiki pages, newest first

operationId listWikiPages

Auth

Member token+Tenant header

Parameters

  • kindin querystringoptional
    pattern ^[a-z][a-z0-9_]*$
  • limitin queryintegeroptional
  • cursorin querystringoptional
    pattern ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$

Response 200

V1WikiPagescontract v1.wiki.pages
  • itemsarray of objectrequired
    • page_idUuid7required
    • entity_idUuid7 | nullrequired
    • kindstringrequired
    • slugstringrequired
    • titlestringrequired
    • current_versioninteger | nullrequired
      ≥ 1≤ 9007199254740991
    • updated_atIsoDatetimerequired
  • next_cursorUuid7 | nullrequired

Errors

Every error body carries a code, a message and, where it applies, a reason_code. All error and reason codes.

get

/v1/wiki/pages/{id}

One wiki page with its current body (refs unresolved)

operationId getWikiPage

Auth

Member token+Tenant header

Parameters

  • idin pathstringrequired
    pattern ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$

Response 200

V1WikiPagecontract v1.wiki.page
  • page_idUuid7required
  • entity_idUuid7 | nullrequired
  • kindstringrequired
  • slugstringrequired
  • titlestringrequired
  • current_versioninteger | nullrequired
    ≥ 1≤ 9007199254740991
  • updated_atIsoDatetimerequired
  • bodyarray of anyrequired

Errors

Every error body carries a code, a message and, where it applies, a reason_code. All error and reason codes.

get

/v1/wiki/pages/{id}/versions

A page's versions with their bodies, newest first

operationId listWikiVersions

Auth

Member token+Tenant header

Parameters

  • idin pathstringrequired
    pattern ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
  • limitin queryintegeroptional
  • cursorin querystringoptional
    pattern ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$

Response 200

V1WikiVersionscontract v1.wiki.versions
  • itemsarray of objectrequired
    • version_idUuid7required
    • versionintegerrequired
      ≥ 1≤ 9007199254740991
    • bodyarray of anyrequired
    • run_idUuid7 | nullrequired
    • created_atIsoDatetimerequired
  • next_cursorUuid7 | nullrequired

Errors

Every error body carries a code, a message and, where it applies, a reason_code. All error and reason codes.

get

/v1/findings

Findings in the caller's outlet scope; pack = the specialist (T-092a)

operationId listFindings

Auth

Member token+Tenant header

Parameters

  • cursorin querystringoptional
  • limitin queryintegeroptional
  • statusin queryenum (3)optional
    opendismissedresolved
  • packin querystringoptional
    pattern ^[a-z_]{1,40}$

Response 200

V1FindingsResponsecontract v1.findings.response
  • itemsarray of V1Findingrequired
  • next_cursorstring | nullrequired

Errors

Every error body carries a code, a message and, where it applies, a reason_code. All error and reason codes.

get

/v1/inbox

Findings and drafts awaiting a person

operationId listInbox

Auth

Member token+Tenant header

Parameters

  • cursorin querystringoptional
  • limitin queryintegeroptional

Response 200

V1InboxResponsecontract v1.inbox.response
  • itemsarray of one of 2required

    kind = "finding"

    • kindconst "finding"required
    • findingV1Findingrequired

    kind = "draft"

    • kindconst "draft"required
    • draftV1Draftrequired
  • next_cursorstring | nullrequired

Errors

Every error body carries a code, a message and, where it applies, a reason_code. All error and reason codes.

post

/v1/snapshots

A member mints an allow-listed template snapshot (R40 C4); scope from the member token

operationId mintMemberSnapshot

Auth

Member token+Tenant header

Request body

V1SnapshotsRequestcontract v1.snapshots.request
  • template_idstringrequired
    pattern ^[a-z][a-z0-9_]*(\.[a-z][a-z0-9_]*)*$
  • paramsmap of one of 4 | nullrequired

Response 201

Snapshotcontract snapshot
  • snapshot_idUuid7required
  • template_idstringrequired
    pattern ^[a-z][a-z0-9_]*(\.[a-z][a-z0-9_]*)*$
  • paramsmap of one of 4 | nullrequired
  • run_idUuid7 | nullrequired
  • minted_by_member_idUuid7 | nullrequired
  • minted_by_operator_idUuid7 | nullrequired
  • outlet_scopeone of 2required
  • columnsarray of objectrequired
    • namestringrequired
      pattern ^[a-z_][a-z0-9_]*$
    • typeenum (7)required
      integernumerictextdatetimestamptzbooleanuuid
    • numeric_sourceone of 2 | nulloptional
  • rowsarray of map of one of 3 | nullrequired
    max items 500
  • row_countintegerrequired
    ≥ 0≤ 500
  • sha256stringrequired
    pattern ^[0-9a-f]{64}$
  • created_atIsoDatetimerequired

Errors

Every error body carries a code, a message and, where it applies, a reason_code. All error and reason codes.

get

/v1/snapshots/{id}

Open the rows behind a ref

operationId getSnapshot

Auth

Member token+Tenant header

Parameters

  • idin pathstringrequired
    pattern ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$

Response 200

Snapshotcontract snapshot
  • snapshot_idUuid7required
  • template_idstringrequired
    pattern ^[a-z][a-z0-9_]*(\.[a-z][a-z0-9_]*)*$
  • paramsmap of one of 4 | nullrequired
  • run_idUuid7 | nullrequired
  • minted_by_member_idUuid7 | nullrequired
  • minted_by_operator_idUuid7 | nullrequired
  • outlet_scopeone of 2required
  • columnsarray of objectrequired
    • namestringrequired
      pattern ^[a-z_][a-z0-9_]*$
    • typeenum (7)required
      integernumerictextdatetimestamptzbooleanuuid
    • numeric_sourceone of 2 | nulloptional
  • rowsarray of map of one of 3 | nullrequired
    max items 500
  • row_countintegerrequired
    ≥ 0≤ 500
  • sha256stringrequired
    pattern ^[0-9a-f]{64}$
  • created_atIsoDatetimerequired

Errors

Every error body carries a code, a message and, where it applies, a reason_code. All error and reason codes.

get

/v1/runs/{id}

A run by id

operationId getRun

Auth

Member token+Tenant header

Parameters

  • idin pathstringrequired
    pattern ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$

Response 200

V1RunResponsecontract v1.run.response
  • run_idUuid7required
  • triggerenum (6)required
    eventwatch_sweepaskbriefingestauto_step
  • actorstringrequired
    min length 1max length 100
  • outlet_scopeone of 2required
  • issued_atIsoDatetimerequired
  • expires_atIsoDatetimerequired
  • ended_atIsoDatetime | nullrequired

Errors

Every error body carries a code, a message and, where it applies, a reason_code. All error and reason codes.

get

/v1/runs

Runs in the caller's scope, newest first; ?finding= gives the run that produced it

operationId listRuns

Auth

Member token+Tenant header

Parameters

  • findingin querystringoptional
    pattern ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
  • cursorin querystringoptional
  • limitin queryintegeroptional

Response 200

V1RunsResponsecontract v1.runs.response
  • itemsarray of V1RunResponserequired
  • next_cursorstring | nullrequired

Errors

Every error body carries a code, a message and, where it applies, a reason_code. All error and reason codes.

get

/v1/traces/{run}

Trace events of a run, in seq order

operationId getTrace

Auth

Member token+Tenant header

Parameters

  • runin pathstringrequired
    pattern ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
  • after_seqin queryintegeroptional
  • limitin queryintegeroptional

Response 200

V1TracesResponsecontract v1.traces.response
  • run_idUuid7required
  • eventsarray of TraceEventrequired
  • next_after_seqinteger | nullrequired
    ≥ 0≤ 9007199254740991

Errors

Every error body carries a code, a message and, where it applies, a reason_code. All error and reason codes.

get

/v1/lineage

Lineage of one book row via core.audit_log (row=<schema>.<table>:<uuid>); a row outside the caller's scope is 404

operationId getRowLineage

Auth

Member token+Tenant header

Parameters

  • rowin querystringrequired
    pattern ^[a-z_]+\.[a-z_][a-z0-9_]*:[0-9a-f-]{36}$

Response 200

V1LineageRowcontract v1.lineage.row
  • rowobjectrequired
    • tablestringrequired
      pattern ^[a-z_]+\.[a-z_][a-z0-9_]*$
    • idUuid7required
  • chainsarray of objectrequired
    min items 1
    • auditobject | nullrequired
      • seqintegerrequired
        ≥ 1≤ 9007199254740991
      • actionstringrequired
        min length 1
      • entitystringrequired
        pattern ^[a-z_]+\.[a-z_][a-z0-9_]*$
      • entity_idstringrequired
        min length 1
      • atIsoDatetimerequired
      • actorobjectrequired
        Show fields of actor
        • member_idUuid7 | nullrequired
        • kindstringrequired
          min length 1
        • rolestringrequired
          min length 1
      • decision_idUuid7 | nullrequired
    • decisionobject | nullrequired
      • decision_idUuid7required
      • verdictenum (3)required
        approvededitedrejected
      • reasonstring | nullrequired
      • reason_codeenum (5) | nullrequired
        wrong_numbersnot_neededalready_donebad_timingother
      • decided_byobjectrequired
        Show fields of decided_by
        • member_idUuid7required
        • namestring | nullrequired
      • decided_atIsoDatetimerequired
    • draftobject | nullrequired
      • draft_idUuid7required
      • command_typestringrequired
        pattern ^[a-z][a-z_]*(\.[a-z][a-z_]*)+\.v[1-9][0-9]*$
      • sourcestringrequired
        pattern ^(intel:[a-z_]+|import|member)$
      • outlet_idsarray of Uuid7required
      • created_atIsoDatetimerequired
      • outcomeobjectrequired
        Show fields of outcome
        • statusenum (6)required
          proposedexecutingexecutedfailedrejectedstale
        • reasonstring | nullrequired
        • reason_codeenum (5) | nullrequired
          wrong_numbersnot_neededalready_donebad_timingother
        • changesarray of objectrequired
          Show fields of changes
          • refstringrequired
            pattern ^⟨snap:[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}·(?:0|[1-9][0-9]*)·[a-z_][a-z0-9_]*⟩$
          • now_refstring | nullrequired
            pattern ^⟨snap:[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}·(?:0|[1-9][0-9]*)·[a-z_][a-z0-9_]*⟩$
        • sqlstatestring | nullrequired
          pattern ^[0-9A-Z]{5}$
        • failure_reasonstring | nullrequired
          pattern ^[a-z][a-z0-9_]*$
    • findingobject | nullrequired
      • finding_idUuid7required
      • packstringrequired
        min length 1
      • typestringrequired
        min length 1
      • statusenum (3)required
        opendismissedresolved
      • created_atIsoDatetimerequired
    • runobject | nullrequired
      • run_idUuid7required
      • triggerstringrequired
        min length 1
      • actorstringrequired
        min length 1
      • issued_atIsoDatetimerequired
    • snapshotsarray of objectrequired
      • snapshot_idUuid7required
      • template_idstringrequired
        pattern ^[a-z][a-z0-9_]*(\.[a-z][a-z0-9_]*)*$
      • template_versionintegerrequired
        ≥ 1≤ 9007199254740991
      • refsarray of Refrequired
    • unverified_refsarray of stringrequired

Errors

Every error body carries a code, a message and, where it applies, a reason_code. All error and reason codes.

get

/v1/specialists

The team: the eight specialists and the Manager, with what each owns

operationId listSpecialists

Auth

Member token+Tenant header

Response 200

V1SpecialistsResponsecontract v1.specialists.response
  • itemsarray of objectrequired
    • idstringrequired
      pattern ^[a-z][a-z0-9_]*(\.[a-z][a-z0-9_]*)*$
    • kindenum (3)required
      specialistmanagerservice
    • name_keystringrequired
      min length 1
    • desk_keystring | nullrequired
      min length 1
    • aliasesarray of stringrequired
    • detectorsarray of stringrequired
    • templatesarray of stringrequired
    • draftablesarray of stringrequired
    • workflow_draftablesarray of stringrequired

Errors

Every error body carries a code, a message and, where it applies, a reason_code. All error and reason codes.

get

/v1/specialists/{id}

A specialist's desk: findings, drafts, track record (snapshot refs), threads

operationId getSpecialistDesk

Auth

Member token+Tenant header

Parameters

  • idin pathstringrequired

Response 200

V1SpecialistDeskcontract v1.specialist.desk
  • specialistobjectrequired
    • idstringrequired
      pattern ^[a-z][a-z0-9_]*(\.[a-z][a-z0-9_]*)*$
    • kindenum (3)required
      specialistmanagerservice
    • name_keystringrequired
      min length 1
    • desk_keystring | nullrequired
      min length 1
    • aliasesarray of stringrequired
    • detectorsarray of stringrequired
    • templatesarray of stringrequired
    • draftablesarray of stringrequired
    • workflow_draftablesarray of stringrequired
  • applicablebooleanrequired
  • findingsarray of V1Findingrequired
  • draftsarray of V1Draftrequired
  • track_recordobject | nullrequired
    • snapshot_idUuid7required
    • cellsobject | nullrequired
      • proposedstringrequired
        pattern ^⟨snap:[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}·(?:0|[1-9][0-9]*)·[a-z_][a-z0-9_]*⟩$
      • approvedstringrequired
        pattern ^⟨snap:[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}·(?:0|[1-9][0-9]*)·[a-z_][a-z0-9_]*⟩$
      • editedstringrequired
        pattern ^⟨snap:[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}·(?:0|[1-9][0-9]*)·[a-z_][a-z0-9_]*⟩$
      • rejectedstringrequired
        pattern ^⟨snap:[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}·(?:0|[1-9][0-9]*)·[a-z_][a-z0-9_]*⟩$
      • stalestringrequired
        pattern ^⟨snap:[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}·(?:0|[1-9][0-9]*)·[a-z_][a-z0-9_]*⟩$
      • abstainedstringrequired
        pattern ^⟨snap:[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}·(?:0|[1-9][0-9]*)·[a-z_][a-z0-9_]*⟩$
  • threadsarray of objectrequired

Errors

Every error body carries a code, a message and, where it applies, a reason_code. All error and reason codes.

post

/v1/ask

Ask the Manager, or a specialist by a leading @Name; appends a turn to a thread (new or given)

operationId ask

Auth

Member token+Tenant header

Request body

V1AskRequestcontract v1.ask.request
  • questionstringrequired
    min length 1max length 2000
  • thread_idUuid7optional
  • deepbooleanoptional

Response 200

V1AskResponsecontract v1.ask.response
  • thread_idUuid7required
  • turnobjectrequired
    • turn_idUuid7required
    • turn_nointegerrequired
      ≥ 1≤ 9007199254740991
    • addressed_toenum (8) | nullrequired
      cataloguekitcheninventory_purchasingfinancepeoplecustomerscompliancemarket
    • taintedbooleanrequired
  • answerobjectrequired
    • answer_idUuid7required
    • envelopeAnswerEnveloperequired
    • resolved_refsarray of objectrequired
      • refRefrequired
      • valueone of 3 | nullrequired
    • signatureobjectrequired
      • keyenum (2)required
        answer.signature.via_manageranswer.signature.manager
      • specialistone of 2required
      • name_keystringrequired
        min length 1

Errors

Every error body carries a code, a message and, where it applies, a reason_code. All error and reason codes.

get

/v1/threads

Threads in the caller's outlet scope; ?specialist= those addressed to that desk

operationId listThreads

Auth

Member token+Tenant header

Parameters

  • specialistin queryenum (9)optional
    cataloguekitcheninventory_purchasingfinancepeoplecustomerscompliancemarketmanager
  • cursorin querystringoptional
  • limitin queryintegeroptional

Response 200

V1ThreadsResponsecontract v1.threads.response
  • itemsarray of objectrequired
    • thread_idUuid7required
    • specialistenum (8) | nullrequired
      cataloguekitcheninventory_purchasingfinancepeoplecustomerscompliancemarket
    • created_byUuid7required
    • outlet_scopeone of 2required
    • created_atIsoDatetimerequired
    • updated_atIsoDatetimerequired
  • next_cursorstring | nullrequired

Errors

Every error body carries a code, a message and, where it applies, a reason_code. All error and reason codes.

get

/v1/threads/{id}

A thread with its turns, answers and rolling cited summary

operationId getThread

Auth

Member token+Tenant header

Parameters

  • idin pathstringrequired
    pattern ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$

Response 200

V1Threadcontract v1.thread
  • thread_idUuid7required
  • specialistenum (8) | nullrequired
    cataloguekitcheninventory_purchasingfinancepeoplecustomerscompliancemarket
  • created_byUuid7required
  • outlet_scopeone of 2required
  • created_atIsoDatetimerequired
  • updated_atIsoDatetimerequired
  • summaryarray of objectrequired
    max items 8
    • turn_nointegerrequired
      ≥ 1≤ 9007199254740991
    • answer_idUuid7required
    • segmentintegerrequired
      ≥ 0≤ 9007199254740991
    • refsarray of RefIdrequired
      min items 1
  • turnsarray of objectrequired
    • turn_idUuid7required
    • turn_nointegerrequired
      ≥ 1≤ 9007199254740991
    • member_idUuid7required
    • addressed_toenum (8) | nullrequired
      cataloguekitcheninventory_purchasingfinancepeoplecustomerscompliancemarket
    • taintedbooleanrequired
    • questionstring | nullrequired
    • answerobject | nullrequired
      • answer_idUuid7required
      • envelopeAnswerEnveloperequired
      • resolved_refsarray of objectrequired
        Show fields of resolved_refs
        • refRefrequired
        • valueone of 3 | nullrequired
      • signatureobjectrequired
        Show fields of signature
        • keyenum (2)required
          answer.signature.via_manageranswer.signature.manager
        • specialistone of 2required
        • name_keystringrequired
          min length 1
    • created_atIsoDatetimerequired

Errors

Every error body carries a code, a message and, where it applies, a reason_code. All error and reason codes.