> This page is for Developer Documentation.

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

# Poll async task status

GET https://{tenant_name}.benchling.com/api/v3/tasks/study-schema/set-field-definitions/{task_id}

Poll status for Asynchronously set field definitions on a study schema. Requires administrator permission on the schema, Studies to be enabled, and updates to be allowed for the schema's study type.

Include every existing field, including archived fields, in the desired order. Provide a field ID to update an existing field; omit the ID to create a new field. Omitted update attributes retain their existing values. To archive a field, set `archived` to `true` and provide `archiveReason`. Omitting a field does not delete it and causes validation to fail. Configured schema field limits apply..

Reference: https://docs.benchling.com/docs/api/benchling-api/study-schema/setfielddefinitions-get

## Authentication

- `Authorization` header (bearer token, required) — Bearer authentication of the form `Bearer <token>`, where token is your auth token.

## Request

### Path parameters

- `task_id` (string, required) — ID of the asynchronous task to poll.

### Headers

- `EARLY-ACCESS` (string, optional) — Set to true to access beta operations via /api/v3.

## Response

### 200

OK

- `message` (string, required)
- `status` (enum, required)
  - Allowed values: `NOT_STARTED`, `IN_PROGRESS`, `COMPLETED`, `FAILED`
- `result` (SchemaSetFieldDefinitionsOutput, optional, nullable) — Return shape for the set_field_definitions API on schemas.

## Errors

### 400 Bad Request Error

Bad Request

- `detail` (GeneralErrorDetail, required, nullable)
- `instance` (string, required)
- `status` (integer, required)
- `title` (string, required, nullable)
- `type` (string, required)
- `invalidId` (string, optional)

### 403 Forbidden Error

Forbidden

- `detail` (GeneralErrorDetail, required, nullable)
- `instance` (string, required)
- `status` (integer, required)
- `title` (string, required, nullable)
- `type` (string, required)
- `invalidId` (string, optional)

### 404 Not Found Error

Not Found

- `detail` (GeneralErrorDetail, required, nullable)
- `instance` (string, required)
- `status` (integer, required)
- `title` (string, required, nullable)
- `type` (string, required)
- `invalidId` (string, optional)

### 429 Too Many Requests Error

Too Many Requests

- `detail` (TooManyRequestsErrorDetail, required, nullable)
- `instance` (string, required)
- `status` (integer, required)
- `title` (string, required, nullable)
- `type` (string, required)
- `invalidId` (string, optional)

### 500 Internal Server Error

Internal Server Error

- `detail` (InternalServerErrorDetail, required, nullable)
- `instance` (string, required)
- `status` (integer, required)
- `title` (string, required, nullable)
- `type` (string, required)
- `errorId` (string, optional)

## Types

### SchemaSetFieldDefinitionsOutput

Return shape for the set_field_definitions API on schemas.

- `fieldDefinitions` (list of SchemaFieldDefinitionRef, optional)
- `schemaId` (string, optional)

### GeneralErrorDetail

- string
- map from string to any

### TooManyRequestsErrorDetail

- string
- map from string to any

### InternalServerErrorDetail

- string
- map from string to any

### SchemaFieldDefinitionRef

- `__typename` (string, optional)
- `id` (string, optional)

## Examples

**Response**

```json
{
  "message": "string",
  "status": "NOT_STARTED",
  "result": {
    "fieldDefinitions": [
      {
        "__typename": "string",
        "id": "string"
      }
    ],
    "schemaId": "string"
  }
}
```

**SDK Code**

```python
import requests

url = "https://{tenant_name}.benchling.com/api/v3/tasks/study-schema/set-field-definitions/task_id"

headers = {"Authorization": "Bearer <token>"}

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

print(response.json())
```

```javascript
const url = 'https://{tenant_name}.benchling.com/api/v3/tasks/study-schema/set-field-definitions/task_id';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

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