# Profiles
URL: https://www.quiltt.dev/api/profiles
Description: Learn how to manage user Profiles via Quiltt's GraphQL API. Discover how to fetch and update Profile information.
Navigation: api → profiles
Tags: API, Core Resources

A **Profile** represents the information about the currently authenticated
end-user.

In addition to financial data, Profiles can store important information about
your end-users, such as their email, phone, birthday, address and more. While
all customer data is encrypted at rest, Quiltt adds additional column-level
encryption to sensitive fields that may contain

PII

.

Metadata Note:

GraphQL is the recommended way to interface with Profile data. The following queries and mutations are available:

Profile GraphQL Note:

## GraphQL Queries

### `profile`

Returns information about the authenticated Profile:

GraphQLRequest:

Query:
```graphql
query GetProfile {
  profile [id
    name
    email
    metadata]
}
```

  

Response:
```json
{
  "data": {
    "profile": {
      "id": "p_17KTMuJseY4Cx2LcbgKA7wU",
      "name": "Joe Allen Maldonado-Passage",
      "email": "joe@joeexoticusa.com",
      "metadata": ["mortalEnemy": "Carole"]
    }
  }
}
```

## GraphQL Mutations

### `profileUpdate`

Updates the Profile with supplied attributes. In this example, we are changing
Joe's `name` and adding some `metadata` fields:

GraphQLRequest:

Mutation:
```graphql
mutation UpdateProfile($input: ProfileUpdateInput!) {
  profileUpdate(input: $input) {
    success
    record [id
      name
      email
      metadata]
    errors [message
      path]
  }
}
```

  

Variables:
```json
{
  "input": {
    "name": "Joe Exotic",
    "metadata": ["favoriteAnimal": "Tiger"]
  }
}
```

  

Response:
```json
{
  "data": {
    "profileUpdate": {
      "success": true,
      "record": {
        "id": "p_17KTMuJseY4Cx2LcbgKA7wU",
        "name": "Joe Exotic",
        "email": "joe@joeexoticusa.com",
        "metadata": ["mortalEnemy": "Carole",
          "favoriteAnimal": "Tiger"]
      },
      "errors": null
    }
  }
}
```

## REST Operations

REST API Note:

While GraphQL is our recommended approach for interacting with Profiles, we also
provide REST endpoints for scenarios where they may be more convenient. The
following REST endpoints are available for managing Profiles:

### List Profiles

API Endpoint - GET https://api.quiltt.io/v1/profiles:

Retrieves a paginated list of all profiles in the current environment.

### Get Profile

API Endpoint - GET https://api.quiltt.io/v1/profiles/{profileId}:

Retrieves a specific profile by ID.

### Create Profile

API Endpoint - POST https://api.quiltt.io/v1/profiles:

Creates a new profile in the current environment. Supports optional UUID and
other profile attributes.

### Update Profile

API Endpoint - PATCH https://api.quiltt.io/v1/profiles/{profileId}:

Updates an existing profile with new attributes.

### Delete Profile

API Endpoint - DELETE https://api.quiltt.io/v1/profiles/{profileId}:

Triggers deletion of a profile by ID.

For interactive API documentation and to test these endpoints, visit the
[API Reference - Profiles](/api-reference/rest#tag/Profiles).

## Webhooks

### `profile.created`

This event fires once a new Profile is created in your Environment.

### `profile.deleted`

This event fires when a Profile has been fully deleted from your Environment.

### `profile.ready`

This event fires when Enrichment has been completed.