HTTP API Reference for Momento Object Store
Momento provides an HTTP API interface for storing and retrieving objects from your own S3 bucket with automatic caching in your own Momento Valkey Cluster.
The Momento platform is region-based with endpoints specific to each region. To view a list of supported regions and their endpoints, click here.
Authentication
You will need a Momento API Key generated via the Momento console. Momento API Keys control access to the Momento services and can be set to expire.
The API Key must be provided in the Authorization header.
Control Plane API
The Control Plane API allows you to manage object stores - creating, listing, describing, and deleting them.
Create or Update Object Store
Creates a new object store with the specified configuration, or updates an existing one if it already exists.
The following fields are immutable once the object store has been created:
storage_config(bucket_name, prefix, and region)cache_config(cluster_name)
The following fields can be updated:
storage_config.s3.iam_role_arnaccess_logging_configmetrics_configobject_store_limits
Request
- Path: /objectstore/{storeName}
- HTTP Method: PUT
Path Parameters
| Parameter name | Required? | Type | Description |
|---|---|---|---|
| storeName | yes | URL-safe string | The name of the object store. |
Headers
| Header name | Required? | Type | Description |
|---|---|---|---|
| Authorization | yes | String | The Momento API key, in string format, is used for authentication/authorization of the request. |
| Content-Type | yes | String | Must be application/json. |
Request Body
{
"storage_config": {
"s3": {
"bucket_name": "my-s3-bucket",
"prefix": "optional/prefix/path",
"iam_role_arn": "arn:aws:iam::123456789012:role/MomentoObjectStoreRole"
}
},
"cache_config": {
"valkey_cluster": {
"cluster_name": "my-valkey-cluster"
}
},
"access_logging_config": {
"cloudwatch": {
"log_group_name": "/momento/objectstore/my-store",
"iam_role_arn": "arn:aws:iam::123456789012:role/MomentoCloudWatchRole",
"region": "us-east-1"
}
},
"metrics_config": {
"cloudwatch": {
"iam_role_arn": "arn:aws:iam::123456789012:role/MomentoMetricsRole",
"region": "us-east-1"
}
},
"object_store_limits": {
"read_operations_per_second": 100,
"write_operations_per_second": 100,
"read_bytes_per_second": 1048576,
"write_bytes_per_second": 1048576
}
}
| Field | Required? | Type | Description |
|---|---|---|---|
| storage_config.s3.bucket_name | yes | String | The name of your S3 bucket. |
| storage_config.s3.prefix | no | String | Optional prefix path within the bucket. |
| storage_config.s3.iam_role_arn | yes | String | The ARN of the IAM role that Momento will assume to access your S3 bucket. See Appendix: S3 IAM Role Setup. |
| cache_config.valkey_cluster.cluster_name | yes | String | The name of the Momento Valkey Cluster to use for caching. This must be the name of an existing cluster. |
| access_logging_config | no | Object | Optional configuration for access logging. |
| access_logging_config.cloudwatch.log_group_name | yes | String | The CloudWatch Log Group name where access logs will be delivered. The log group must already exist. |
| access_logging_config.cloudwatch.iam_role_arn | yes | String | The ARN of the IAM role that Momento will assume to write logs. See Appendix: CloudWatch IAM Role Setup. |
| access_logging_config.cloudwatch.region | yes | String | The AWS region where the CloudWatch Log Group is located. |
| metrics_config | no | Object | Optional configuration for CloudWatch metrics delivery. See CloudWatch Metrics. |
| metrics_config.cloudwatch.iam_role_arn | yes | String | The ARN of the IAM role that Momento will assume to publish metrics. See Appendix: CloudWatch Metrics IAM Role Setup. |
| metrics_config.cloudwatch.region | yes | String | The AWS region where CloudWatch metrics will be published. |
| object_store_limits | no | Object | Optional throughput limits for some data plane operations (Get Object and Put Object) on this object store. If omitted, defaults are applied. |
| object_store_limits.read_operations_per_second | no | Integer | Maximum read requests per second. Default: 100. |
| object_store_limits.write_operations_per_second | no | Integer | Maximum write requests per second. Default: 100. |
| object_store_limits.read_bytes_per_second | no | Integer | Maximum bytes read per second. Default: 1048576 (1 MiB). |
| object_store_limits.write_bytes_per_second | no | Integer | Maximum bytes written per second. Default: 1048576 (1 MiB). |
Response
Success
Status Code: 201 Created
- Returned when a new object store is successfully created.
Status Code: 200 OK
- Returned when an existing object store is successfully updated.
Response Body:
{
"name": "my-store",
"storage_config": {
"s3": {
"bucket_name": "my-s3-bucket",
"prefix": "optional/prefix/path",
"iam_role_arn": "arn:aws:iam::123456789012:role/MomentoObjectStoreRole"
}
},
"cache_config": {
"valkey_cluster": {
"cluster_name": "my-valkey-cluster"
}
},
"access_logging_config": {
"cloudwatch": {
"log_group_name": "/momento/objectstore/my-store",
"iam_role_arn": "arn:aws:iam::123456789012:role/MomentoCloudWatchRole",
"region": "us-east-1"
}
},
"metrics_config": {
"cloudwatch": {
"iam_role_arn": "arn:aws:iam::123456789012:role/MomentoMetricsRole",
"region": "us-east-1"
}
},
"object_store_limits": {
"read_operations_per_second": 100,
"write_operations_per_second": 100,
"read_bytes_per_second": 1048576,
"write_bytes_per_second": 1048576
}
}
Error
Status Code: 400 Bad Request
- This error type typically indicates that the request was incorrectly specified. See the message body for further details.
Status Code: 401 Unauthorized
- This error type typically indicates that the Momento API key passed in is either invalid or expired. See the body of the message for further details.
Status Code: 403 Forbidden
- This error type typically indicates the Momento API key passed in does not grant the required access. See the body of the message for further details.
Status Code: 500 Internal Server Error
- This error type typically indicates that the service is experiencing issues. Contact Momento support for further assistance.
Describe Object Store
Retrieves the configuration details of an object store.
Request
- Path: /objectstore/{storeName}
- HTTP Method: GET
Path Parameters
| Parameter name | Required? | Type | Description |
|---|---|---|---|
| storeName | yes | URL-safe string | The name of the object store. |
Headers
| Header name | Required? | Type | Description |
|---|---|---|---|
| Authorization | yes | String | The Momento API key, in string format, is used for authentication/authorization of the request. |
Response
Success
Status Code: 200 OK
{
"name": "my-store",
"storage_config": {
"s3": {
"bucket_name": "my-s3-bucket",
"prefix": "optional/prefix/path",
"iam_role_arn": "arn:aws:iam::123456789012:role/MomentoObjectStoreRole"
}
},
"cache_config": {
"valkey_cluster": {
"cluster_name": "my-valkey-cluster"
}
},
"access_logging_config": {
"cloudwatch": {
"log_group_name": "/momento/objectstore/my-store",
"iam_role_arn": "arn:aws:iam::123456789012:role/MomentoCloudWatchRole",
"region": "us-east-1"
}
},
"metrics_config": {
"cloudwatch": {
"iam_role_arn": "arn:aws:iam::123456789012:role/MomentoMetricsRole",
"region": "us-east-1"
}
},
"object_store_limits": {
"read_operations_per_second": 100,
"write_operations_per_second": 100,
"read_bytes_per_second": 1048576,
"write_bytes_per_second": 1048576
}
}
The access_logging_config and metrics_config fields are only present if the respective features are configured for the object store.
Error
Status Code: 401 Unauthorized
- This error type typically indicates that the Momento API key passed in is either invalid or expired.
Status Code: 404 Not Found
- The specified object store does not exist.
Status Code: 500 Internal Server Error
- This error type typically indicates that the service is experiencing issues.
Delete Object Store
Deletes an object store.
Request
- Path: /objectstore/{storeName}
- HTTP Method: DELETE
Path Parameters
| Parameter name | Required? | Type | Description |
|---|---|---|---|
| storeName | yes | URL-safe string | The name of the object store. |
Headers
| Header name | Required? | Type | Description |
|---|---|---|---|
| Authorization | yes | String | The Momento API key, in string format, is used for authentication/authorization of the request. |
Response
Success
Status Code: 204 No Content
- The object store was successfully deleted.
Error
Status Code: 401 Unauthorized
- This error type typically indicates that the Momento API key passed in is either invalid or expired.
Status Code: 404 Not Found
- The specified object store does not exist.
Status Code: 500 Internal Server Error
- This error type typically indicates that the service is experiencing issues.
List Object Stores
Lists all object stores in your account.
Request
- Path: /objectstore
- HTTP Method: GET
Headers
| Header name | Required? | Type | Description |
|---|---|---|---|
| Authorization | yes | String | The Momento API key, in string format, is used for authentication/authorization of the request. |
Response
Success
Status Code: 200 OK
{
"object_stores": [
{ "name": "my-store" },
{ "name": "another-store" }
]
}