# Get the ownership state

`GET /app/assets/{id}/ownership`

Whether the asset's ownership is proven and how, with the DNS TXT record or the HTTP file that proves it.

Scope: `assets:read`.

## Parameters

- `id` (path, integer, required)

## Example

```bash
curl -X GET "https://api.fortwatch.ai/app/assets/42/ownership" \
  -H "Authorization: Bearer $FORTWATCH_API_KEY"
```

## Response 200

The request succeeded.

- `verified` (boolean, required)
- `verifiedAt` (string (date-time) | null, required)
- `method` (object | null, required)
- `challenge` (object, required)
  - `token` (string, required)
  - `methods` (string[], required)
  - `dns` (object, required)
    - `host` (string, required)
    - `type` (string, required)
    - `value` (string, required)
  - `http` (object, required)
    - `url` (string, required)
    - `path` (string, required)
    - `content` (string, required)

```json
{
  "verified": true,
  "verifiedAt": "2026-10-16T12:00:00.000Z",
  "method": {},
  "challenge": {
    "token": "string",
    "methods": [
      "string"
    ],
    "dns": {
      "host": "app.example.com",
      "type": "string",
      "value": "app.example.com"
    },
    "http": {
      "url": "string",
      "path": "string",
      "content": "string"
    }
  }
}
```

## Errors

- 400: The request is not valid: a field is missing or has the wrong shape (the message names it).
- 401: No valid credentials: the API key or access token is missing, revoked or expired (INVALID_API_KEY, INVALID_TOKEN).
- 403: Not allowed: the key or token lacks this scope (SCOPE_REQUIRED), the route is dashboard-only (SESSION_REQUIRED), or a plan limit applies.
- 404: Not found in your workspace.
- 429: Too many requests (RATE_LIMITED): wait the seconds Retry-After gives.
