Storage — Boto Credentials
Storage
Storage — Boto Credentials
Mint short-lived AWS credentials scoped to your org’s storage area for use with boto3 / the AWS SDKs.
POST
Storage — Boto Credentials
Overview
This endpoint mints short-lived AWS STS credentials scoped to your org’s directory inside the Minerva client storage bucket. Use them withboto3,
the AWS CLI, or any AWS SDK to upload files for processing and download
exports.
Each org has a dedicated bucket; credentials are additionally scoped via
session policy to {your_org}/* only, so other orgs’ data is unreachable
even if a key were misused.
By convention the org directory has two subfolders:
Incoming/— files you send in (resolve/enrich batches, segment uploads, …).Outgoing/— files placed for you to read (exports, batch results, …).
Request
Headers
Your Minerva API key.
Request Body
No body. SendPOST with an empty body (or {}).
Response
Response Structure
Temporary AWS credentials scoped to your org’s storage area.
Bucket name + prefix to scope your AWS-SDK calls to.
credentials
AWS region the bucket lives in. Always
us-east-1 today.Temporary access key ID.
Temporary secret access key.
Temporary session token. Required alongside the access key / secret for
STS credentials.
ISO 8601 timestamp at which the credentials expire. Typically 1 hour
from issue. Refresh by calling this endpoint again before expiry.
bucket_info
S3 bucket name. Pass this as the
Bucket= parameter on boto3 calls.Your org’s directory inside the bucket — every key you read or write
must start with this prefix. Looks like
<your-minerva-org-id>/.Convenience
s3://{name}/{prefix} URI. Useful as a base for the AWS
CLI (aws s3 cp ./local.csv $URI/Incoming/local.csv).Error Responses
401— Unauthorized: invalid or missing API key.403— Forbidden: API key isn’t entitled to storage, or org identity couldn’t be resolved.500— Internal Server Error: credential provisioning failed.
Example — boto3
Example — AWS CLI
Export the credentials and use the AWS CLI like normal:Notes
- Credential lifetime: typically 1 hour. Refresh by calling the endpoint again before
aws_session_expiration. - Scope: credentials are limited to
s3:GetObject/s3:PutObject/s3:DeleteObjecton{prefix}*ands3:ListBucketfiltered to that same prefix. Other prefixes and operations fail closed. - Caching: the Python SDK caches the credentials in-process and auto-refreshes them near expiry. If you call this endpoint directly, implement the same pattern in your own client (don’t call it per request — keep a single set of creds and refresh ahead of expiry).
- Region: bucket lives in
us-east-1today. - Convention: use
Incoming/for client-to-Minerva transfers and read fromOutgoing/for Minerva-to-client transfers. The session policy permits writes to both, but downstream pipelines watchIncoming/.