> For the complete documentation index, see [llms.txt](https://docs.discloud.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.discloud.com/api-and-integrations/api-overview/team-members-endpoints.md).

# Projeto

## Listar projetos

> Lista os projetos acessíveis pelo usuário.

```json
{"openapi":"3.0.3","info":{"title":"Discloud API","version":"2.0.0"},"tags":[{"name":"Projetos","description":"Operações sobre projetos (agrupamento de apps)"}],"servers":[{"url":"https://api.discloud.app/v2","description":"Servidor API"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"api-token"}},"schemas":{"Error":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}},"paths":{"/projects":{"get":{"tags":["Projetos"],"summary":"Listar projetos","description":"Lista os projetos acessíveis pelo usuário.","operationId":"listProjects","responses":{"200":{"description":"Projetos listados com sucesso","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Erro de autenticação","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## Criar projeto

> Cria um novo projeto. Requer plano compatível.

```json
{"openapi":"3.0.3","info":{"title":"Discloud API","version":"2.0.0"},"tags":[{"name":"Projetos","description":"Operações sobre projetos (agrupamento de apps)"}],"servers":[{"url":"https://api.discloud.app/v2","description":"Servidor API"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"api-token"}},"schemas":{"Error":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}},"paths":{"/projects":{"post":{"tags":["Projetos"],"summary":"Criar projeto","description":"Cria um novo projeto. Requer plano compatível.","operationId":"createProject","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["name"],"properties":{"name":{"type":"string","description":"Nome do projeto (máx. 50 caracteres)"},"description":{"type":"string"},"icon":{"type":"string"},"teamID":{"type":"string","description":"Team a vincular (opcional)"},"fromAppIDs":{"type":"array","items":{"type":"string"}}}}}}},"responses":{"201":{"description":"Projeto criado com sucesso","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Dados inválidos","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Erro de autenticação","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Plano não permite criar projetos ou limite atingido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## Detalhes do projeto

> Retorna os detalhes de um projeto, incluindo team e apps.

```json
{"openapi":"3.0.3","info":{"title":"Discloud API","version":"2.0.0"},"tags":[{"name":"Projetos","description":"Operações sobre projetos (agrupamento de apps)"}],"servers":[{"url":"https://api.discloud.app/v2","description":"Servidor API"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"api-token"}},"schemas":{"Error":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}},"paths":{"/projects/{projectID}":{"get":{"tags":["Projetos"],"summary":"Detalhes do projeto","description":"Retorna os detalhes de um projeto, incluindo team e apps.","operationId":"getProject","parameters":[{"name":"projectID","in":"path","required":true,"description":"ID do projeto","schema":{"type":"string"}}],"responses":{"200":{"description":"Projeto carregado com sucesso","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Erro de autenticação","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Sem permissão para ver o projeto","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Projeto não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## Deletar projeto

> Remove um projeto. Os apps vinculados são desvinculados (não deletados).

```json
{"openapi":"3.0.3","info":{"title":"Discloud API","version":"2.0.0"},"tags":[{"name":"Projetos","description":"Operações sobre projetos (agrupamento de apps)"}],"servers":[{"url":"https://api.discloud.app/v2","description":"Servidor API"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"api-token"}},"schemas":{"Error":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}},"paths":{"/projects/{projectID}":{"delete":{"tags":["Projetos"],"summary":"Deletar projeto","description":"Remove um projeto. Os apps vinculados são desvinculados (não deletados).","operationId":"deleteProject","parameters":[{"name":"projectID","in":"path","required":true,"description":"ID do projeto","schema":{"type":"string"}}],"responses":{"200":{"description":"Projeto deletado com sucesso","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Erro de autenticação","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Sem permissão para deletar o projeto","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Projeto não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## Atualizar projeto

> Atualiza nome, descrição e/ou ícone de um projeto.

```json
{"openapi":"3.0.3","info":{"title":"Discloud API","version":"2.0.0"},"tags":[{"name":"Projetos","description":"Operações sobre projetos (agrupamento de apps)"}],"servers":[{"url":"https://api.discloud.app/v2","description":"Servidor API"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"api-token"}},"schemas":{"Error":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}},"paths":{"/projects/{projectID}":{"patch":{"tags":["Projetos"],"summary":"Atualizar projeto","description":"Atualiza nome, descrição e/ou ícone de um projeto.","operationId":"updateProject","parameters":[{"name":"projectID","in":"path","required":true,"description":"ID do projeto","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"},"icon":{"type":"string"}}}}}},"responses":{"200":{"description":"Projeto atualizado com sucesso","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Dados inválidos","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Erro de autenticação","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Sem permissão para gerenciar o projeto","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Projeto não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## Vincular/desvincular team

> Vincula um team ao projeto (teamID) ou desvincula (teamID null). Apenas o dono do projeto.

```json
{"openapi":"3.0.3","info":{"title":"Discloud API","version":"2.0.0"},"tags":[{"name":"Projetos","description":"Operações sobre projetos (agrupamento de apps)"}],"servers":[{"url":"https://api.discloud.app/v2","description":"Servidor API"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"api-token"}},"schemas":{"Error":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}},"paths":{"/projects/{projectID}/team":{"patch":{"tags":["Projetos"],"summary":"Vincular/desvincular team","description":"Vincula um team ao projeto (teamID) ou desvincula (teamID null). Apenas o dono do projeto.","operationId":"setProjectTeam","parameters":[{"name":"projectID","in":"path","required":true,"description":"ID do projeto","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"teamID":{"type":"string","nullable":true,"description":"ID do team a vincular, ou null para desvincular"}}}}}},"responses":{"200":{"description":"Team vinculado ou desvinculado com sucesso","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"teamID inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Erro de autenticação","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Não é o dono do projeto ou plano insuficiente","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Projeto ou team não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## Listar apps disponíveis

> Lista os apps que podem ser adicionados ao projeto.

```json
{"openapi":"3.0.3","info":{"title":"Discloud API","version":"2.0.0"},"tags":[{"name":"Projetos","description":"Operações sobre projetos (agrupamento de apps)"}],"servers":[{"url":"https://api.discloud.app/v2","description":"Servidor API"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"api-token"}},"schemas":{"Error":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}},"paths":{"/projects/{projectID}/apps":{"get":{"tags":["Projetos"],"summary":"Listar apps disponíveis","description":"Lista os apps que podem ser adicionados ao projeto.","operationId":"projectAvailableApps","parameters":[{"name":"projectID","in":"path","required":true,"description":"ID do projeto","schema":{"type":"string"}}],"responses":{"200":{"description":"Apps disponíveis listados com sucesso","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Erro de autenticação","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Sem permissão para ver o projeto","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Projeto não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## Adicionar/mover app ao projeto

> Adiciona um app ao projeto. Se o cluster divergir, use migrate=true para migrar (resposta 202, migração assíncrona).

```json
{"openapi":"3.0.3","info":{"title":"Discloud API","version":"2.0.0"},"tags":[{"name":"Projetos","description":"Operações sobre projetos (agrupamento de apps)"}],"servers":[{"url":"https://api.discloud.app/v2","description":"Servidor API"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"api-token"}},"schemas":{"Error":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}},"paths":{"/projects/{projectID}/apps/{appID}":{"put":{"tags":["Projetos"],"summary":"Adicionar/mover app ao projeto","description":"Adiciona um app ao projeto. Se o cluster divergir, use migrate=true para migrar (resposta 202, migração assíncrona).","operationId":"addAppToProject","parameters":[{"name":"projectID","in":"path","required":true,"description":"ID do projeto","schema":{"type":"string"}},{"name":"appID","in":"path","required":true,"description":"ID da aplicação","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"migrate":{"type":"boolean","description":"Se true, migra o app para o cluster do projeto"}}}}}},"responses":{"200":{"description":"App adicionado ao projeto com sucesso","content":{"application/json":{"schema":{"type":"object"}}}},"202":{"description":"Migração iniciada (processada de forma assíncrona)","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Erro de autenticação","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Sem permissão para gerenciar o projeto","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Projeto ou app não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Cluster incompatível (migração necessária) ou migração já em andamento","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## Remover app do projeto

> Remove o app do projeto (define projectID null). O app não é deletado.

```json
{"openapi":"3.0.3","info":{"title":"Discloud API","version":"2.0.0"},"tags":[{"name":"Projetos","description":"Operações sobre projetos (agrupamento de apps)"}],"servers":[{"url":"https://api.discloud.app/v2","description":"Servidor API"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"api-token"}},"schemas":{"Error":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}},"paths":{"/projects/{projectID}/apps/{appID}":{"delete":{"tags":["Projetos"],"summary":"Remover app do projeto","description":"Remove o app do projeto (define projectID null). O app não é deletado.","operationId":"removeAppFromProject","parameters":[{"name":"projectID","in":"path","required":true,"description":"ID do projeto","schema":{"type":"string"}},{"name":"appID","in":"path","required":true,"description":"ID da aplicação","schema":{"type":"string"}}],"responses":{"200":{"description":"App removido do projeto com sucesso","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Erro de autenticação","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Sem permissão para gerenciar o projeto","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Projeto não encontrado ou app não pertence ao projeto","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```
