collections
Create new collection
Create a new collection in a project. Accepts BearerToken (JWT) or ApiKeyAuth (X-API-Key).
POST
/api/schemas/projects/{projectId}/collectionsAuthentication
Requires JWT
Note
Include your JWT in the
Authorization: Bearer YOUR_TOKEN header (user-facing apps, RBAC). View authentication guide →Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | Project ID. |
Request Body
Collection name, optional slug, fields, permissions, and settings.
json
{
"name": "Johnathan Torp I",
"slug": "measly-violin-pc25",
"fields": [
{
"name": "Luis Kilback",
"type": "enum",
"required": false,
"unique": true,
"default": "protocol program",
"validation": {},
"ui": {}
}
],
"permissions": [
{
"role": "firewall reboot",
"actions": [
"create"
],
"fields": [
"card back up"
],
"condition": {}
}
],
"settings": {}
}{
"name": "Johnathan Torp I",
"slug": "measly-violin-pc25",
"fields": [
{
"name": "Luis Kilback",
"type": "enum",
"required": false,
"unique": true,
"default": "protocol program",
"validation": {},
"ui": {}
}
],
"permissions": [
{
"role": "firewall reboot",
"actions": [
"create"
],
"fields": [
"card back up"
],
"condition": {}
}
],
"settings": {}
}SDK setup
Create a client and set credentials (JWT and/or API key) before calling the API. Match the authentication type shown above.
import { MudbaseClient } from "mudbase";
const client = new MudbaseClient();
client.setJWT("eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c3JfbW9yZ2FuX2RlIiwiZW1haWwiOiJtb3JnYW4uY2hlbkBub3J0aHdpbmQuZGV2IiwiZXhwIjoxODI1MTI5NjAwfQ.doc_preview_sig");import { MudbaseClient } from "mudbase";
const client = new MudbaseClient();
client.setJWT("eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c3JfbW9yZ2FuX2RlIiwiZW1haWwiOiJtb3JnYW4uY2hlbkBub3J0aHdpbmQuZGV2IiwiZXhwIjoxODI1MTI5NjAwfQ.doc_preview_sig");Example request
Call this endpoint using the client from SDK setup. Use View HTTP for a raw cURL example.
const result = await client.collections.create({
projectId: "proj_Ym21sZ4AhSOI",
name: "Andy Feil",
fields: "sensor parse",
slug: "livid-executor-ziv4",
permissions: "microchip calculate",
settings: "microchip navigate"
});const result = await client.collections.create({
projectId: "proj_Ym21sZ4AhSOI",
name: "Andy Feil",
fields: "sensor parse",
slug: "livid-executor-ziv4",
permissions: "microchip calculate",
settings: "microchip navigate"
});Try It Live
Test this endpoint with your own credentials. Your requests will be sent to the live API.
Use the auth endpoints to obtain a JWT.
No Request Yet
Send a request to see the full inspector
Responses
201Collection created
json
{
"message": "Collection created successfully",
"collection": {
"_id": "685ada8fd9416ac02f171abf",
"name": "users",
"slug": "users",
"project": "685ad30be129932fbb7a1047",
"fields": [
{
"name": "email",
"type": "email",
"required": true
}
],
"createdAt": "2024-01-15T10:00:00.000Z"
}
}{
"message": "Collection created successfully",
"collection": {
"_id": "685ada8fd9416ac02f171abf",
"name": "users",
"slug": "users",
"project": "685ad30be129932fbb7a1047",
"fields": [
{
"name": "email",
"type": "email",
"required": true
}
],
"createdAt": "2024-01-15T10:00:00.000Z"
}
}400Bad request or validation error.
401Authentication required or invalid token.
403Access denied or insufficient permissions.
Errors
| Code | Meaning |
|---|---|
400 | Bad request or validation error. |
401 | Authentication required or invalid token. |
403 | Access denied or insufficient permissions. |