> ## Documentation Index
> Fetch the complete documentation index at: https://docs.metrito.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Listar Projetos

> Retorna todos os projetos (brands) que o usuário autenticado tem acesso.

Cada projeto contém um `id` que é usado como `project_id` nas demais APIs (Data API, conexões, etc.).


## Autenticação

Este endpoint aceita dois formatos de autenticação:

1. **JWT da plataforma**
   * Header: `Authorization: Bearer {jwt}`

2. **API Key do Metrito**
   * Header: `Authorization: Bearer mtk_live_...` **ou** `x-api-key: mtk_live_...`
   * Requer escopo `data:read`
   * Retorna todos os projetos do workspace vinculado à chave


## OpenAPI

````yaml /openapi/platform.yaml get /v3/projects
openapi: 3.1.0
info:
  title: API da Plataforma — Metrito
  version: '3.0'
  description: >
    API para autenticação e consulta de recursos da plataforma Metrito
    (projetos, conexões).

    Utilizada para obter tokens JWT e listar recursos disponíveis para o usuário
    autenticado.
servers:
  - url: https://api.metrito.com
    description: Produção
security: []
paths:
  /v3/projects:
    get:
      summary: Listar projetos do usuário
      description: >
        Retorna todos os projetos (brands) que o usuário autenticado tem acesso.


        Cada projeto contém um `id` que é usado como `project_id` nas demais
        APIs (Data API, conexões, etc.).
      operationId: listProjects
      responses:
        '200':
          description: Lista de projetos retornada com sucesso
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Project'
              example:
                - id: 69162064162b926ae607959b
                  name: Minha Loja Online
                  description: E-commerce de roupas
                  logo: https://storage.metrito.com/logos/minhaloja.png
                  workspace_id: 60f1b2c3d4e5f6a7b8c9d0e1
                - id: 69162064162b926ae607960c
                  name: SaaS App
                  description: null
                  logo: null
                  workspace_id: 60f1b2c3d4e5f6a7b8c9d0e1
        '401':
          description: Token ausente ou inválido
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error: Unauthorized
                message: Token inválido ou expirado
      security:
        - bearerAuth: []
        - apiKeyAuth: []
components:
  schemas:
    Project:
      type: object
      properties:
        id:
          type: string
          description: ID do projeto (usar como `project_id` nas demais APIs)
        name:
          type: string
          description: Nome do projeto
        description:
          type: string
          nullable: true
          description: Descrição do projeto
        logo:
          type: string
          nullable: true
          description: URL do logo do projeto
        workspace_id:
          type: string
          description: ID do workspace ao qual o projeto pertence
    ErrorResponse:
      type: object
      properties:
        success:
          type: boolean
          example: false
        error:
          type: object
          properties:
            type:
              type: string
              description: Categoria do erro.
              enum:
                - authentication_error
                - authorization_error
                - validation_error
                - not_found_error
                - platform_error
                - api_error
            code:
              type: string
              description: Código de erro específico.
            message:
              type: string
              description: Descrição legível do erro.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT or API Key
      description: >-
        JWT da plataforma ou API key `mtk_live_...` enviada no header
        Authorization
    apiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: API key `mtk_live_...` enviada via header `x-api-key`

````