---
title: "Creates an S3 access key in the organization and returns the access key ID and one-time secret key."
method: POST
path: "/organizations/{org_id}/storage/s3/keys"
tags: ["S3Keys"]
---

# Creates an S3 access key in the organization and returns the access key ID and one-time secret key.

`POST /organizations/{org_id}/storage/s3/keys`

## Request

- Base URL: `https://api.cloud.crusoe.ai/v1`
- URL: `https://api.cloud.crusoe.ai/v1/organizations/{org_id}/storage/s3/keys`
- Auth: none declared
- TypeScript: <https://skmtc.dev/crusoecloud/apis/crusoe-cloud-api-gateway/docs/organizations/:org_id/storage/s3/keys/post.ts> (a function with typed inputs; its response is checked against the schema)

## Path parameters

- `org_id` string, required

## Request body

- CreateS3KeyRequest
  - `alias` string: Human-readable alias for the new S3 access key.
  - `expire_at` string: Expiration timestamp for the new S3 access key, in RFC3339 format.

## Response `200`

- CreateS3KeyResponse: It includes the one-time-only secret key.
  - `access_key_id` string, required: Access key ID used to authenticate S3 requests.
  - `expire_at` string: Expiration timestamp of the S3 access key, in RFC3339 format.
  - `secret_key` string, required: Secret access key paired with the access key ID. Returned only once, at creation.

## Other responses

- `400`: Error Bad Request
- `401`: Error Authentication Failed
- `403`: Error Permissions
- `500`: Error Internal Server

---

[API](https://skmtc.dev/crusoecloud/apis/crusoe-cloud-api-gateway.md) - [All operations](https://skmtc.dev/crusoecloud/apis/crusoe-cloud-api-gateway/llms.txt) - [OpenAPI document](https://skmtc.dev/crusoecloud/apis/crusoe-cloud-api-gateway/revisions/a3fd2dedc72b?raw)
