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

# Cadastra um membro

> Cadastra ou atualiza um membro através do email.

Adiciona ou atualiza um membro na plataforma. Use esta rota para liberar ou desativar acesso a um conteúdo. Não é necessário informar todas as matrículas cadastradas anteriormente.

Existem três modalidades de acesso na Memberkit:

| Modalidade         | Parâmetro             | Parâmetro de controle |
| ------------------ | --------------------- | --------------------- |
| Cursos individuais | `classroom_ids`       | `status`              |
| Assinaturas        | `membership_level_id` | `status`              |
| Acesso ilimitado   | `unlimited`           | `status`              |

#### 🚨 Importante

1. Escolha apenas uma modalidade em sua requisição.
2. Use o parâmetro `status` para controle de acesso.
3. Use o parâmetro `blocked` apenas para banimento permanente.


## OpenAPI

````yaml POST /api/v1/users
openapi: 3.1.0
info:
  title: MemberKit
  description: ''
  version: 1.0.0
servers: []
security:
  - apikey-query-api_key: []
tags:
  - name: academies
  - name: courses
  - name: lessons
  - name: memberships
  - name: classrooms
  - name: rankings
  - name: users
  - name: scores
  - name: quizzes
  - name: hooks
  - name: comments
paths:
  /api/v1/users:
    post:
      tags:
        - users
      summary: Cadastra um membro
      description: Cadastra ou atualiza um membro através do email.
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                full_name:
                  type: string
                  description: Nome completo.
                email:
                  type: string
                  format: email
                  description: Endereço de email.
                status:
                  type: string
                  enum:
                    - inactive
                    - pending
                    - active
                    - expired
                blocked:
                  type: boolean
                  description: Status de banimento.
                unlimited:
                  type: boolean
                  description: Acesso ilimitado.
                classroom_ids:
                  type: array
                  description: IDs de turmas.
                  items:
                    type: integer
                membership_level_id:
                  type: integer
                  description: ID do nível de assinatura.
                expires_at:
                  type: string
                  format: date-time
                  description: Data de expiração.
                cpf_cnpj:
                  type: string
                  description: CPF/CNPJ.
                phone_local_code:
                  type: string
                  description: DDD do telefone ou código do país.
                phone_number:
                  type: string
                  description: Número do telefone.
              required:
                - full_name
                - email
                - status
            example: ''
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserDetails'
          headers: {}
      deprecated: false
      security:
        - apikey-query-api_key: []
components:
  schemas:
    UserDetails:
      type: object
      properties:
        id:
          type: integer
        full_name:
          type: string
        email:
          type: string
          format: email
        bio:
          type:
            - string
            - 'null'
        profile_image_url:
          type:
            - string
            - 'null'
        blocked:
          type: boolean
        unlimited:
          type: boolean
        sign_in_count:
          type: integer
        current_sign_in_at:
          type:
            - string
            - 'null'
          format: date-time
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        metadata:
          type: object
          properties:
            cpf_cnpj:
              type: string
            phone_local_code:
              type: string
            phone_number:
              type: string
        enrollments:
          type: array
          items:
            type: object
            properties:
              id:
                type: integer
              status:
                type: string
                enum:
                  - inactive
                  - pending
                  - active
                  - expired
              course_id:
                type: integer
              classroom_id:
                type: integer
              expire_date:
                type:
                  - string
                  - 'null'
                format: date
            required:
              - id
              - status
              - course_id
              - classroom_id
              - expire_date
        memberships:
          type: array
          items:
            type: object
            properties:
              id:
                type: integer
              status:
                type: string
                enum:
                  - inactive
                  - pending
                  - active
                  - expired
              membership_level_id:
                type: integer
              expire_date:
                type:
                  - string
                  - 'null'
                format: date-time
            required:
              - id
              - status
              - membership_level_id
              - expire_date
      required:
        - id
        - full_name
        - email
        - bio
        - profile_image_url
        - blocked
        - unlimited
        - sign_in_count
        - current_sign_in_at
        - created_at
        - updated_at
  securitySchemes:
    apikey-query-api_key:
      type: apiKey
      in: query
      name: api_key

````