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

# Registrar novo pet

> Registra um novo pet para o CPF do cidadão (auto-declarado).



## OpenAPI

````yaml https://raw.githubusercontent.com/prefeitura-rio/app-rmi/refs/heads/main/docs/openapi-v3.json post /citizen/{cpf}/pets
openapi: 3.0.0
info:
  description: >-
    API para gerenciamento de dados de cidadãos do Rio de Janeiro, incluindo
    autodeclaração de informações e verificação de contato.
  title: API RMI
  termsOfService: http://swagger.io/terms/
  contact:
    name: Suporte RMI
    url: http://www.rio.rj.gov.br
    email: suporte@rio.rj.gov.br
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
  version: '1.0'
servers:
  - url: https://services.pref.rio/rmi/v1
    description: Production
  - url: https://services.staging.app.dados.rio/rmi/v1
    description: Staging
security: []
tags:
  - description: >-
      Operações relacionadas a cidadãos, incluindo consulta e atualização de
      dados autodeclarados
    name: citizen
  - description: Operações relacionadas a departamentos/unidades administrativas (UA)
    name: departments
  - description: Gerenciamento de categorias de notificação (admin) e listagem pública
    name: notification-categories
  - description: Gerenciamento de preferências de notificação por CPF e telefone
    name: notification-preferences
  - description: Operações de verificação de saúde da API
    name: health
paths:
  /citizen/{cpf}/pets:
    post:
      tags:
        - citizen
      summary: Registrar novo pet
      description: Registra um novo pet para o CPF do cidadão (auto-declarado).
      parameters:
        - description: CPF do cidadão (11 dígitos)
          name: cpf
          in: path
          required: true
          schema:
            type: string
            minLength: 11
            maxLength: 11
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/models.PetRegistrationRequest'
        description: Dados do pet para registro
        required: true
      responses:
        '201':
          description: Pet registrado com sucesso
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.Pet'
        '400':
          description: Formato de CPF inválido ou dados do pet inválidos
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/handlers.ErrorResponse'
        '401':
          description: Token de autenticação não fornecido ou inválido
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/handlers.ErrorResponse'
        '403':
          description: Acesso negado - permissões insuficientes
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/handlers.ErrorResponse'
        '429':
          description: Muitas requisições - limite de taxa excedido
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/handlers.ErrorResponse'
        '500':
          description: Erro interno do servidor
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/handlers.ErrorResponse'
      security:
        - bearerAuth: []
components:
  schemas:
    models.PetRegistrationRequest:
      type: object
      required:
        - animal_nome
        - especie_nome
        - indicador_castrado
        - nascimento_data
        - porte_nome
        - raca_nome
        - sexo_sigla
      properties:
        animal_nome:
          type: string
        especie_nome:
          type: string
        foto_url:
          type: string
        indicador_castrado:
          type: boolean
        microchip_numero:
          type: string
        nascimento_data:
          type: string
        pedigree_indicador:
          type: boolean
        pedigree_origem_nome:
          type: string
        porte_nome:
          type: string
        raca_nome:
          type: string
        sexo_sigla:
          type: string
          enum:
            - M
            - F
    models.Pet:
      type: object
      properties:
        animal_nome:
          type: string
        antirrabica_data:
          type: string
        antirrabica_validade_data:
          type: string
        clinica_credenciada:
          $ref: '#/components/schemas/models.AccreditedClinic'
        especie_nome:
          type: string
        fase_vida_nome:
          type: string
        foto_url:
          type: string
        id_animal:
          type: integer
        indicador:
          type: boolean
        indicador_ativo:
          type: boolean
        indicador_castrado:
          type: boolean
        microchip_numero:
          type: string
        nascimento_data:
          type: string
        pedigree_indicador:
          type: boolean
        pedigree_origem_nome:
          type: string
        porte_nome:
          type: string
        qrcode_payload:
          type: string
        raca_nome:
          type: string
        registro_data:
          type: string
        sexo_sigla:
          type: string
        source:
          description: '"curated" or "self_registered"'
          type: string
        vermifugacao_data:
          type: string
        vermifugacao_validade_data:
          type: string
    handlers.ErrorResponse:
      type: object
      properties:
        error:
          type: string
    models.AccreditedClinic:
      type: object
      properties:
        celular:
          type: string
        email:
          type: string
        endereco:
          $ref: '#/components/schemas/models.ClinicAddress'
        nome:
          type: string
        telefone:
          type: string
    models.ClinicAddress:
      type: object
      properties:
        bairro:
          type: string
        cidade:
          type: string
        complemento:
          type: string
        logradouro:
          type: string
        numero:
          type: string
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````