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

# List Profiles

> Retrieve all profiles associated with the authenticated user

## Authentication

This endpoint requires authentication using a JWT token in the Authorization header.

## Response

<ResponseField name="data" type="Profile[]" required>
  Array of profile objects

  <ResponseField name="id" type="string" required>
    Unique identifier for the profile
  </ResponseField>

  <ResponseField name="user_id" type="string" required>
    ID of the user who owns this profile
  </ResponseField>

  <ResponseField name="nombre" type="string" required>
    Name of the profile or business entity
  </ResponseField>

  <ResponseField name="rfc" type="string" required>
    RFC (Registro Federal de Contribuyentes) - Mexican tax identification number
  </ResponseField>

  <ResponseField name="tipo_persona" type="enum" required>
    Type of taxpayer entity. Can be `FISICA` (individual) or `MORAL` (corporation)
  </ResponseField>

  <ResponseField name="regimenes_fiscales" type="string[]" required>
    Array of tax regime codes applicable to this profile
  </ResponseField>

  <ResponseField name="validaciones_habilitadas" type="object" required>
    Configuration object for validation rules enabled for this profile
  </ResponseField>

  <ResponseField name="created_at" type="string" required>
    ISO 8601 timestamp of when the profile was created
  </ResponseField>

  <ResponseField name="updated_at" type="string" required>
    ISO 8601 timestamp of when the profile was last updated
  </ResponseField>

  <ResponseField name="frozen" type="boolean">
    Whether the profile is frozen (inactive due to plan limits or other reasons)
  </ResponseField>

  <ResponseField name="frozen_reason" type="enum">
    Reason why the profile is frozen. Can be `plan_limit`, `user_suspension`, `payment_issue`, or `null`
  </ResponseField>

  <ResponseField name="frozen_at" type="string | null">
    ISO 8601 timestamp of when the profile was frozen, or null if not frozen
  </ResponseField>
</ResponseField>

<ResponseField name="count" type="number" required>
  Total number of profiles returned
</ResponseField>

## Example Request

```bash theme={null}
curl -X GET https://api.contafy.com/api/profiles \
  -H "Authorization: Bearer YOUR_JWT_TOKEN" \
  -H "Content-Type: application/json"
```

## Example Response

```json theme={null}
{
  "data": [
    {
      "id": "prof_1234567890",
      "user_id": "user_0987654321",
      "nombre": "Mi Empresa SA de CV",
      "rfc": "XAXX010101000",
      "tipo_persona": "MORAL",
      "regimenes_fiscales": ["601", "603"],
      "validaciones_habilitadas": {
        "validarRFCIngresos": true,
        "validarRFCGastos": true,
        "validarRegimenFiscal": false,
        "validarUUIDDuplicado": true,
        "bloquearSiRFCNoCoincide": false,
        "bloquearSiRegimenNoCoincide": false
      },
      "created_at": "2024-01-15T10:30:00.000Z",
      "updated_at": "2024-02-20T14:45:00.000Z",
      "frozen": false
    },
    {
      "id": "prof_9876543210",
      "user_id": "user_0987654321",
      "nombre": "Juan Pérez",
      "rfc": "PERJ850101ABC",
      "tipo_persona": "FISICA",
      "regimenes_fiscales": ["605"],
      "validaciones_habilitadas": {
        "validarRFCIngresos": true,
        "validarRFCGastos": false
      },
      "created_at": "2024-03-01T08:00:00.000Z",
      "updated_at": "2024-03-01T08:00:00.000Z",
      "frozen": true,
      "frozen_reason": "plan_limit",
      "frozen_at": "2024-03-15T12:00:00.000Z"
    }
  ],
  "count": 2
}
```

## Error Responses

### 401 Unauthorized

```json theme={null}
{
  "error": "Unauthorized",
  "message": "Invalid or missing authentication token"
}
```

### 500 Internal Server Error

```json theme={null}
{
  "error": "Internal Server Error",
  "message": "An error occurred while retrieving profiles"
}
```
