# Get profile

> Returns information about a specific profile.

Breadcrumb: API › Get profile
Docs index: https://docs.cevoid.com/developers/llms.txt

`GET https://api.cevoid.com/v2/profiles/{id}`

Returns information about a specific profile.

## Authorizations

Bearer token in the Authorization header: `Authorization: Bearer <key>` (API key).

## Path parameters

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | `string` | Yes | Cevoid profile ID. Example: `prf_abc123`. |

## Response

### 200: Successful response

`application/json`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | `object` | Yes | Requested resource. |
| `data.id` | `string` | Yes | Cevoid profile ID. Example: `prf_abc123`. |
| `data.external_id` | `string` | No | Identifier this profile carries in the workspace source system, when known. Secret-key only. Example: `7391056823401`. |
| `data.name` | `string` | No | Display name of the profile. Example: `Sarah Johnson`. |
| `data.first_name` | `string` | No | First name of the profile. Example: `Sarah`. |
| `data.last_name` | `string` | No | Last name of the profile. Example: `Johnson`. |
| `data.email` | `string` | No | Email address for the profile. Secret-key only. Example: `sarah.johnson@example.com`. |
| `data.avatar_url` | `string` | No | Profile image URL. Example: `https://cdn.cevoid.com/avatars/profile123/profile.jpg`. |
| `data.country` | `string` | No | Country code associated with the profile. Example: `US`. |
| `data.language` | `string` | No | Preferred language code associated with the profile. Example: `en`. |
| `data.location` | `string` | No | Free-form location associated with the profile. Secret-key only. Example: `San Francisco, CA`. |
| `data.social_instagram_handle` | `string` | No | Instagram handle associated with the profile. Example: `sarah.lifestyle`. |
| `data.social_tiktok_handle` | `string` | No | TikTok handle associated with the profile. Example: `sarah.creates`. |
| `data.social_x_handle` | `string` | No | X handle associated with the profile. Example: `sarah_j`. |
| `data.birthday` | `string<date>` | No | Birthday in YYYY-MM-DD format. Secret-key only. Example: `1992-04-18`. |
| `data.name_display_format` | `enum<string>` | No | Preferred format for displaying the profile name. Allowed values: `FULL`, `FIRST_LAST_INITIAL`, `FIRST`, `ANONYMOUS`. Example: `FIRST_LAST_INITIAL`. |
| `data.bio` | `string` | No | Profile biography text. Secret-key only. Example: `Lifestyle blogger and photography enthusiast`. |
| `data.notes` | `string` | No | Notes visible only to secret keys. Example: `VIP customer, prefers email communication`. |
| `data.created_at` | `string<date-time>` | Yes | ISO 8601 timestamp when the profile was created. Example: `2024-01-15T09:30:00.000Z`. |
| `data.updated_at` | `string<date-time>` | Yes | ISO 8601 timestamp when the profile was last updated. Example: `2024-01-20T14:22:15.000Z`. |

Response headers:

| Header | Type | Description |
| --- | --- | --- |
| `Cevoid-Processing-Ms` | `string` | End-to-end request processing time in milliseconds |
| `Cevoid-Request-Id` | `string` | Request identifier for support and tracing |
| `RateLimit-Limit` | `string` | Current rate limit bucket size |
| `RateLimit-Remaining` | `string` | Remaining requests in the current rate limit window |
| `RateLimit-Reset` | `integer` | Seconds until the next request token is available |

```json
{
  "data": {
    "id": "prf_sarah",
    "external_id": "customer_7391056823401",
    "name": "Sarah Johnson",
    "first_name": "Sarah",
    "last_name": "Johnson",
    "email": "sarah.johnson@example.com",
    "avatar_url": "https://cdn.cevoid.com/avatars/prf_sarah/profile.jpg",
    "country": "US",
    "language": "en",
    "location": "San Francisco, CA",
    "social_instagram_handle": "sarah.lifestyle",
    "social_tiktok_handle": "sarah.creates",
    "social_x_handle": "sarah_j",
    "birthday": "1992-04-18",
    "name_display_format": "FIRST_LAST_INITIAL",
    "bio": "Lifestyle creator and photography enthusiast",
    "notes": "VIP customer; prefers email communication",
    "created_at": "2026-01-15T09:30:00.000Z",
    "updated_at": "2026-01-20T14:22:15.000Z"
  }
}
```

### 401: Unauthorized

`application/json`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `additional_data` | `object` | No | Optional machine-readable error details. |
| `additional_data.{key}` | `any` | No |  |
| `status` | `number` | Yes | HTTP status code for the error response. Example: `404`. |
| `code` | `string` | Yes | Stable machine-readable error code. Example: `not_found`. |
| `message` | `string` | Yes | Human-readable description of the error. Example: `Route not found`. |
| `request_id` | `string` | No | Request identifier for support and tracing. Example: `req_abc123`. |

Response headers: the same as 200.

```json
{
  "status": 401,
  "code": "unauthorized",
  "message": "Unauthorized",
  "request_id": "req_abc123"
}
```

### 403: Forbidden

`application/json`

Same fields as 401.

Response headers: the same as 200.

```json
{
  "status": 403,
  "code": "forbidden",
  "message": "Forbidden",
  "request_id": "req_abc123"
}
```

### 404: Not found

`application/json`

Same fields as 401.

Response headers: the same as 200.

```json
{
  "additional_data": {
    "errors": [
      {
        "field": "query.market",
        "message": "Invalid input: expected string, received array"
      }
    ]
  },
  "status": 404,
  "code": "not_found",
  "message": "Route not found",
  "request_id": "req_abc123"
}
```

### 422: Validation error

`application/json`

Same fields as 401.

Response headers: the same as 200.

```json
{
  "additional_data": {
    "errors": [
      {
        "field": "query.market",
        "message": "Invalid input: expected string, received array"
      }
    ]
  },
  "status": 422,
  "code": "validation_error",
  "message": "Validation error",
  "request_id": "req_abc123"
}
```

### 429: Too many requests

`application/json`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `additional_data` | `object` | Yes | Machine-readable rate-limit details. |
| `additional_data.retry_after_seconds` | `integer` | Yes | Range: `0 <= x`. |
| `additional_data.{key}` | `any` | No |  |
| `status` | `integer` | Yes | HTTP status code. Example: `404`. |
| `code` | `string` | Yes | Stable machine-readable error code. Example: `not_found`. |
| `message` | `string` | Yes | Human-readable error description. Example: `Resource not found`. |
| `request_id` | `string` | No | Request identifier for support and tracing. Example: `req_abc123`. |

Response headers:

| Header | Type | Description |
| --- | --- | --- |
| `Cevoid-Processing-Ms` | `string` | End-to-end request processing time in milliseconds |
| `Cevoid-Request-Id` | `string` | Request identifier for support and tracing |
| `RateLimit-Limit` | `string` | Current rate limit bucket size |
| `RateLimit-Remaining` | `string` | Remaining requests in the current rate limit window |
| `RateLimit-Reset` | `integer` | Seconds until the next request token is available |
| `Retry-After` | `integer` | Seconds to wait before retrying the request |

```json
{
  "status": 429,
  "code": "rate_limit_exceeded",
  "message": "Rate limit exceeded",
  "request_id": "req_abc123",
  "additional_data": {
    "retry_after_seconds": 1
  }
}
```

### 500: Internal server error

`application/json`

Same fields as 401.

Response headers: the same as 200.

```json
{
  "status": 500,
  "code": "internal_server_error",
  "message": "Internal server error",
  "request_id": "req_abc123"
}
```

## Request example

```bash
curl 'https://api.cevoid.com/v2/profiles/prf_abc123' \
  -H "Authorization: Bearer ${CEVOID_API_KEY}"
```

---

Canonical: https://docs.cevoid.com/developers/api/profiles/get-profile
