> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.kota.io/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.kota.io/_mcp/server.

# Get a requirement

GET https://test.api.kota.io/requirements/{requirement_id}

Retrieve a requirement's current state and the schema of the fields it needs. The response reports whether the requirement has already been fulfilled (and when), and includes the JSON Schema describing the fields to collect.

Reference: https://docs.kota.io/api-reference/requirements/get-requirement

## Servers

- `https://test.api.kota.io` (test, default)
- `https://api.kota.io` (production)

## Request

### Path parameters

- `requirement_id` (string, required) — A requirement identifier in the format ar_ followed by 32 lowercase hex characters (e.g. ar_0a1b2c3d4e5f67890a1b2c3d4e5f6789).

### Headers

- `Authorization` (string, required) — Authorization header using the Bearer scheme

## Response

### 200

OK

- `is_fulfilled` (boolean, required) — Whether this requirement has already been fulfilled.
- `fulfilled_at` (datetime, optional) — When the requirement was fulfilled. Present only when fulfilled.
- `schema` (RequirementsRequirementIdGetResponsesContentApplicationJsonSchemaSchema, optional) — A JSON Schema object describing the fields required for this requirement. Present for pending requirements and may also be returned for fulfilled requirements.

## Errors

### 400 Bad Request Error

Invalid request

- `type` (string, required) — A URI reference identifying the problem type (RFC 9110 section URL).
- `title` (string, required) — A short human-readable summary of the problem type.
- `status` (integer, required) — The HTTP status code.
- `detail` (string, required) — The request did not match the expected schema.
- `error_code` (string, required) — Stable machine-readable error code. Use this for branching; detail is informational only.
- `trace_id` (string, required) — Trace identifier for correlating the error with server-side logs.

### 401 Unauthorized Error

Unauthorized

- `type` (string, required) — A URI reference identifying the problem type (RFC 9110 section URL).
- `title` (string, required) — A short human-readable summary of the problem type.
- `status` (integer, required) — The HTTP status code.
- `detail` (string, required) — The authentication token is invalid or missing.
- `error_code` (string, required) — Stable machine-readable error code. Use this for branching; detail is informational only.
- `trace_id` (string, required) — Trace identifier for correlating the error with server-side logs.

### 404 Not Found Error

Resource not found

- `type` (string, required) — A URI reference identifying the problem type (RFC 9110 section URL).
- `title` (string, required) — A short human-readable summary of the problem type.
- `status` (integer, required) — The HTTP status code.
- `detail` (string, required) — The requirement was not found.
- `error_code` (string, required) — Stable machine-readable error code. Use this for branching; detail is informational only.
- `trace_id` (string, required) — Trace identifier for correlating the error with server-side logs.

### 500 Internal Server Error

An error occurred while processing your request

- `type` (string, required) — A URI reference identifying the problem type (RFC 9110 section URL).
- `title` (string, required) — A short human-readable summary of the problem type.
- `status` (integer, required) — The HTTP status code.
- `detail` (string, required) — An internal error occurred.
- `error_code` (string, required) — Stable machine-readable error code. Use this for branching; detail is informational only.
- `trace_id` (string, required) — Trace identifier for correlating the error with server-side logs.

## Types

### RequirementsRequirementIdGetResponsesContentApplicationJsonSchemaSchema

A JSON Schema object describing the fields required for this requirement. Present for pending requirements and may also be returned for fulfilled requirements.

## Examples

**Response**

```json
{
  "is_fulfilled": false,
  "schema": {
    "benefit_type": "health",
    "context": "enrolment_intent",
    "datasets": [],
    "fields": [
      {
        "id": "cpr_number",
        "label": {
          "default": "CPR number"
        },
        "placeholder": "e.g. 010180-1234",
        "type": "text",
        "validation": {
          "required": true,
          "rules": [
            {
              "message": "CPR number must be exactly 10 digits (format: DDMMYY-SSSS)",
              "rule": {
                "match": [
                  {
                    "var": "cpr_number"
                  },
                  "^\\d{6}-\\d{4}$"
                ]
              }
            }
          ]
        }
      },
      {
        "id": "mobile_number",
        "label": {
          "default": "Mobile phone number"
        },
        "type": "phone",
        "validation": {
          "required": true,
          "rules": [
            {
              "message": "Please enter a valid mobile phone number",
              "rule": {
                "phone_valid": [
                  {
                    "var": "mobile_number"
                  },
                  "DK"
                ]
              }
            }
          ]
        }
      }
    ],
    "flow": {
      "mode": "auto",
      "navigation": {
        "start": "employee_information"
      },
      "steps": [
        {
          "fields": [
            "cpr_number",
            "mobile_number"
          ],
          "id": "employee_information",
          "title": {
            "default": "Employee information"
          }
        }
      ]
    },
    "id": "enrolment_in_dansksundhedssikring",
    "object_type": "employee",
    "title": {
      "default": "Employee information required"
    },
    "version": 1
  }
}
```

**SDK Code**

```python Requirements_get-requirement_example
import requests

url = "https://test.api.kota.io/requirements/requirement_id"

headers = {"Authorization": "Authorization"}

response = requests.get(url, headers=headers)

print(response.json())
```

```javascript Requirements_get-requirement_example
const url = 'https://test.api.kota.io/requirements/requirement_id';
const options = {method: 'GET', headers: {Authorization: 'Authorization'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Requirements_get-requirement_example
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://test.api.kota.io/requirements/requirement_id"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Authorization", "Authorization")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Requirements_get-requirement_example
require 'uri'
require 'net/http'

url = URI("https://test.api.kota.io/requirements/requirement_id")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Authorization'

response = http.request(request)
puts response.read_body
```

```java Requirements_get-requirement_example
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://test.api.kota.io/requirements/requirement_id")
  .header("Authorization", "Authorization")
  .asString();
```

```php Requirements_get-requirement_example
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://test.api.kota.io/requirements/requirement_id', [
  'headers' => [
    'Authorization' => 'Authorization',
  ],
]);

echo $response->getBody();
```

```csharp Requirements_get-requirement_example
using RestSharp;

var client = new RestClient("https://test.api.kota.io/requirements/requirement_id");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Authorization");
IRestResponse response = client.Execute(request);
```

```swift Requirements_get-requirement_example
import Foundation

let headers = ["Authorization": "Authorization"]

let request = NSMutableURLRequest(url: NSURL(string: "https://test.api.kota.io/requirements/requirement_id")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```