# Read the learned site profile visible to the organisation

GET /v1/sites/{hostname}: Read the learned site profile visible to the organisation

```http
GET /v1/sites/{hostname}
```

|  |  |
|---|---|
| Operation id | `getSiteProfile` |
| Key scope | `read`: every key |
| Section | [Sites](https://docs.kaab.ist/reference/api#sites) |

## Parameters

| Name | In | Type | Required | Description |
|---|---|---|---|---|
| `hostname` | path | string | yes | min length 1 |

## Example request

```bash
curl -X GET "https://api.kaab.ist/v1/sites/{hostname}" \
  -H "Authorization: Bearer $KAAB_API_KEY"
```

## Responses

### 200

Site profile

[SiteProfile](https://docs.kaab.ist/reference/api/schemas/site-profile)

```json
{
  "hostname": "portal.acme.test",
  "object": "site_profile",
  "tier_required": "browser",
  "tier_confidence": 0.82,
  "known_obstacles_count": 2,
  "api_endpoints_count": 1,
  "last_blocked_at": null
}
```

## Errors

Every error answers with the [error envelope](https://docs.kaab.ist/reference/api/schemas/error-response); its `code` is one of the [error codes](https://docs.kaab.ist/reference/codes#errors).

| Status | When |
|---|---|
| 400 | `request_invalid`: request validation failed |
| 401 | Missing or invalid API key |
| 403 | The key's scope does not cover this operation |
| 404 | Resource not found |
| 429 | Rate limited; see `Retry-After` |
| 500 | `internal`: unexpected server error |
