---
title: "POST /v2/vals"
method: POST
path: "/v2/vals"
tags: ["vals"]
---

# POST /v2/vals

`POST /v2/vals`

Create a new val

## Request body

- object — Val information provided to create a new val
  - `name` string, required
  - `description` string
  - `privacy` 'public' | 'unlisted' | 'private', required

## Response `201`

A Val

- Val — A Val
  - `name` string, required
  - `id` string, uuid, required — The id of the val
  - `createdAt` string, date-time, required
  - `privacy` 'public' | 'unlisted' | 'private', required — This resource's privacy setting. Unlisted resources do not appear on profile pages or elsewhere, but you can link to them.
  - `author` object, required
    - `id` string, uuid, required
    - `username` string, nullable, required
  - `imageUrl` string, nullable, required — The URL of this val's image
  - `description` string, nullable, required
  - `links` object, required
    - `self` string, uri, required — The URL of this resource on this API
    - `html` string, uri, required — The URL of this resource on Val Town

## Other responses

- `409` — Conflict: Project name already exists

## Changes

- **2025-05-01** `137af5a9771c` — 1 info
  - added the required property `imageUrl` to the response with the `201` status
- **2025-04-23** `1658025a5732` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/val-town/apis/val-town-api/changes/v2/vals/post.md)

---

[API](https://skmtc.dev/val-town/apis/val-town-api.md) · [All operations](https://skmtc.dev/val-town/apis/val-town-api/llms.txt) · [OpenAPI document](https://skmtc.dev/val-town/apis/val-town-api/revisions/6b03e553fa2e?raw)
