Menu

Referência da API · Projetos

Tipos de projeto

projects · types · 5 operações

GET/v1/projects/types

List project types

projects.types.list

LeituraIdempotenteDesde 2026-11-01

Lists the organization's project types in their display order. A type configures the projects created from it: its statuses (each with a name and a category: open, in_progress, paused, done or cancelled; a project's status is one of them), its default phases, its custom field definitions (fields: name, slug, type, options) and its initial status. Archived types are left out unless include_archived is true. The list is empty if the organization never opened Projects: projects.projects.create without type_id creates the two built-in types. Requires view access to Projects.

Escopo
projects:read
Permissão
Ver o módulo
Tool do MCP
projects_types_listNa superfície completa; na compacta, mb_execute_operation com id: "projects.types.list".

Custo declarado: até 701 leituras e 0 escritas por chamada (contam na cota diária).

Parâmetros

limitintegerqueryopcional

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

Padrão: 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.

include_archivedbooleanqueryopcional

Also the archived types (default false).

Padrão: false

Resposta

dataarray<object>
has_moreboolean
next_cursorstring

Erros

Exemplo

curl "https://api.mb-suite.com/v1/projects/types" \
  -H "Authorization: Bearer $MB_API_KEY"

Testar com a sua API key de teste

Com uma API key de teste o pedido vai sempre para a sua organização de prática: dados de exemplo que você pode reiniciar.

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

Get one project type

projects.types.get

LeituraIdempotenteDesde 2026-11-01

Returns one project type: name, description, color, icon, statuses (id, name, category, color), default phases, custom field definitions (fields: the slugs that the custom_fields of its projects use, with their type and options), initial status, whether it is the default type and whether it is archived. Not found if the id does not exist in this organization. Requires view access to Projects.

Escopo
projects:read
Permissão
Ver o módulo
Tool do MCP
projects_types_getNa superfície completa; na compacta, mb_execute_operation com id: "projects.types.get".

Custo declarado: até 2 leituras e 0 escritas por chamada (contam na cota diária).

Parâmetros

type_idstringrotaobrigatório

The type's id (from projects.types.list).

Resposta

idstring
namestring
statusesarray<object>
fieldsarray<object>
descriptionstring | null
colorstring
iconstring
phasesarray<object>
default_status_idstring
is_defaultboolean
is_archivedboolean
ordernumber
created_by_idstring

Who created it (a user id).

created_by_namestring | null

Display name of created_by_id (list and get; null if it is not a person of the organization).

created_atnumber
updated_atnumber

Erros

Exemplo

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

Testar com a sua API key de teste

Com uma API key de teste o pedido vai sempre para a sua organização de prática: dados de exemplo que você pode reiniciar.

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

Create a project type

projects.types.create

EscritaDesde 2026-11-01

Creates a project type: name, statuses (at least one, each with a name and a category: open, in_progress, paused, done or cancelled; ids are generated unless given), default phases, custom field definitions (fields; a slug comes from the name unless given), color, icon (an SVG path of a Material Design icon) and the initial status (default_status_id: the id of one of the given statuses; default the first). is_default makes it the type preselected for new projects and unmarks the previous one (the first type of an organization always is). Projects created later copy its statuses, phases and fields. Owners and admins only, as on the screen. Returns type_id and the type.

Escopo
projects:write
Permissão
Editar no módulo · Só owner, admin
Tool do MCP
projects_types_createNa superfície completa; na compacta, mb_execute_operation com id: "projects.types.create".

Custo declarado: até 52 leituras e 51 escritas por chamada (contam na cota diária).

Parâmetros

namestringcorpoobrigatório

The type's name (up to 120 characters).

statusesarray<object>corpoobrigatório

Its statuses, in order (1 to 30).

descriptionstringcorpoopcional

What projects of this type are.

colorstringcorpoopcional

A hex color like #3b82f6.

iconstringcorpoopcional

An SVG path of a Material Design icon (24×24), as the screen's type editor saves it.

phasesarray<object>corpoopcional

Its phases, in order: each new project copies them.

fieldsarray<object>corpoopcional

Its custom fields: each new project copies them as its item fields.

default_status_idstringcorpoopcional

The id of one of statuses (give that status an id) that new projects start in; default: the first.

is_defaultbooleancorpoopcional

Make it the organization's default type (the previous default stops being one).

Resposta

type_idstring
typeobject

Erros

Exemplo

curl -X POST "https://api.mb-suite.com/v1/projects/types" \
  -H "Authorization: Bearer $MB_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "name": "NAME",
  "statuses": []
}'

Testar com a sua API key de teste

Com uma API key de teste o pedido vai sempre para a sua organização de prática: dados de exemplo que você pode reiniciar.

curl -X POST "https://api.mb-suite.com/v1/projects/types" \
  -H "Authorization: Bearer $MB_TEST_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "name": "NAME",
  "statuses": []
}'
PATCH/v1/projects/types/{type_id}

Update a project type

projects.types.update

EscritaDesde 2026-11-01

Updates a project type: name, description (null clears), color, icon, statuses, phases, fields, initial status, is_default (only true: it becomes the default and the previous one stops being it) and is_archived (an archived type is not offered for new projects; its projects keep working). statuses, phases and fields replace the whole list: send every entry and keep the id of the ones that stay. Removing a status that projects use moves them to the type's initial status; changing a status between an open and a closed category updates their is_closed (up to 480 projects per call). A field keeps its slug. Projects already created keep their own item statuses and item fields. Owners and admins only. Returns the updated type.

Escopo
projects:write
Permissão
Editar no módulo · Só owner, admin
Tool do MCP
projects_types_updateNa superfície completa; na compacta, mb_execute_operation com id: "projects.types.update".

Custo declarado: até 520 leituras e 500 escritas por chamada (contam na cota diária).

Parâmetros

type_idstringrotaobrigatório

The type's id (from projects.types.list).

updatesobjectcorpoobrigatório

The fields to change (at least one).

Resposta

typeobject

Erros

Exemplo

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

Testar com a sua API key de teste

Com uma API key de teste o pedido vai sempre para a sua organização de prática: dados de exemplo que você pode reiniciar.

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

Delete a project type

projects.types.delete

IrreversívelDesde 2026-11-01

Deletes a project type that no project uses; if some project still has it, it fails with project_type_in_use, which says how many and which (move those projects to another type or delete them first). To stop offering a type without deleting it, archive it. The dry run runs the same check (it fails the same way) and warns about the projects of this type that are in the trash: restored later, they come back with the organization's default type. The type goes to the 30-day trash and comes back as a non-default type when restored. Owners and admins only; outside the screen it requires a dry run and a confirm_token, except a REST DELETE with a key that can delete.

Com uma API key, este DELETE roda direto: o registro fica 30 dias na lixeira e a resposta traz o seu trash_item_id. Com um token OAuth, e pelo MCP, pede dry_run → confirm_token.

Escopo
projects:write e «Permitir exclusões» (projects:delete no OAuth)
Permissão
Editar no módulo · Só owner, admin
Tool do MCP
projects_types_deleteNa superfície completa; na compacta, mb_execute_operation com id: "projects.types.delete".

Custo declarado: até 2 leituras e 2 escritas por chamada (contam na cota diária).

Parâmetros

type_idstringrotaobrigatório

The type's id (from projects.types.list).

Resposta

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.

Erros

Exemplo

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

Testar com a sua API key de teste

Com uma API key de teste o pedido vai sempre para a sua organização de prática: dados de exemplo que você pode reiniciar.

curl -X DELETE "https://api.mb-suite.com/v1/projects/types/{type_id}" \
  -H "Authorization: Bearer $MB_TEST_KEY"