---
type: api
title: Create a security project
description: The response will include the created project details, such as the project ID, the credentials to access the project, and the endpoints to access different apps such as Elasticsearch and Kibana. The credentials can be regenerated at any time using the _reset-credentials endpoint.
url: https://www.elastic.co/elastic/docs-builder/docs/4371/api/doc/cloud-serverless/operation/operation-createsecurityproject
resource: https://www.elastic.co/elastic/docs-builder/docs/4371/api/doc/cloud-serverless/operation/operation-createsecurityproject
products:
  - Elastic Cloud Serverless
---

# Create a security project

- Server: `https://api.elastic-cloud.com`

## Paths

- `POST` `/api/v1/serverless/projects/security`

- [Api key auth](/elastic/docs-builder/docs/4371/api/doc/cloud-serverless/authentication#apikey)

## Description

The response will include the created project details, such as the project ID, the credentials to access the project, and the endpoints to access different apps such as Elasticsearch and Kibana. The credentials can be regenerated at any time using the _reset-credentials endpoint.

## Query String Parameters

- `exclude_credentials` (boolean)
  If true, the username and password fields in the response credentials are set to empty strings and no usable credentials are returned. Credentials can be retrieved later using the _reset-credentials endpoint.

## Request Body

`application/json`

Configuration of the security project to create.

- `name` (string · min: 1 · max: 255) — required
  Descriptive name for a project.
- `alias` (string · min: 1 · max: 50 · pattern: ^[a-zA-Z]{1}(?:[a-zA-Z0-9-]*[a-zA-Z0-9]{1})?$) — optional
  A custom domain label compatible with RFC-1035 standards. Derived from the project name by default.
- `region_id` (string) — required
  Unique human-readable identifier for a region in Elastic Cloud.
- `admin_features_package` (enum SecurityAdminFeaturesPackage) — optional
  admin features package (BYOK, BYOIDP, CCS, CCR)
  Values: `standard`, `enterprise`
- `product_types` ([] SecurityProductType · min: 1 · max: 3 · default: [
  {
    "product_line": "security",
    "product_tier": "complete"
  },
  {
    "product_line": "cloud",
    "product_tier": "complete"
  },
  {
    "product_line": "endpoint",
    "product_tier": "complete"
  }
]) — optional
  - `product_line` (enum SecurityProductLine) — required
    The identifier of the Security Solution product line.
    Values: `security`, `cloud`, `endpoint`
  - `product_tier` (enum SecurityProductTier) — required
    The identifier of the Security Solution product tier.
    Values: `complete`, `essentials`
- `search_lake` ({} SecuritySearchLake) — optional
  Configuration for the entire set of capabilities that make the data searchable in Security.
  - `data_retention` ({} DataRetention) — optional — nullable
    Configuration to control the data retention in Elasticsearch data streams.
    - `max_retention_days` (integer · min: 7 · max: 3681) — optional — nullable
      Maximum number of days allowed for retaining data in Elasticsearch data streams. Can be set to "null" for unlimited. A default of 396 will be applied if no value is specified on project creation.
    - `default_retention_days` (integer · min: 7 · max: 3681) — optional — nullable
      Default number of days during which data remains available in Elasticsearch data streams. Can be set to "null" for unlimited. A default of 396 will be applied if no value is specified on project creation.
- `traffic_filters` ([] TrafficFilters) — optional
  traffic filters IDs
  - `id` (string) — required
    traffic filter ID
- `linked` ({} CreateLinkedRequest) — optional
  Configuration for linked projects associated with this project
  - `projects` (map string to CreateLinkedProjectRequest) — required
    Map values ({} CreateLinkedProjectRequest)
    - `type` (enum ProjectType) — required
      The type of the linked project
      Values: `elasticsearch`, `observability`, `security`, `vectordb`
- `metadata` ({} ProjectMetadataRequest) — optional
  Metadata request for a project with tags.
  - `tags` (ProjectTags) — required
    Tags associated with a project in the form of key-value pairs. Tags are limited to a minimum of 1 and a maximum of 64 per project. Each tag key must begin with a lowercase letter (a-z), contain only lowercase letters, digits, underscores, and hyphens (a-z0-9_-), and have a maximum length of 32 characters.

## Responses

#### `201`

The created security project.

`application/json`

- `id` (string · pattern: ^[a-z0-9]{32}$)
  ID of the project.
- `name` (string · min: 1 · max: 255)
  Descriptive name for a project.
- `alias` (string · min: 8 · max: 57 · pattern: ^[a-zA-Z]{1}(?:[a-zA-Z0-9-]*[a-zA-Z0-9]{1})?$)
  A domain label compatible with RFC-1035 standards. Project alias with a unique suffix added by the system to avoid naming conflicts.
- `region_id` (string)
  Unique human-readable identifier for a region in Elastic Cloud.
- `metadata` ({} ProjectMetadata)
  Additional details about the project.
  - `created_at` (string)
    Date and time when the project was created.
  - `created_by` (string)
    ID of the user.
  - `organization_id` (string)
    The Organization ID who owns the project.
  - `suspended_at` (string)
    Date and time when the project was suspended.
  - `suspended_reason` (string)
    Reason why the project was suspended.
  - `tags` (ProjectTags)
    Tags associated with a project in the form of key-value pairs. Tags are limited to a minimum of 1 and a maximum of 64 per project. Each tag key must begin with a lowercase letter (a-z), contain only lowercase letters, digits, underscores, and hyphens (a-z0-9_-), and have a maximum length of 32 characters.
  - `system_tags` (ProjectSystemTags)
    System tags associated with a project in the form of key-value pairs. These tags are added by the internal system and are read-only. The keys are prefixed with an underscore to differentiate them from user tags.
- `cloud_id` (string)
  The cloud ID, an encoded string that provides other Elastic services with the necessary information to connect to this Elasticsearch and Kibana.
- `traffic_filters` ([] TrafficFilters)
  traffic filters IDs
  - `id` (string)
    traffic filter ID
- `linked` ({} LinkConfiguration)
  Configuration for projects linked to this project
  - `projects` (map string to LinkedProject)
    Map values ({} LinkedProject)
    - `status` (enum LinkedProjectStatus)
      The state of the linked project.
      Values: `enabled`, `suspended`, `deleted`
    - `type` (enum ProjectType)
      The type of the linked project
      Values: `elasticsearch`, `observability`, `security`, `vectordb`
- `type` (enum)
  the type of the project
  Values: `security`
- `endpoints` ({} SecurityProjectEndpoints)
  The endpoints to access the different apps of the project.
  - `elasticsearch` (string)
    The endpoint to access elasticsearch.
  - `kibana` (string)
    The endpoint to access kibana.
  - `ingest` (string)
    The endpoint to access the Managed OTLP Endpoint.
- `private_endpoints` ({} SecurityProjectPrivateEndpoints)
  Private endpoints (URLs) for Security projects when PrivateLink is enabled.
  - `elasticsearch` (string)
    The PrivateLink endpoint URL to access elasticsearch.
  - `kibana` (string)
    The PrivateLink endpoint URL to access kibana.
  - `ingest` (string)
    The PrivateLink endpoint URL to access the Managed OTLP Endpoint.
- `search_lake` ({} SecuritySearchLake)
  Configuration for the entire set of capabilities that make the data searchable in Security.
  - `data_retention` ({} DataRetention) — nullable
    Configuration to control the data retention in Elasticsearch data streams.
    - `max_retention_days` (integer · min: 7 · max: 3681) — nullable
      Maximum number of days allowed for retaining data in Elasticsearch data streams. Can be set to "null" for unlimited. A default of 396 will be applied if no value is specified on project creation.
    - `default_retention_days` (integer · min: 7 · max: 3681) — nullable
      Default number of days during which data remains available in Elasticsearch data streams. Can be set to "null" for unlimited. A default of 396 will be applied if no value is specified on project creation.
- `admin_features_package` (enum SecurityAdminFeaturesPackage)
  admin features package (BYOK, BYOIDP, CCS, CCR)
  Values: `standard`, `enterprise`
- `product_types` ([] SecurityProductType · min: 1 · max: 3 · default: [
  {
    "product_line": "security",
    "product_tier": "complete"
  },
  {
    "product_line": "cloud",
    "product_tier": "complete"
  },
  {
    "product_line": "endpoint",
    "product_tier": "complete"
  }
])
  - `product_line` (enum SecurityProductLine)
    The identifier of the Security Solution product line.
    Values: `security`, `cloud`, `endpoint`
  - `product_tier` (enum SecurityProductTier)
    The identifier of the Security Solution product tier.
    Values: `complete`, `essentials`
- `credentials` ({} ProjectCredentials)
  Basic auth credentials to access the Elasticsearch API.
  - `username` (string)
    Basic auth username that can be used to access the Elasticsearch API.
  - `password` (string)
    Basic auth password that can be used to access the Elasticsearch API.
##### Response Headers

- `ETag` (string)

#### `400`

Bad request

`application/json`

- `errors` ([] ErrorResponse)
  - `message` (string)
    A human-readable message of the error.
  - `code` (string)
    An identifier for this type of error.
#### `422`

Unprocessable entity

`application/json`

- `errors` ([] ErrorResponse)
  - `message` (string)
    A human-readable message of the error.
  - `code` (string)
    An identifier for this type of error.
## Code Examples

#### Console

```console
POST /api/v1/serverless/projects/security
```

#### curl

```curl
curl -X POST "https://api.elastic-cloud.com/api/v1/serverless/projects/security"
```

