---
title: "Validate a storage connection"
method: POST
path: "/v1/storage-connections/{id}/validate"
tags: ["Workspaces"]
---

# Validate a storage connection

`POST /v1/storage-connections/{id}/validate`

## Request

- Base URL: `https://console.nace.ai`
- URL: `https://console.nace.ai/v1/storage-connections/{id}/validate`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/nace/apis/drex-api/docs/v1/storage-connections/:id/validate/post.ts> (a function with typed inputs; its response is checked against the schema)

Start a `storage_validation` job that checks Nace can write, read and delete in the destination, from both its API and its workers. Read it with `GET /v1/storage-connections/{id}/validation-job`; once it succeeds the connection is `ready`. A new IAM role or Azure role assignment can take a few minutes to apply, so a fresh one may fail at first. Free. Only where customer storage is on for the deployment; where it is off, every storage connection route answers `404 storage_connection_unavailable` once the API key is accepted, before checking the request or its body.

## Path parameters

- `id` string, uuid, required

## Request body

- object
  - `reactivate` boolean: Restore a connection you revoked once the validation passes.

## Response `202`

The validation job.

- WorkspaceJob: A job in a workspace (an ingestion, reconciliation, knowledge-graph build, automatic search, QA turn, file replace or delete, or workspace delete), passed through from the document service. Read it again with `GET /v1/documents/jobs/{id}`.
  - `job_id` string, uuid, required
  - `kind` string, required: The document service's job kind, such as `ingestion`, `reconciliation`, `kg_build`, `intelligent_search` (automatic search), `automatic_agent` (QA), `file_replace`, `file_delete` or `workspace_delete`.
  - `status` 'queued' | 'running' | 'succeeded' | 'failed' | 'cancelled', required
  - `workspace_id` string
  - `result` unknown

## Other responses

- `401`: Missing or invalid API key (`authentication_error`, code `invalid_api_key`).
- `403`: Only the connection's creator, or an owner or admin of the account, can do this (`permission_error`, code `access_denied`).
- `404`: Customer storage is off on this deployment, which every storage connection route answers once the API key is accepted and before checking the request, or no such connection for this account (`not_found_error`, code `storage_connection_unavailable`).
- `409`: The connection can't be validated now, for example because Nace revoked it (`conflict_error`).
- `429`: Over the account's requests per minute for document routes (`rate_limit_error`).
- `500`: Something failed on Drex's side (`internal_error`).
- `502`: The document service refused Drex's own request (`upstream_error`, code `ndi_refused_drex`). Retry later.
- `503`: The document service is unavailable (`service_unavailable`).

---

[API](https://skmtc.dev/nace/apis/drex-api.md) - [All operations](https://skmtc.dev/nace/apis/drex-api/llms.txt) - [OpenAPI document](https://skmtc.dev/nace/apis/drex-api/revisions/a0e62d925a61?raw)
