> This is the Markdown version of the page. For the complete Lattice Developers documentation index, fetch https://developer.anduril.com/llms.txt. Append .md to any page URL for its clean Markdown.

# Upload object

POST https://example.developer.anduril.com/api/v1/objects/{objectPath}
Content-Type: application/octet-stream

Uploads an object. The object must be 1 GiB or smaller.

Reference: https://developer.anduril.com/reference/rest/objects/upload-object

## Authentication

- `Authorization` header (bearer token, required) — Bearer authentication of the form `Bearer <token>`, where token is your auth token.

## Request

### Path parameters

- `objectPath` (string, required) — Path of the Object that is to be uploaded.

### Headers

- `Time-To-Live` (long, optional) — An optional expiry TTL associated with an object. The value represents the number of nanoseconds the object will exist in the local store. If no TTL is supplied, the server applies a default TTL. In most cases, the default TTL is 90 days. However, it might be higher or lower, depending on the retention requirements of your environment.
- `Distribution-Mode` (enum, optional) — Controls how the object is distributed across the mesh. If set to `force`, the object will be force distributed to all nodes. Force-distributed objects are subject to a size limit.
  - Allowed values: `force`

### Body (application/octet-stream)

This endpoint expects binary data of type application/octet-stream.

- Binary request body.

## Response

### 200

Successful upload

- `content_identifier` (ContentIdentifier, required)
- `size_bytes` (uint64, required)
- `last_updated_at` (datetime, required) — When this object arrived on the node that holds it, according to that node's clock. Because an object is never modified in place, this is effectively the time the object was created on that node. The value is local to the node holding the object and may differ when the same object is held on multiple nodes. It is not propagated from the node where the object originated.
- `expiry_time` (datetime, optional)

## Errors

### 400 Bad Request Error

Bad request

- `code` (string, required)
- `message` (string, required)

### 413 Content Too Large Error

Content too large

- `code` (string, required)
- `message` (string, required)

### 500 Internal Server Error

Internal server error

- `code` (string, required)
- `message` (string, required)

### 507 Insufficient Storage Error

Insuccifient Storage

- `code` (string, required)
- `message` (string, required)

## Types

### ContentIdentifier

- `path` (string, required) — A valid path must not contain the following: - Spaces or Tabs - Special characters other than underscore (_), dash (-), period (.) and slash (/) - Non-ASCII characters such as accents or symbols Paths must not start with a leading space.
- `checksum` (string, required) — The SHA-256 checksum of this object.

## Examples

**Response**

```json
{
  "content_identifier": {
    "path": "string",
    "checksum": "string"
  },
  "size_bytes": 1,
  "last_updated_at": "2024-01-15T09:30:00Z",
  "expiry_time": "2024-01-15T09:30:00Z"
}
```