# Submit sample files for review

For integrators.

Your integrator account is approved once 10 files are approved. Quote files with `quote_model_file` until `files_to_submit` quotes are `ready`, then run this. People review the request file by file, which usually takes 24 to 48 hours, so do not poll: you get an email when it is done, and `get_integrator_onboarding` then shows the outcome. After a review with rejections, quote corrected files and run this again; approved files stay approved. What gets a file approved (print settings, colours, geometry) is in the File requirements guide: [https://public-api.dapi.digital/docs/guides/file-requirements](https://public-api.dapi.digital/docs/guides/file-requirements).

## What you need

Nothing: the workflow reads everything it needs from your account.

## Step 1: Get your onboarding status

[GET `/v2/integrator/onboarding`](https://public-api.dapi.digital/docs/reference/integrator-onboarding.md#get_integrator_onboarding)

Read where the account stands. A request can be sent while `status` is `collecting` or `changes_requested`; `files_to_submit` is how many ready quotes it needs.

Succeeds when:

-   `$statusCode == 200`
-   `$response.body#/status == 'collecting' || $response.body#/status == 'changes_requested'`

Keeps for the next steps:

-   `status`: `$response.body#/status`
-   `files_to_submit`: `$response.body#/files_to_submit`
-   `approved_files`: `$response.body#/approved_files`

## Step 2: Submit sample files for review

[POST `/v2/integrator/approval-requests`](https://public-api.dapi.digital/docs/reference/integrator-onboarding.md#create_approval_request)

Send the request. Without `quotes`, your latest eligible quotes are picked; to choose them, send `quotes` with exactly `files_to_submit` ids. `not_enough_ready_quotes` (422) gives `details.required` and `details.available`.

**Request body**

```json
{}
```

Succeeds when:

-   `$statusCode == 201`

Otherwise:

-   `not_enough_ready_quotes`: stop the workflow when `$statusCode == 422`.
-   `already_approved_or_in_review`: stop the workflow when `$statusCode == 409`.

Keeps for the next steps:

-   `request_id`: `$response.body#/id`
-   `status`: `$response.body#/status`

## As a workflow file

The workflow returns:

-   `request_id`: `$steps.send_request.outputs.request_id`

Values starting with `$` are filled in as you go: `$inputs.x` is something you provide, `$steps.s.outputs.o` is a value an earlier step returned, and `$response.body#/path` a field of this response.

This recipe is the workflow `request_integrator_approval` of [arazzo.json](https://public-api.dapi.digital/docs/arazzo.json), an [Arazzo 1.0](https://spec.openapis.org/arazzo/latest.html) document that tools and AI agents can follow step by step.

---

3DAPI API Docs. This page on the web: https://public-api.dapi.digital/docs/guides/request-integrator-approval. Index of every page: https://public-api.dapi.digital/docs/llms.txt.
