---
title: "Create an Object."
method: POST
path: "/v1/objects"
tags: ["objects"]
---

# Create an Object.

`POST /v1/objects`

Create a new Object with content and metadata. The Object will be assigned a unique ID.

## Request body

- ObjectCreateParameters — Parameters required to create a new Object.
  - `name` string, required — The name of the Object.
  - `content_type` 'unspecified' | 'text' | 'binary' | 'gzip' | 'tar' | 'tgz', required
  - `metadata` object, nullable — User defined metadata to attach to the object for organization.

## Response `200`

Object created successfully. Returns the Object with metadata.

- ObjectView — An Object represents a stored data entity with metadata.
  - `id` string, required — The unique identifier of the Object.
  - `name` string, required — The name of the Object.
  - `state` string, required — The current state of the Object.
  - `size_bytes` integer, nullable — The size of the Object content in bytes (null until uploaded).
  - `content_type` 'unspecified' | 'text' | 'binary' | 'gzip' | 'tar' | 'tgz', required
  - `create_time_ms` integer, required — The creation time of the Object in milliseconds since epoch.
  - `upload_url` string, nullable — Presigned URL for uploading content to S3 (only present on create).

## Other responses

- `400` — Bad request. Invalid content or parameters.
- `401` — Unauthorized. Invalid or missing authentication.
- `403` — Forbidden. Account does not have devbox capability.
- `500` — Internal server error.

## Changes

- **2025-10-15** `436b4f5c7426` — 1 info
  - added the required property `create_time_ms` to the response with the `200` status

[Change history](https://skmtc.dev/runloopai/apis/runloop-api/changes/v1/objects/post.md)

---

[API](https://skmtc.dev/runloopai/apis/runloop-api.md) · [All operations](https://skmtc.dev/runloopai/apis/runloop-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/runloopai/runloop-api/revisions/436b4f5c7426/schema)
