---
title: "Create a new stack (deprecated alias of /v1/stacks)"
method: POST
path: "/v1/tickers"
tags: ["Stacks"]
deprecated: true
---

# Create a new stack (deprecated alias of /v1/stacks)

`POST /v1/tickers`

## Request

- Base URL: `https://statusstack.com/api`
- URL: `https://statusstack.com/api/v1/tickers`
- Auth: HTTP bearer

> **Deprecated.**

## Request body

- StackCreateRequest
  - `name` string, required
  - `slug` string, nullable: Lowercase letters, numbers, dashes and underscores. Generated from `name` when null or omitted.
  - `description` string, nullable
  - `stack_type` 'application' | 'tech' | 'business' | 'custom', required: The types a stack may be created as. Excludes the legacy `status_page`.
  - `visibility` 'public' | 'private' | 'password' | 'unlisted', required: Who may view the stack's public page. `password` requires a `password` on the create/update request.
  - `password` string, nullable: Access password for a `password`-visibility stack.
  - `parent_stack_id` string, uuid, nullable
  - `sources` StackSourceAttachment[], nullable
    - `source_id` string, uuid, required
    - `show_all_components` boolean: Also attach every component of the source. Accepted on attach only.
    - `sort_order` integer
  - `components` StackComponentAttachment[], nullable
    - `component_id` string, uuid, required
    - `sort_order` integer
    - `is_critical` boolean
    - `custom_label` string, nullable

## Response `201`

Stack created

- Stack: A stack. `sources_count` and `components_count` are present on every list and single-stack response. `parent_stack` and `child_stacks` are present on the single-stack responses (show, create, update, template clone), which all return the same shape. Attached sources and components are read through `/v1/stacks/{stack_id}/sources` and `/v1/stacks/{stack_id}/components`.
  - `id` string, uuid
  - `name` string
  - `slug` string
  - `description` string, nullable
  - `stack_type` 'application' | 'tech' | 'business' | 'custom' | 'status_page': What the stack groups together, as stored. `status_page` is legacy: it is never selectable on create, and on update it is accepted only when it is already the stack's current type (`StackType::selectableValuesIncluding()`).
  - `visibility` 'public' | 'private' | 'password' | 'unlisted': Who may view the stack's public page. `password` requires a `password` on the create/update request.
  - `public_url` string, uri, nullable
  - `parent_stack_id` string, uuid, nullable
  - `sources_count` integer
  - `components_count` integer
  - `created_at` string, date-time
  - `updated_at` string, date-time
  - `parent_stack` Stack (recursive)
  - `child_stacks` Stack[]

## Other responses

- `401`: No bearer credentials, or credentials that do not resolve to an API key or Sanctum token. Produced by `ApiAuthentication` ahead of the route, so every operation in the v1 group can return it.
- `403`: The API key lacks the required permission, or a policy denied the action. The two come from different layers and return different bodies, so this is a union rather than one shape.
- `422`: The request body failed validation, or the write would exceed the organization's quota — `CheckQuota` also answers 422, with its own body.
- `429`: The `v1-api` rate limit (120 requests per minute) was exceeded. Applies to every operation in the v1 group.

---

[API](https://skmtc.dev/statusstack/apis/statusstack-api.md) - [All operations](https://skmtc.dev/statusstack/apis/statusstack-api/llms.txt) - [OpenAPI document](https://skmtc.dev/statusstack/apis/statusstack-api/revisions/a5fabf6ac5e4?raw)
