---
title: "Read your profile — Anis Developers"
description: "Your application’s identity, the Anis business account it acts for, and the permissions its current policy grants. Permissions are re-evaluated on every call, so read them rather than caching them."
url: https://developers.anis.ly/reference/read-profile/
language: en
---

> Every page of this documentation: https://developers.anis.ly/llms.txt

[API reference](https://developers.anis.ly/reference.md) · Your application

# Read your profile

`GET /v1/profile`

Your application’s identity, the Anis business account it acts for, and the permissions its current policy grants. Permissions are re-evaluated on every call, so read them rather than caching them.

- **Permission:** `profile:read`
- **Authentication:** Signed read
- **Staff-set limits it counts toward:** All requests
- **.NET SDK:** `anis.Profile.GetAsync()`

## Request

Signed with your key. No body, no nonce.

Headers: `Signature-Input`, `Signature`, `X-Anis-Date`, `Accept-Language` (optional). The SDKs set all of them for you.

**Body:** none.

## Responses

| Status | Meaning | Body |
| --- | --- | --- |
| 200 | Success. | [Profile](#type-profile) |
| 401 | Refused: not authenticated. | [Problem](#refusals) |
| 403 | Refused: not allowed. | [Problem](#refusals) |
| 429 | Refused: a limit was reached. | [Problem](#refusals) |
| 503 | No decision: a dependency was unavailable. | [Problem](#refusals) |

Every answer is signed by Anis; the SDKs check it before you see it.

## Refusals

Every refusal is a signed problem. Branch on its `code`; each links to what it means and what to do.

| Error | Code | Status |
| --- | --- | --- |
| [Invalid credentials](https://developers.anis.ly/errors/invalid-credentials.md) | `invalid_credentials` | 401 |
| [Insufficient scope](https://developers.anis.ly/errors/insufficient-scope.md) | `insufficient_scope` | 403 |
| [Source address not allowed](https://developers.anis.ly/errors/source-ip-not-allowed.md) | `source_ip_not_allowed` | 403 |
| [Rate limited](https://developers.anis.ly/errors/rate-limited.md) | `rate_limited` | 429 |
| [Account not authorised](https://developers.anis.ly/errors/binding-not-authorized.md) | `binding_not_authorized` | 403 |
| [Service unavailable](https://developers.anis.ly/errors/dependency-unavailable.md) | `dependency_unavailable` | 503 |
| [Request timeout](https://developers.anis.ly/errors/request-timeout.md) | `request_timeout` | 504 |
| [Internal error](https://developers.anis.ly/errors/internal-error.md) | `internal_error` | 500 |

## Types

### Profile

| Field | Type | Notes |
| --- | --- | --- |
| `partner` (required) | object | The partner your application belongs to. |
| `partner.id` (required) | UUID | The partner’s id. |
| `application` (required) | object | Your application. |
| `application.id` (required) | UUID | Your application’s id. It stays the same when your keys are replaced. |
| `application.scopes` (required) | list of string | The permissions your application has right now. Re-read rather than cache: a change applies to your next call. |
| `ownerAccount` | object | The Anis business account your application acts for, when shown. |
| `ownerAccount.id` | UUID | The business account’s id. |
| `ownerAccount.displayName` | string | The business account’s name. |
| `documentationVersion` | string | The version of this documentation the Anis deployment you called matches. |
