Ctrl AI

Units

Create, read, update, delete, and verify reasoning units.

Units are the core building blocks of Ctrl AI — typed, composable reasoning elements that domain experts create and verify.

List Units

GET /api/v1/units

Query Parameters

ParameterTypeDescription
statusstringFilter by status: candidate, in_review, verified, partial_verified
unitTypestringFilter by type: program, framework, pattern, argument, protocol
domainIdstringFilter by domain
jurisdictionstringFilter by jurisdiction
limitnumberItems per page (default: 20, max: 200)
offsetnumberPagination offset

Example

curl https://app.ctrlai.com/api/v1/units?status=verified&unitType=program \
  -H "Authorization: Bearer ctrlai_pk_..."

Get Unit

GET /api/v1/units/{id}

Create Unit

POST /api/v1/units

Request Body

FieldTypeRequiredDescription
namestringYesUnit name
unitTypestringYesprogram, framework, pattern, argument, protocol
domainIdstringYesDomain ID
descriptionstringNoBrief description
givenstringNoPrerequisites (GIVEN clause)
whenstringNoTrigger conditions (WHEN clause)
thenstringNoWhat the unit produces (THEN clause)
inputSchemaobjectNoTyped input variables
outputSchemaobjectNoTyped output variables
jurisdictionstringNoJurisdiction scope

Update Unit

PATCH /api/v1/units/{id}

Requires author or admin role. All fields from Create are accepted (partial update).

Delete Unit

DELETE /api/v1/units/{id}

Requires admin role.

Verify Unit

Submit a verification review on a unit:

POST /api/v1/units/{id}/verify

Request Body

FieldTypeRequiredDescription
actionstringYesapprove, request_changes
elementReviewsarrayNoPer-element reviews
commentstringNoOverall review comment

Element Review Actions

For Programs (per-step):

  • approve — step is correct
  • correct_values — fix a computation or threshold
  • add_branch — add a missing conditional path
  • add_exception — add an override

For Structured Units (per-element):

  • approve_element — element is correct
  • suggest_edit — propose alternative text
  • reweight_element — change factor weight
  • add_element / remove_element — structural changes

Assign Reviewers

POST /api/v1/units/{id}/assign
FieldTypeRequiredDescription
reviewerIdsstring[]YesUser IDs to assign as reviewers

Requires admin role.

Unit Edges

Manage composition edges between units:

GET /api/v1/units/{id}/edges
POST /api/v1/units/{id}/edges

AI-Assisted Edit

POST /api/v1/units/{id}/ai-edit
FieldTypeRequiredDescription
instructionstringYesNatural language edit instruction

Generate from Coverage Gaps

Auto-generate candidate units for the most-requested missing outputs:

POST /api/v1/units/generate-from-gaps

Get by Slugs

POST /api/v1/units/by-slugs
FieldTypeRequiredDescription
slugsstring[]YesArray of unit slugs

On this page