Workspaces

Create a storage connection

POST
/v1/storage-connections

Authorization

bearerAuth
AuthorizationBearer <token>

Your API key, sent as Authorization: Bearer nace_sk_...

  • Where: the dashboard's API Keys page. It is shown once, when you create it.
  • Format: nace_sk_ followed by 43 URL-safe characters (A-Z, a-z, 0-9, _ and -).
  • Limit: an account can hold at most 3 active keys.
  • Wrong or missing key: returns 401 authentication_error.

In: header

Header Parameters

Idempotency-Keystring

Up to 200 characters. Retry with the same key to get the connection the first request made; without one, each request makes a new connection.

Lengthlength <= 200

Request Body

application/json

namestringrequired

The name people see.

Length1 <= length <= 200
destinationS3 destination | Azure Blob destinationrequired

Where a connection's workspaces keep their files. It can't change.

Show variants

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/v1/storage-connections" \  -H "Content-Type: application/json" \  -d '{    "name": "Audit evidence bucket",    "destination": {      "type": "s3",      "bucket": "acme-audit-evidence",      "region": "us-east-1",      "prefix": "nace"    }  }'
{  "id": "6b1f0c9e-2d4a-4e7b-9c3d-8a5e1f2b7c40",  "name": "Audit evidence bucket",  "destination": {    "type": "s3",    "bucket": "acme-audit-evidence",    "region": "us-east-1",    "prefix": "nace"  },  "status": "draft",  "can_manage": true,  "external_id": "nace-6b1f0c9e2d4a4e7b",  "aws_trusted_principal_arn": null,  "aws_trusted_principal_arns": [    "arn:aws:iam::111122223333:role/ndi-api",    "arn:aws:iam::111122223333:role/ndi-worker"  ],  "credentials_pending": false,  "validation_running": false,  "credential_generation": 0,  "validated_at": null,  "reactivation_requires_approval": false,  "revoked_reason": null,  "revoked_at": null,  "created_at": "2026-10-26T10:00:00Z"}