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

# Estudantes

> Criar e gerenciar registros de estudantes. Estudantes são independentes de cursos e instituições.

# Estudantes

Estudantes são os destinatários dos certificados. Ao contrário de instituições e cursos, os estudantes são registrados no **nível do tenant** — eles não estão vinculados a uma instituição ou curso específico ao serem criados. Um estudante pode estar matriculado em vários cursos e receber múltiplos certificados.

***

## O objeto estudante

```json theme={null}
{
  "uuid": "f6a7b8c9-d0e1-2345-fghi-456789012345",
  "name": "Maria Fernanda Silva",
  "email": "maria@email.com",
  "date_of_birth": "1998-05-20",
  "gender": "female",
  "social_name": null,
  "created_at": "2024-01-20T14:30:00.000000Z"
}
```

| Campo           | Tipo         | Descrição                                                      |
| --------------- | ------------ | -------------------------------------------------------------- |
| `uuid`          | string       | Identificador único                                            |
| `name`          | string       | Nome legal completo                                            |
| `email`         | string       | Endereço de e-mail                                             |
| `date_of_birth` | date         | Data de nascimento (ISO 8601: `YYYY-MM-DD`)                    |
| `gender`        | string       | Identidade de gênero                                           |
| `social_name`   | string\|null | Nome social/preferido (usado nos certificados quando definido) |

***

## Listar estudantes

```http theme={null}
GET /students
```

<CodeGroup>
  ```bash cURL theme={null}
  # Buscar por e-mail para evitar registros duplicados
  curl "https://api.dokstamp.com/students?where[user][email]=maria@email.com" \
    -H "Authorization: Bearer {TOKEN}" \
    -H "Accept: application/json" \
    -H "X-Tenant: {TENANT}"
  ```
</CodeGroup>

<Tip>
  Sempre busque pelo e-mail antes de criar um novo estudante para evitar duplicatas. Use `GET /students?where[email]=estudante@email.com`.
</Tip>

***

## Criar um estudante

```http theme={null}
POST /students
```

| Parâmetro       | Tipo   | Obrigatório | Descrição                                            |
| --------------- | ------ | ----------- | ---------------------------------------------------- |
| `name`          | string | Sim         | Nome legal completo                                  |
| `email`         | string | Sim         | Endereço de e-mail (deve ser único dentro do tenant) |
| `date_of_birth` | date   | Sim         | Data de nascimento (`YYYY-MM-DD`)                    |
| `gender`        | string | Não         | Identidade de gênero                                 |
| `social_name`   | string | Não         | Nome social/preferido                                |

<CodeGroup>
  ```bash cURL theme={null}
  curl -X POST https://api.dokstamp.com/students \
    -H "Authorization: Bearer {TOKEN}" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "X-Tenant: {TENANT}" \
    -d '{
      "name": "Maria Fernanda Silva",
      "email": "maria@email.com",
      "date_of_birth": "1998-05-20",
      "gender": "female"
    }'
  ```

  ```javascript JavaScript theme={null}
  const res = await fetch('https://api.dokstamp.com/students', {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${TOKEN}`,
      'Accept': 'application/json',
      'Content-Type': 'application/json',
      'X-Tenant': TENANT,
    },
    body: JSON.stringify({
      name: 'Maria Fernanda Silva',
      email: 'maria@email.com',
      date_of_birth: '1998-05-20',
      gender: 'female',
    }),
  });
  const { data: student } = await res.json();
  // student.uuid é necessário para criação de matrículas e certificados
  ```
</CodeGroup>

**Resposta `201`:**

```json theme={null}
{
  "data": {
    "uuid": "f6a7b8c9-d0e1-2345-fghi-456789012345",
    "name": "Maria Fernanda Silva",
    "email": "maria@email.com",
    "date_of_birth": "1998-05-20",
    "gender": "female",
    "social_name": null
  }
}
```

***

## Obter um estudante

```http theme={null}
GET /students/{uuid}
```

Use `includes` para carregar dados relacionados:

```bash theme={null}
GET /students/{uuid}?includes[enrollments]=1&includes[certificates]=1
```

***

## Atualizar um estudante

```http theme={null}
PATCH /students/{uuid}
```

Envie apenas os campos a serem alterados. Atualizar o nome de um estudante após a emissão de um certificado **não** altera o nome nos certificados existentes — o snapshot do sujeito da credencial capturado no momento da emissão é imutável.

***

## Excluir um estudante

```http theme={null}
DELETE /students/{uuid}
DELETE /students/batch/destroy
```

Exclusão suave (soft delete). Os certificados emitidos para o estudante permanecem no sistema.

***

## Recursos relacionados

* [Páginas de Portfólio do Estudante](/pt-BR/api-reference/students/portfolio-pages) — permite que estudantes criem um portfólio público
* [Matrículas](/pt-BR/api-reference/enrollments) — vincula estudantes a cursos
* [Certificados](/pt-BR/api-reference/certificates/overview) — emite credenciais para estudantes
