Skip to content

Thogits

Thogits are the core entities in the system — knowledge entries that can be tagged with structured schemas. Each thogit has a name, an optional rich-text description, and zero or more tags with typed field values.

Create a new thogit, optionally applying tags with field values in the same request.

Auth required: Yes

Request body:

FieldTypeRequiredDescription
namestringYesThe thogit name
descriptionstringNoRich-text description (HTML)
tagsarrayNoTags to apply on creation
tags[].tag_refobjectYesEither {"New": {"name": "...", "fields": {...}}} or {"Existing": "TAG_ULID"}
tags[].field_valuesobjectNoField values matching the tag schema
Terminal window
curl -X POST https://app.thogits.com/api/thogits \
-H "Content-Type: application/json" \
-b cookies.txt -c cookies.txt \
-d '{
"name": "Learn Rust ownership",
"description": "<p>Deep dive into the borrow checker</p>",
"tags": [
{
"tag_ref": {"Existing": "01HQ3K5P7YGXJV8N2M4W6R0T1S"},
"field_values": {"priority": "high", "due_date": "2025-06-01"}
},
{
"tag_ref": {"New": {"name": "Language", "fields": {"name": "String"}}},
"field_values": {"name": "Rust"}
}
]
}'

Response (200):

{
"thogit_id": "01HQ4M8R3ZBNWY6K9J2X5V7Q0A"
}

Retrieve a single thogit by its ULID.

Auth required: Yes

Terminal window
curl https://app.thogits.com/api/thogits/01HQ4M8R3ZBNWY6K9J2X5V7Q0A \
-b cookies.txt -c cookies.txt

Response (200):

{
"id": "01HQ4M8R3ZBNWY6K9J2X5V7Q0A",
"name": "Learn Rust ownership",
"description": "<p>Deep dive into the borrow checker</p>",
"data": {
"01HQ3K5P7YGXJV8N2M4W6R0T1S": {
"field_values": {
"priority": "high",
"due_date": "2025-06-01"
},
"schema_version": 1
}
}
}

The data object is keyed by tag ID. Each entry includes the field_values and the schema_version at which those values were stored.

Errors:

StatusCause
404Thogit not found or soft-deleted

Update a thogit’s name and/or description. To update tag field values, use the thogit tags endpoints.

Auth required: Yes

Request body:

FieldTypeRequiredDescription
namestringNoNew name
descriptionstringNoNew description (HTML)
Terminal window
curl -X PUT https://app.thogits.com/api/thogits/01HQ4M8R3ZBNWY6K9J2X5V7Q0A \
-H "Content-Type: application/json" \
-b cookies.txt -c cookies.txt \
-d '{"name": "Master Rust ownership"}'

Response (200): The updated thogit object.


Soft-delete a thogit. The thogit will no longer appear in search results.

Auth required: Yes

Terminal window
curl -X DELETE https://app.thogits.com/api/thogits/01HQ4M8R3ZBNWY6K9J2X5V7Q0A \
-b cookies.txt -c cookies.txt

Response (200): The deleted thogit object.

Errors:

StatusCause
404Thogit not found

Search for thogits using a filter. Passing null or omitting the filter returns all thogits.

Auth required: Yes

Request body:

FieldTypeRequiredDescription
filterThogitFilter | nullNoFilter criteria

Filters support logical combinators (and, or, not) and field-level conditions. See the Concepts: Filtering guide for the full filter syntax.

Terminal window
# Get all thogits
curl -X POST https://app.thogits.com/api/thogits/search \
-H "Content-Type: application/json" \
-b cookies.txt -c cookies.txt \
-d '{"filter": null}'
# Search with a text filter
curl -X POST https://app.thogits.com/api/thogits/search \
-H "Content-Type: application/json" \
-b cookies.txt -c cookies.txt \
-d '{"filter": {"search": "rust ownership"}}'

Response (200):

[
{
"id": "01HQ4M8R3ZBNWY6K9J2X5V7Q0A",
"name": "Learn Rust ownership",
"description": "<p>Deep dive into the borrow checker</p>",
"data": { ... }
}
]

Create multiple thogits in a single request.

Auth required: Yes

Request body:

FieldTypeRequiredDescription
thogitsarrayYesArray of create-thogit objects (same shape as POST /thogits body)
Terminal window
curl -X POST https://app.thogits.com/api/thogits/bulk \
-H "Content-Type: application/json" \
-b cookies.txt -c cookies.txt \
-d '{
"thogits": [
"Item one",
{"name": "Item two", "tags": [{"tag_ref": {"Existing": "01HQ3K5P7YGXJV8N2M4W6R0T1S"}, "field_values": {}}]}
]
}'

Response (200):

[
{"thogit_id": "01HQ5A2B3CDEFGHIJK4LMNOP5Q"},
{"thogit_id": "01HQ5A2B4RSTUVWXYZ6ABCDE7F"}
]

Delete all thogits matching a filter. Supports dry-run mode to preview the impact before committing.

Auth required: Yes

Request body:

FieldTypeRequiredDescription
filterThogitFilterYesFilter selecting thogits to delete
dry_runbooleanNoIf true, report matches without deleting (default: false)
Terminal window
# Preview what would be deleted
curl -X POST https://app.thogits.com/api/thogits/bulk-delete \
-H "Content-Type: application/json" \
-b cookies.txt -c cookies.txt \
-d '{"filter": {"search": "obsolete"}, "dry_run": true}'

Response (200):

{
"matched_count": 3,
"affected_count": 3,
"affected_ids": [
"01HQ5A2B3CDEFGHIJK4LMNOP5Q",
"01HQ5A2B4RSTUVWXYZ6ABCDE7F",
"01HQ5A2B5GHIJKLMNO8PQRST9U"
],
"dry_run": true
}