Modulify

Read a collection schema

get_collection_schema

Reads the columns of one table in a site database, with their types, nullability, primary key and CMS field type.

POST /v1/get_collection_schemaScopedata:readRead only

Each column carries its uiType, the CMS field type registered for it, such as image, richtext or code, or null. A language column with no type of its own reports its base field's type when that type is color, richtext, code, file, image, date or datetime. A code value is raw HTML, CSS or JavaScript that the site runs exactly as written.

A foreign key column names the table and column it points at in references, and on the older database a column of an enum type names that type in udtName, which is what list_enum_options takes. Read this before writing a row with create_row or update_row, so the right columns are supplied. See Column types.

Request

Call it with a POST to https://api.modulify.ai/v1/get_collection_schema, sending the inputs below as a JSON object. The token needs the data:read scope.

It only reads and changes nothing, so retrying it is safe.

curl -X POST https://api.modulify.ai/v1/get_collection_schema \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"projectId":"PROJECT_ID","name":"NAME"}'

Over MCP, the same method is the get_collection_schema tool.

Inputs

Input Type Required Description
projectId string Yes The site id.
schema string No The schema the collection lives in, exactly as list_collections reports it. Leave it out to use the site database's own default, which is right unless list_collections showed something else. A site on the newer database always uses its default.
name string Yes The table name, from list_collections.

Response

Every call answers with the JSON envelope of success, message, data, code and version. data holds the result described above, and on a method that returns a total, count carries it. The response headers carry the call's X-Request-Id and what is left of your per-minute budget in X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset. Errors explains every status code a call can answer with.