---
title: "Adds a new Portfolio"
method: POST
path: "/portfolios"
tags: ["provisioning"]
---

# Adds a new Portfolio

`POST /portfolios`

Adds a new Portfolio to be provisioned, including Task Orders and Operators. Once provisioned, Operators can log in to the CSP and begin using provisioned resources and services, funded by the provided Task Order(s). Note that invitations should be sent to all Operator email addresses included in the request. See [#/info/description](#/info/description) and [#/components/schemas](#/components/schemas) for details of these constructs.

## Request body

- PortfolioCreate — Initial Portfolio created to contain Environments, which is an empty shell that does not initially include Environments.
  - `id` string, required — Represents the unqiue ID of the Portfolio created by the vendor. In order to enable the ATAT UI to construct links back to the provisioned environment, this should be the same ID generated internally for the vendor's Portfolio-equivalent construct.
  - `name` string, required
  - `task_orders` TaskOrder[], required
    - `id` string, required — Represents the unique ID of a Task Order. Must be defined by CSPs upon object creation.
    - `task_order_number` string, required — Represents the current Task Order Number. Subject to change over the lifetime of a Task Order. Should be considered metadata rather than a primary key (use the `id` instead).
    - `clins` CLIN[], required
      - `clin_number` string, required — Contract Line Item Number (CLIN), 0001 through 9999
      - `type` 'CLOUD' | 'NON_CLOUD', required — Distinguishes a "CLOUD" CLIN, which directly funds cloud workloads, from "NON_CLOUD" CLINs, which do not.
      - `classification_level` 'UNCLASSIFIED' | 'SECRET' | 'TOP_SECRET' — Represents the classification level for this environment. Attempts to change this field via PUT or PATCH should result in a HTTP 400.
      - `pop_start_date` string, date, required — Start of period of performance for this CLIN in YYYY-MM-DD format.
      - `pop_end_date` string, date, required — End of period of performance for this CLIN in YYYY-MM-DD format.
    - `pop_start_date` string, date, required — Start of period of performance for this Task Order in YYYY-MM-DD format.
    - `pop_end_date` string, date, required — End of period of performance for this Task Order in YYYY-MM-DD format.

## Response `200`

Portfolio response object

- PortfolioCreate — Initial Portfolio created to contain Environments, which is an empty shell that does not initially include Environments.
  - `id` string, required — Represents the unqiue ID of the Portfolio created by the vendor. In order to enable the ATAT UI to construct links back to the provisioned environment, this should be the same ID generated internally for the vendor's Portfolio-equivalent construct.
  - `name` string, required
  - `task_orders` TaskOrder[], required
    - `id` string, required — Represents the unique ID of a Task Order. Must be defined by CSPs upon object creation.
    - `task_order_number` string, required — Represents the current Task Order Number. Subject to change over the lifetime of a Task Order. Should be considered metadata rather than a primary key (use the `id` instead).
    - `clins` CLIN[], required
      - `clin_number` string, required — Contract Line Item Number (CLIN), 0001 through 9999
      - `type` 'CLOUD' | 'NON_CLOUD', required — Distinguishes a "CLOUD" CLIN, which directly funds cloud workloads, from "NON_CLOUD" CLINs, which do not.
      - `classification_level` 'UNCLASSIFIED' | 'SECRET' | 'TOP_SECRET' — Represents the classification level for this environment. Attempts to change this field via PUT or PATCH should result in a HTTP 400.
      - `pop_start_date` string, date, required — Start of period of performance for this CLIN in YYYY-MM-DD format.
      - `pop_end_date` string, date, required — End of period of performance for this CLIN in YYYY-MM-DD format.
    - `pop_start_date` string, date, required — Start of period of performance for this Task Order in YYYY-MM-DD format.
    - `pop_end_date` string, date, required — End of period of performance for this Task Order in YYYY-MM-DD format.

## Other responses

- `400` — Invalid input
- `405` — Not ready to provision

---

[API](https://skmtc.net/dod-ccpo/apis/atat-csp-api.md) · [All operations](https://skmtc.net/dod-ccpo/apis/atat-csp-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/dod-ccpo/atat-csp-api/revisions/22014acb308f/schema)
