New: use Extruct search and tables from Claude, Codex, and more with the remote MCP server.
New: use Extruct search and tables from Claude, Codex, and more with the remote MCP server.
List root tables visible to the authenticated user.
Supports filtering by table kind, ownership scope, free-text search, and tags. Results can be sorted by creation time, name, or row count.
curl --request GET \
--url https://api.extruct.ai/v1/tables \
--header 'Authorization: Bearer <token>'[
{
"id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"name": "<string>",
"description": "<string>",
"tags": [
"<string>"
],
"kind": "generic",
"settings": {
"exclude_from_search": false
},
"scope": "personal",
"owner": {
"id": "<string>",
"email": "<string>"
},
"num_rows": 123
}
]Documentation Index
Fetch the complete documentation index at: https://docs.extruct.ai/llms.txt
Use this file to discover all available pages before exploring further.
export EXTRUCT_API_TOKEN="YOUR_API_TOKEN"
curl --get "https://api.extruct.ai/v1/tables" \
-H "Authorization: Bearer ${EXTRUCT_API_TOKEN}" \
--data-urlencode "scope=organization" \
--data-urlencode "search=acme" \
--data-urlencode "tags=portfolio" \
--data-urlencode "tags=priority" \
--data-urlencode "sort=-num_rows" \
--data-urlencode "offset=0" \
--data-urlencode "limit=20"
kind (optional): filter by table kind (generic, company, people).scope (optional): filter by ownership.
personal returns the caller’s own tables.
organization returns all tables visible within the caller’s organization, including the caller’s own tables.search (optional): case-insensitive search across table names and descriptions.tags (optional): repeat this parameter to match tables with any of the selected tags.sort (optional): one of -created_at, created_at, name, -name, num_rows, -num_rows.offset (optional): number of matching tables to skip before returning results.limit (optional): maximum number of tables to return. Defaults to 50; maximum is 100.id, created_at, updated_at, name, description, tags, kind, settings, scope, owner, and num_rows.
The response also includes pagination headers:
x-extruct-pagination-totalx-extruct-pagination-total-pagesx-extruct-pagination-limitx-extruct-pagination-offsetx-extruct-pagination-page401 UnauthorizedAuthorization: Bearer ${EXTRUCT_API_TOKEN}.
400 Bad Requestlimit values above 100.
422 Unprocessable Entitykind, scope, or sort.
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Filter by table kind
generic, company, people Filter by ownership: personal returns the caller's own tables; organization returns all tables visible within the caller's organization, including the caller's own tables.
personal, organization Case-insensitive search across table names and descriptions.
Repeat this parameter to match tables with any of the provided tags.
Sort order for the returned tables.
-created_at, created_at, name, -name, num_rows, -num_rows Number of matching tables to skip.
x >= 0Maximum number of tables to return. Defaults to 50. Maximum 100.
1 <= x <= 100Successful Response
generic, company, people Show child attributes
Ownership scope for filtering resources
personal, organization Show child attributes
curl --request GET \
--url https://api.extruct.ai/v1/tables \
--header 'Authorization: Bearer <token>'[
{
"id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"name": "<string>",
"description": "<string>",
"tags": [
"<string>"
],
"kind": "generic",
"settings": {
"exclude_from_search": false
},
"scope": "personal",
"owner": {
"id": "<string>",
"email": "<string>"
},
"num_rows": 123
}
]