Create datasets
Create a dataset when an agent or application needs a stable row store it can come back to later.
Before you create one
Decide four things:
- the dataset name
- the headers
- the index column
- the instructions future agents should follow
If there is no reliable business key, omit index_column and let Rowset create
rowset_id. For the tradeoff, read Rowset rowset_id vs business
keys before production agents start updating
rows.
If you are choosing between a Rowset-hosted agent dataset and a spreadsheet-style
database workspace, review NocoDB alternatives for AI-agent-managed
datasets first.
Create through MCP
Use MCP when a trusted agent is doing the setup:
create_dataset
Pass description, instructions, metadata, headers, rows,
column_types, and optionally project_key or section_key.
After creation, call:
get_dataset
That confirms the dataset key, headers, index column, schema, row count, and context the agent should keep in memory before mutating rows.
Create through REST
POST https://rowset.lvtd.dev/api/datasets
Authorization: Bearer YOUR_ROWSET_API_KEY
Content-Type: application/json
{
"name": "Agent tasks",
"description": "Tasks delegated to trusted agents",
"instructions": "Only move status to done when acceptance notes are present.",
"metadata": {
"status_values": ["todo", "doing", "blocked", "done"]
},
"headers": ["task_id", "status", "owner", "next_action", "notes"],
"index_column": "task_id",
"column_types": {
"task_id": "text",
"status": {
"type": "choice",
"choices": ["todo", "doing", "blocked", "done"]
},
"owner": "text",
"next_action": "text",
"notes": "text"
},
"rows": [
{
"task_id": "TASK-001",
"status": "todo",
"owner": "Rasul",
"next_action": "Draft the first row",
"notes": ""
}
]
}
Initial creation accepts up to 1,000 rows. Add larger batches after creation with row endpoints or MCP row tools.
Put it in a project
If the dataset belongs to a workflow group, include project_key. If it belongs
inside a project section, include both project_key and section_key.
{
"project_key": "{project_key}",
"section_key": "{section_key}"
}
Projects and sections help with discovery. They do not change who can access the dataset.
Good first datasets
- Personal CRM:
people, indexed byemailorperson_id - Agent task board:
agent_tasks, indexed bytask_id - Feedback triage:
feedback, indexed byfeedback_id - Content pipeline:
content_queue, indexed byslug - Product catalog:
products, indexed bysku
See Use cases for starter shapes.