# Get Ashby application form schema

Retrieve the visible public application-form sections and fields for a listed Ashby job.

- Platform: [Ashby Jobs](https://docs.upscrape.com/docs/platforms/ashby)
- Capability ID: `ashby.application-form-schema`
- Cost: 1 credit per request
- Maximum runtime: 30 seconds
- Execute endpoint: `POST https://data.upscrape.com/execute`

## Request

Use the exact public capability ID in the shared execute envelope.

```bash
curl --request POST \
  --url https://data.upscrape.com/execute \
  --header "Authorization: Bearer YOUR_API_KEY" \
  --header "Content-Type: application/json" \
  --header "Prefer: wait=30" \
  --data '{
  "input": {
    "board_slug": "ashby",
    "job_id": "0f5dbf59-687b-4d88-88a7-73ee0a66b48d"
  },
  "capability": "ashby.application-form-schema"
}'
```

## Input

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `board_slug` | `string` | Yes |  |
| `job_id` | `string` | Yes |  |

### Example input

```json
{
  "board_slug": "ashby",
  "job_id": "0f5dbf59-687b-4d88-88a7-73ee0a66b48d"
}
```

## Response

Successful output is returned in `results[0].data`. Raw platform output is intentionally open-ended and may evolve with the upstream source.

### Illustrative sample output

This redacted fixture is an example, not a fixed response schema.

```json
{
  "controls": [
    {
      "identifier": "d94d2ac4-109e-4459-8ce1-a2b9c7c9c48d",
      "title": "Submit"
    }
  ],
  "form_id": "55e5f91f-1bea-4d76-9af2-b539fa929b0a",
  "job_id": "0f5dbf59-687b-4d88-88a7-73ee0a66b48d",
  "sections": [
    {
      "fields": [
        {
          "field": "Name",
          "id": "[redacted:token]",
          "path": "_systemfield_name",
          "required": true,
          "selectable_values": [],
          "title": "Name",
          "type": "String"
        },
        {
          "field": "Email",
          "id": "[redacted:token]",
          "path": "_systemfield_email",
          "required": true,
          "selectable_values": [],
          "title": "Email",
          "type": "Email"
        },
        {
          "field": "Resume",
          "id": "[redacted:token]",
          "path": "_systemfield_resume",
          "required": false,
          "selectable_values": [],
          "title": "Resume",
          "type": "File"
        }
      ],
      "title": "Basic Info"
    },
    {
      "description": "Some questions are not required, but we will prioritize reviewing applicants who answer them over those who don't. Be brief and direct, we don't expect or want essays.",
      "fields": [
        {
          "description": "Answer across your entire professional history, not counting strictly personal projects.",
          "field": "On a scale of 1 to 4, how experienced are you with application programming?",
          "id": "[redacted:token]",
          "path": "71bb255b-791f-49c8-8993-a3a0a9b143ce",
          "required": true,
          "selectable_values": [
            {
              "label": "1 - Primarily a system or Linux administrator",
              "value": "1 - Primarily a system or Linux administrator"
            },
            {
              "label": "2 - Infra as code and programming tooling, reusable scripts or CLI",
              "value": "2 - Infra as code and programming tooling, reusable scripts or CLI"
            },
            {
              "label": "3 - Worked as a software engineer delivering product features",
              "value": "3 - Worked as a software engineer delivering product features"
            }
          ],
          "title": "On a scale of 1 to 4, how experienced are you with application programming?",
          "type": "ValueSelect"
        },
        {
          "description": "The abstraction should address a real-world problem, have a non-obvious solution, and necessitate an understanding of a complex system or technology. It doesn’t have to be infrastructure-related; we’re looking for your most impressive contribution here. We’re open to personal projects if they are used in a professional context (e.g., OSS library used by companies).\nIn our initial calls, we’ll cove…",
          "field": "Describe an interesting software abstraction you’ve built and or made major contributions to in a professional context.",
          "id": "[redacted:token]",
          "path": "8656671d-078b-4c4e-9177-ead75a5c911e",
          "required": false,
          "selectable_values": [],
          "title": "Describe an interesting software abstraction you’ve built and or made major contributions to in a professional context.",
          "type": "LongText"
        }
      ],
      "title": "Your Experience"
    }
  ]
}
```
### Illustrative output fields

Derived from the sample above for orientation only. These fields are not a fixed response schema.

| Path | Observed type | Example |
| --- | --- | --- |
| `controls` | `array` | 1 items |
| `controls` | `array` | 1 items |
| `form_id` | `string` | 55e5f91f-1bea-4d76-9af2-b539fa929b0a |
| `job_id` | `string` | 0f5dbf59-687b-4d88-88a7-73ee0a66b48d |
| `sections` | `array` | 2 items |
| `sections` | `array` | 2 items |

## Execution behavior

A `200` response completed inline. A `202` response was queued; poll `GET /jobs/{id}` until the job reaches `completed` or `failed`. Use an `Idempotency-Key` when retrying must not create a duplicate logical job.

## Related documentation

- [Authentication](https://docs.upscrape.com/docs/api/authentication)
- [Jobs and results](https://docs.upscrape.com/docs/api/jobs)
- [Errors and retries](https://docs.upscrape.com/docs/api/errors)
- [Idempotency](https://docs.upscrape.com/docs/api/idempotency)
