Menú

Referencia de la API · Proyectos

Ítems

projects · items · 6 operaciones

GET/v1/projects/{project_id}/items

List the items of a project

projects.items.list

LecturaIdempotenteDesde 2026-11-01

Lists the items of a project (its rows: a site, a campaign, a deliverable) in the order of the project's sheet, paginated by cursor. Each item comes with its status resolved against the project's item statuses (status: name and category; null when it has none) and the names of its people (person_names: uid → name). Archived items are left out unless include_archived is true; status_id ("" = without status) and assignee_id filter the page read, so a page can bring fewer than limit while has_more is true: follow next_cursor until has_more is false. Not found if the project is private to other people. Requires view access to Projects.

Alcance
projects:read
Permiso
Ver el módulo
Tool del MCP
projects_items_listEn la superficie completa; en la compacta, mb_execute_operation con id: "projects.items.list".

Costo declarado: hasta 204 lecturas y 0 escrituras por llamada (cuentan en el cupo diario).

Parámetros

project_idstringrutarequerido

The project's id (from projects.projects.list, or the project_id that projects.projects.create returns).

limitintegerqueryopcional

How many items this page brings at most (see the maximum and the default in the schema).

Por defecto: 50

cursorstringqueryopcional

The next_cursor of the previous page, exactly as it came (only for the same list and filters); without it, the first page.

status_idstring | ""queryopcional

One of the project's item statuses (projects.projects.get item_statuses), or "" for no status.

assignee_idstringqueryopcional

Only the items assigned to this person: the uid of a member of the organization.

include_archivedbooleanqueryopcional

Also the archived items (default false).

Por defecto: false

Respuesta

dataarray<object>
has_moreboolean
next_cursorstring

Errores

Ejemplo

curl "https://api.mb-suite.com/v1/projects/{project_id}/items" \
  -H "Authorization: Bearer $MB_API_KEY"

Probar con tu API key de prueba

Con una API key de prueba el pedido va siempre a tu organización de práctica: datos de ejemplo que puedes reiniciar.

curl "https://api.mb-suite.com/v1/projects/{project_id}/items" \
  -H "Authorization: Bearer $MB_TEST_KEY"
GET/v1/projects/{project_id}/items/{item_id}

Get one item of a project

projects.items.get

LecturaIdempotenteDesde 2026-11-01

Returns one item of a project: title, status (resolved: name and category), assignees, dates, description, custom field values (keyed by the project's item field slugs) and the counters of its linked tasks. Not found if the item does not exist in that project, or if the project is private to other people (project_not_found). Requires view access to Projects.

Alcance
projects:read
Permiso
Ver el módulo
Tool del MCP
projects_items_getEn la superficie completa; en la compacta, mb_execute_operation con id: "projects.items.get".

Costo declarado: hasta 3 lecturas y 0 escrituras por llamada (cuentan en el cupo diario).

Parámetros

project_idstringrutarequerido

The project's id (from projects.projects.list, or the project_id that projects.projects.create returns).

item_idstringrutarequerido

The item's id (from projects.items.list).

Respuesta

idstring
project_idstring
titlestring
status_idstring
statusobject | null
is_archivedboolean
created_atnumber
updated_atnumber
assignee_idsarray<string>
custom_fieldsobject
ordernumber
start_datenumber | null
due_datenumber | null
descriptionstring | null
task_countnumber
done_task_countnumber
created_by_idstring
person_namesobject

The names of the people it names by uid (assignees, creator): uid → name.

Errores

Ejemplo

curl "https://api.mb-suite.com/v1/projects/{project_id}/items/{item_id}" \
  -H "Authorization: Bearer $MB_API_KEY"

Probar con tu API key de prueba

Con una API key de prueba el pedido va siempre a tu organización de práctica: datos de ejemplo que puedes reiniciar.

curl "https://api.mb-suite.com/v1/projects/{project_id}/items/{item_id}" \
  -H "Authorization: Bearer $MB_TEST_KEY"
POST/v1/projects/{project_id}/items

Add an item to a project

projects.items.create

EscrituraDesde 2026-11-01

Adds an item at the end of a project's sheet. Only title is required; status_id defaults to the project's initial item status ("" = without status). assignee_ids must be members of the organization. custom_fields are keyed by the project's item field slugs (projects.projects.get → item_fields) and validated by type: text, numbers, timestamps in milliseconds, { from, to } for date ranges, option values for selects, member uids for people fields; files cannot be set through the API. Updates the project's item count. Returns item_id and the item. Not found if the project is private to other people. Requires full access to Projects.

Alcance
projects:write
Permiso
Editar en el módulo
Tool del MCP
projects_items_createEn la superficie completa; en la compacta, mb_execute_operation con id: "projects.items.create".
Eventos que puede emitir
projects.item.created

Costo declarado: hasta 4 lecturas y 2 escrituras por llamada (cuentan en el cupo diario).

Parámetros

project_idstringrutarequerido

The project's id (from projects.projects.list, or the project_id that projects.projects.create returns).

titlestringcuerporequerido

The item's title (up to 500 characters).

status_idstring | ""cuerpoopcional

One of the project's item statuses (projects.projects.get item_statuses), or "" for no status.

assignee_idsarray<string>cuerpoopcional

Who works on it: uids of members of the organization (members.members.list).

start_dateintegercuerpoopcional

Start date, epoch ms.

due_dateintegercuerpoopcional

Due date, epoch ms.

descriptionstringcuerpoopcional

A description (plain text).

custom_fieldsobjectcuerpoopcional

Values of the project's item fields, keyed by each field's slug (projects.projects.get item_fields).

Respuesta

item_idstring
itemobject

Errores

Ejemplo

curl -X POST "https://api.mb-suite.com/v1/projects/{project_id}/items" \
  -H "Authorization: Bearer $MB_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "title": "TITLE"
}'

Probar con tu API key de prueba

Con una API key de prueba el pedido va siempre a tu organización de práctica: datos de ejemplo que puedes reiniciar.

curl -X POST "https://api.mb-suite.com/v1/projects/{project_id}/items" \
  -H "Authorization: Bearer $MB_TEST_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "title": "TITLE"
}'
PATCH/v1/projects/{project_id}/items/{item_id}

Update an item of a project

projects.items.update

EscrituraDesde 2026-11-01

Updates one or more fields of an item: title, status (one of the project's item statuses, or "" for none), assignees, dates (null clears), description, custom field values (merged: send only the slugs to change, null clears one) and is_archived (an archived item keeps its status and goes back to its column when unarchived). Returns the updated item. Not found if the item or its project does not exist, or the project is private to other people. Requires full access to Projects.

Alcance
projects:write
Permiso
Editar en el módulo
Tool del MCP
projects_items_updateEn la superficie completa; en la compacta, mb_execute_operation con id: "projects.items.update".
Eventos que puede emitir
projects.item.updated

Costo declarado: hasta 3 lecturas y 1 escrituras por llamada (cuentan en el cupo diario).

Parámetros

project_idstringrutarequerido

The project's id (from projects.projects.list, or the project_id that projects.projects.create returns).

item_idstringrutarequerido

The item's id (from projects.items.list).

updatesobjectcuerporequerido

The fields to change (at least one).

Respuesta

itemobject

Errores

Ejemplo

curl -X PATCH "https://api.mb-suite.com/v1/projects/{project_id}/items/{item_id}" \
  -H "Authorization: Bearer $MB_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "updates": {}
}'

Probar con tu API key de prueba

Con una API key de prueba el pedido va siempre a tu organización de práctica: datos de ejemplo que puedes reiniciar.

curl -X PATCH "https://api.mb-suite.com/v1/projects/{project_id}/items/{item_id}" \
  -H "Authorization: Bearer $MB_TEST_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "updates": {}
}'
DELETE/v1/projects/{project_id}/items/{item_id}

Delete an item of a project

projects.items.delete

IrreversibleDesde 2026-11-01

Deletes an item of a project: it stays 30 days in the trash, where an owner or admin can restore it to its project (platform.trash.restore); to hide one without deleting it, archive it with projects.items.update. Its linked tasks are not deleted: they keep their link and show the item again if it is restored. Updates the project's item count. Outside the screen it needs a dry run and a confirm_token, except a REST DELETE with a key allowed to delete. Not found if the item or its project does not exist, or the project is private to other people. Requires full access to Projects and a credential that allows deletion.

Con una API key, este DELETE se ejecuta directo: el registro queda 30 días en la papelera y la respuesta trae su trash_item_id. Con un token OAuth, y por el MCP, pide dry_run → confirm_token.

Alcance
projects:write y «Permitir eliminar» (projects:delete en OAuth)
Permiso
Editar en el módulo
Tool del MCP
projects_items_deleteEn la superficie completa; en la compacta, mb_execute_operation con id: "projects.items.delete".

Costo declarado: hasta 5 lecturas y 2 escrituras por llamada (cuentan en el cupo diario).

Parámetros

project_idstringrutarequerido

The project's id (from projects.projects.list, or the project_id that projects.projects.create returns).

item_idstringrutarequerido

The item's id (from projects.items.list).

Respuesta

oktrue
trash_item_idstring

The trash item this deletion left: the item_id of platform.trash.restore (POST /trash/{item_id}/restore). Missing if nothing went to the trash.

trash_item_idsarray<string>

Only when the deletion left more than one copy: all of them, the first being trash_item_id.

trash_expires_atnumber

When the copy leaves the trash for good (epoch ms): 30 days after the deletion.

Errores

Ejemplo

curl -X DELETE "https://api.mb-suite.com/v1/projects/{project_id}/items/{item_id}" \
  -H "Authorization: Bearer $MB_API_KEY"

Probar con tu API key de prueba

Con una API key de prueba el pedido va siempre a tu organización de práctica: datos de ejemplo que puedes reiniciar.

curl -X DELETE "https://api.mb-suite.com/v1/projects/{project_id}/items/{item_id}" \
  -H "Authorization: Bearer $MB_TEST_KEY"
POST/v1/projects/{project_id}/items/reorder

Set the order of a project's items

projects.items.reorder

EscrituraIdempotenteDesde 2026-11-01

Sets the manual order of a project's items (the order of its sheet and board): each id in item_ids (up to 500, no repeats) takes its position. Every id must be an item of that project, otherwise nothing is reordered (project_item_not_found). Items not listed keep their current position value, so send all of them for a clean order. It does not create, edit or delete items. Not found if the project is private to other people. Requires full access to Projects.

Alcance
projects:write
Permiso
Editar en el módulo
Tool del MCP
projects_items_reorderEn la superficie completa; en la compacta, mb_execute_operation con id: "projects.items.reorder".

Costo declarado: hasta 502 lecturas y 500 escrituras por llamada (cuentan en el cupo diario).

Parámetros

project_idstringrutarequerido

The project's id (from projects.projects.list, or the project_id that projects.projects.create returns).

item_idsarray<string>cuerporequerido

The project's item ids in their new order (from projects.items.list); the ones left out keep their position.

Respuesta

oktrue

Errores

Ejemplo

curl -X POST "https://api.mb-suite.com/v1/projects/{project_id}/items/reorder" \
  -H "Authorization: Bearer $MB_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "item_ids": [
    "ITEM_ID"
  ]
}'

Probar con tu API key de prueba

Con una API key de prueba el pedido va siempre a tu organización de práctica: datos de ejemplo que puedes reiniciar.

curl -X POST "https://api.mb-suite.com/v1/projects/{project_id}/items/reorder" \
  -H "Authorization: Bearer $MB_TEST_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "item_ids": [
    "ITEM_ID"
  ]
}'