Authentication

Api key (http_api_key)

API keys are used to authenticate requests to the Elastic Cloud Serverless REST API. Generate your secret API key in https://cloud.elastic.co/account/keys You must provide the API key for all API requests in the Authorization header as follows:

"Authorization: ApiKey $API_KEY"

For example, if you interact with the API using the curl command:

curl -H "Authorization: ApiKey essu_..." https://api.elastic-cloud.com/api/v1/serverless/projects/elasticsearch

Get Elasticsearch projects

GET /api/v1/serverless/projects/elasticsearch

The number of projects included can be configured with page_size. Consecutive calls can be made to retrieve next pages by providing a token.

Query parameters

  • page_size integer

    Maximum number of projects returned in the response.

    Minimum value is 0.

  • Token to the next page containing the list of projects.

Responses

  • 200 application/json

    The Elasticsearch project list

    Hide response attributes Show response attributes object
    • A token to fetch the next page.

    • items array[object] Required

      The actual projects.

      An Elasticsearch serverless project.

      Hide items attributes Show items attributes object

      An Elasticsearch serverless project.

      • id string Required

        ID of the project.

        Format should match the following pattern: ^[a-z0-9]{32}$.

      • name string Required

        Descriptive name for a project.

        Minimum length is 1, maximum length is 255.

      • alias string Required

        A custom domain label compatible with RFC-1035 standards. Derived from the project name by default.

        Minimum length is 1, maximum length is 50. Format should match the following pattern: ^[a-zA-Z]{1}(?:[a-zA-Z0-9-]*[a-zA-Z0-9]{1})?$.

      • region_id string Required

        Unique human-readable identifier for a region in Elastic Cloud.

      • metadata object Required

        Additional details about the project.

        Additional properties are allowed.

        Hide metadata attributes Show metadata attributes object
      • cloud_id string Required

        The cloud ID, an encoded string that provides other Elastic services with the necessary information to connect to this Elasticsearch and Kibana.

      • type string Required

        the type of the project

        Value is elasticsearch.

      • optimized_for string Required

        The purpose for which the hardware of this elasticsearch project is optimized for. Also known as the Elasticsearch project subtype.

        Values are general_purpose or vector.

      • Configuration for entire set of capabilities that make the data searchable in Elasticsearch.

        Additional properties are allowed.

        Hide search_lake attributes Show search_lake attributes object
        • Controls how fast searches are against your project data. When ingested, a certain amount of data is loaded into a cache that makes it super fast to query. You can either increase the performance of searches on cached data by adding replicas, or reduce the quantity of cached data by a static factor to save on costs.

          Minimum value is 28, maximum value is 3000.

        • Determines how much data can benefit from faster search. When ingested, a certain amount of data is loaded into a cache that makes it super fast to query. The system dynamically adjusts the cache allocated to your project based on how much data you ingest during the period defined by your Search Boost Window.

          Minimum value is 1, maximum value is 180.

      • endpoints object Required

        The endpoints to access the different apps of the project.

        Additional properties are allowed.

        Hide endpoints attributes Show endpoints attributes object
        • elasticsearch string Required

          The endpoint to access elasticsearch.

        • kibana string Required

          The endpoint to access kibana.

  • 401 application/json

    Unauthorized

    Hide response attribute Show response attribute object
    • errors array[object] Required

      An error response returned by the API.

      Hide errors attributes Show errors attributes object
      • message string Required

        A human-readable message of the error.

      • code string Required

        An identifier for this type of error.

GET /api/v1/serverless/projects/elasticsearch
curl \
 --request GET 'https://api.elastic-cloud.com/api/v1/serverless/projects/elasticsearch' \
 --header "Authorization: $API_KEY"
Response examples (200)
{
  "next_page": "YyMzY1MDQiLCJtYXgiOiJGRiJ9fV0=",
  "items": [
    {
      "id": "string",
      "name": "my project",
      "alias": "my-project-alias",
      "region_id": "aws-us-east-1",
      "metadata": {
        "created_at": "2025-05-04T09:42:00Z",
        "created_by": "1014289666002276",
        "organization_id": "198583657190",
        "suspended_at": "2025-05-04T09:42:00Z",
        "suspended_reason": "trial expired"
      },
      "cloud_id": "my_project:LmF3cy5lbGFzdG",
      "type": "elasticsearch",
      "optimized_for": "general_purpose",
      "search_lake": {
        "search_power": 100,
        "boost_window": 100
      },
      "endpoints": {
        "elasticsearch": "https://my-project-alias-df6c6d.es.us-east-1.aws.elastic.cloud",
        "kibana": "https://my-project-alias-df6c6d.kb.us-east-1.aws.elastic.cloud"
      }
    }
  ]
}
Response examples (401)
{
  "errors": [
    {
      "message": "Explicative error message",
      "code": "code.error"
    }
  ]
}












Update an Elasticsearch project

PATCH /api/v1/serverless/projects/elasticsearch/{id}

Only the fields included in the body of the request will be updated.

Headers

  • If-Match string

    ETag value fetched in a previous GET project request. Used to prevent simultaneous updates

Path parameters

  • id string Required

    The ID of the project

    Format should match the following pattern: ^[a-z0-9]{32}$.

application/json

Body Required

The Elasticsearch project patch body

  • name string

    Descriptive name for a project.

    Minimum length is 1, maximum length is 255.

  • alias string

    A custom domain label compatible with RFC-1035 standards. Derived from the project name by default.

    Minimum length is 1, maximum length is 50. Format should match the following pattern: ^[a-zA-Z]{1}(?:[a-zA-Z0-9-]*[a-zA-Z0-9]{1})?$.

  • search_lake object | null

    Configuration for entire set of capabilities that make the data searchable in Elasticsearch. It can be passed as null to reset configuration to the default values.

    Additional properties are allowed.

    Hide search_lake attributes Show search_lake attributes object | null
    • search_power integer | null

      Controls how fast searches are against your project data. When ingested, a certain amount of data is loaded into a cache that makes it super fast to query. You can either increase the performance of searches on cached data by adding replicas, or reduce the quantity of cached data by a static factor to save on costs. It can be passed as null to reset the Search Power to the default value.

      Minimum value is 28, maximum value is 3000.

    • boost_window integer | null

      Determines how much data can benefit from faster search. When ingested, a certain amount of data is loaded into a cache that makes it super fast to query. The system dynamically adjusts the cache allocated to your project based on how much data you ingest during the period defined by your Search Boost Window. It can be passed as null to reset the Search Boost Window to the default value.

      Minimum value is 1, maximum value is 180.

Responses

  • 200 application/json

    The updated Elasticsearch project.

    Hide headers attribute Show headers attribute
    Hide response attributes Show response attributes object

    An Elasticsearch serverless project.

    • id string Required

      ID of the project.

      Format should match the following pattern: ^[a-z0-9]{32}$.

    • name string Required

      Descriptive name for a project.

      Minimum length is 1, maximum length is 255.

    • alias string Required

      A custom domain label compatible with RFC-1035 standards. Derived from the project name by default.

      Minimum length is 1, maximum length is 50. Format should match the following pattern: ^[a-zA-Z]{1}(?:[a-zA-Z0-9-]*[a-zA-Z0-9]{1})?$.

    • region_id string Required

      Unique human-readable identifier for a region in Elastic Cloud.

    • metadata object Required

      Additional details about the project.

      Additional properties are allowed.

      Hide metadata attributes Show metadata attributes object
    • cloud_id string Required

      The cloud ID, an encoded string that provides other Elastic services with the necessary information to connect to this Elasticsearch and Kibana.

    • type string Required

      the type of the project

      Value is elasticsearch.

    • optimized_for string Required

      The purpose for which the hardware of this elasticsearch project is optimized for. Also known as the Elasticsearch project subtype.

      Values are general_purpose or vector.

    • Configuration for entire set of capabilities that make the data searchable in Elasticsearch.

      Additional properties are allowed.

      Hide search_lake attributes Show search_lake attributes object
      • Controls how fast searches are against your project data. When ingested, a certain amount of data is loaded into a cache that makes it super fast to query. You can either increase the performance of searches on cached data by adding replicas, or reduce the quantity of cached data by a static factor to save on costs.

        Minimum value is 28, maximum value is 3000.

      • Determines how much data can benefit from faster search. When ingested, a certain amount of data is loaded into a cache that makes it super fast to query. The system dynamically adjusts the cache allocated to your project based on how much data you ingest during the period defined by your Search Boost Window.

        Minimum value is 1, maximum value is 180.

    • endpoints object Required

      The endpoints to access the different apps of the project.

      Additional properties are allowed.

      Hide endpoints attributes Show endpoints attributes object
      • elasticsearch string Required

        The endpoint to access elasticsearch.

      • kibana string Required

        The endpoint to access kibana.

  • 404 application/json

    Not Found

    Hide response attribute Show response attribute object
    • errors array[object] Required

      An error response returned by the API.

      Hide errors attributes Show errors attributes object
      • message string Required

        A human-readable message of the error.

      • code string Required

        An identifier for this type of error.

  • 409 application/json

    Conflict

    Hide response attribute Show response attribute object
    • errors array[object] Required

      An error response returned by the API.

      Hide errors attributes Show errors attributes object
      • message string Required

        A human-readable message of the error.

      • code string Required

        An identifier for this type of error.

  • 412 application/json

    Precondition failed

    Hide response attribute Show response attribute object
    • errors array[object] Required

      An error response returned by the API.

      Hide errors attributes Show errors attributes object
      • message string Required

        A human-readable message of the error.

      • code string Required

        An identifier for this type of error.

PATCH /api/v1/serverless/projects/elasticsearch/{id}
curl \
 --request PATCH 'https://api.elastic-cloud.com/api/v1/serverless/projects/elasticsearch/{id}' \
 --header "Authorization: $API_KEY" \
 --header "Content-Type: application/json" \
 --header "If-Match: string" \
 --data '{"name":"Example project"}'
Request example
{
  "name": "Example project"
}
Response examples (200)
# Headers
ETag: string

# Payload
{
  "id": "string",
  "name": "my project",
  "alias": "my-project-alias",
  "region_id": "aws-us-east-1",
  "metadata": {
    "created_at": "2025-05-04T09:42:00Z",
    "created_by": "1014289666002276",
    "organization_id": "198583657190",
    "suspended_at": "2025-05-04T09:42:00Z",
    "suspended_reason": "trial expired"
  },
  "cloud_id": "my_project:LmF3cy5lbGFzdG",
  "type": "elasticsearch",
  "optimized_for": "general_purpose",
  "search_lake": {
    "search_power": 100,
    "boost_window": 100
  },
  "endpoints": {
    "elasticsearch": "https://my-project-alias-df6c6d.es.us-east-1.aws.elastic.cloud",
    "kibana": "https://my-project-alias-df6c6d.kb.us-east-1.aws.elastic.cloud"
  }
}
Response examples (404)
{
  "errors": [
    {
      "message": "Explicative error message",
      "code": "code.error"
    }
  ]
}
Response examples (409)
{
  "errors": [
    {
      "message": "Explicative error message",
      "code": "code.error"
    }
  ]
}
Response examples (412)
{
  "errors": [
    {
      "message": "Explicative error message",
      "code": "code.error"
    }
  ]
}

Reset the project credentials

POST /api/v1/serverless/projects/elasticsearch/{id}/_reset-credentials

Retrieve new project credentials, invalidating the previous ones.

Headers

  • If-Match string

    ETag value fetched in a previous GET project request. Used to prevent simultaneous updates

Path parameters

  • id string Required

    The ID of the project

    Format should match the following pattern: ^[a-z0-9]{32}$.

Responses

  • 200 application/json

    The new project credentials.

    Hide headers attribute Show headers attribute
    Hide response attributes Show response attributes object
    • username string Required

      Basic auth username that can be used to access the Elasticsearch API.

    • password string Required

      Basic auth password that can be used to access the Elasticsearch API.

  • 404 application/json

    Not Found

    Hide response attribute Show response attribute object
    • errors array[object] Required

      An error response returned by the API.

      Hide errors attributes Show errors attributes object
      • message string Required

        A human-readable message of the error.

      • code string Required

        An identifier for this type of error.

  • 409 application/json

    Conflict

    Hide response attribute Show response attribute object
    • errors array[object] Required

      An error response returned by the API.

      Hide errors attributes Show errors attributes object
      • message string Required

        A human-readable message of the error.

      • code string Required

        An identifier for this type of error.

POST /api/v1/serverless/projects/elasticsearch/{id}/_reset-credentials
curl \
 --request POST 'https://api.elastic-cloud.com/api/v1/serverless/projects/elasticsearch/{id}/_reset-credentials' \
 --header "Authorization: $API_KEY" \
 --header "If-Match: string"
Response examples (200)
# Headers
ETag: string

# Payload
{
  "username": "admin",
  "password": "*****"
}
Response examples (404)
{
  "errors": [
    {
      "message": "Explicative error message",
      "code": "code.error"
    }
  ]
}
Response examples (409)
{
  "errors": [
    {
      "message": "Explicative error message",
      "code": "code.error"
    }
  ]
}








Get the status of an Elasticsearch project

GET /api/v1/serverless/projects/elasticsearch/{id}/status

The response indicates whether the project is initialized and ready to be used. The phase will change from "initializing" to "initialized" when the project is ready.

Path parameters

  • id string Required

    The ID of the project

    Format should match the following pattern: ^[a-z0-9]{32}$.

Responses

  • 200 application/json

    The requested Elasticsearch project status

    Hide response attribute Show response attribute object
    • phase string Required

      Current phase of the project:

      • initializing: the project is still being created and is not ready for use yet
      • initialized: the project has been created successfully and is ready for use

      Values are initializing or initialized.

  • 404 application/json

    Not Found

    Hide response attribute Show response attribute object
    • errors array[object] Required

      An error response returned by the API.

      Hide errors attributes Show errors attributes object
      • message string Required

        A human-readable message of the error.

      • code string Required

        An identifier for this type of error.

GET /api/v1/serverless/projects/elasticsearch/{id}/status
curl \
 --request GET 'https://api.elastic-cloud.com/api/v1/serverless/projects/elasticsearch/{id}/status' \
 --header "Authorization: $API_KEY"
Response examples (200)
{
  "phase": "initializing"
}
Response examples (404)
{
  "errors": [
    {
      "message": "Explicative error message",
      "code": "code.error"
    }
  ]
}

















Update an Observability project

PATCH /api/v1/serverless/projects/observability/{id}

Only the fields included in the body of the request will be updated.

Headers

  • If-Match string

    ETag value fetched in a previous GET project request. Used to prevent simultaneous updates

Path parameters

  • id string Required

    The ID of the project

    Format should match the following pattern: ^[a-z0-9]{32}$.

application/json

Body Required

The patched Observability project

  • name string

    Descriptive name for a project.

    Minimum length is 1, maximum length is 255.

  • alias string

    A custom domain label compatible with RFC-1035 standards. Derived from the project name by default.

    Minimum length is 1, maximum length is 50. Format should match the following pattern: ^[a-zA-Z]{1}(?:[a-zA-Z0-9-]*[a-zA-Z0-9]{1})?$.

Responses

  • 200 application/json

    The updated Observability project.

    Hide headers attribute Show headers attribute
    Hide response attributes Show response attributes object

    An Observability project.

    • id string Required

      ID of the project.

      Format should match the following pattern: ^[a-z0-9]{32}$.

    • name string Required

      Descriptive name for a project.

      Minimum length is 1, maximum length is 255.

    • alias string Required

      A custom domain label compatible with RFC-1035 standards. Derived from the project name by default.

      Minimum length is 1, maximum length is 50. Format should match the following pattern: ^[a-zA-Z]{1}(?:[a-zA-Z0-9-]*[a-zA-Z0-9]{1})?$.

    • region_id string Required

      Unique human-readable identifier for a region in Elastic Cloud.

    • metadata object Required

      Additional details about the project.

      Additional properties are allowed.

      Hide metadata attributes Show metadata attributes object
    • cloud_id string Required

      The cloud ID, an encoded string that provides other Elastic services with the necessary information to connect to this Elasticsearch and Kibana.

    • type string Required

      the type of the project

      Value is observability.

    • endpoints object Required

      The endpoints to access the different apps of the project.

      Additional properties are allowed.

      Hide endpoints attributes Show endpoints attributes object
      • elasticsearch string Required

        The endpoint to access elasticsearch.

      • kibana string Required

        The endpoint to access kibana.

      • apm string Required

        The endpoint to access apm.

      • ingest string Required

        The endpoint to access hosted otel collector.

  • 404 application/json

    Not Found

    Hide response attribute Show response attribute object
    • errors array[object] Required

      An error response returned by the API.

      Hide errors attributes Show errors attributes object
      • message string Required

        A human-readable message of the error.

      • code string Required

        An identifier for this type of error.

  • 409 application/json

    Conflict

    Hide response attribute Show response attribute object
    • errors array[object] Required

      An error response returned by the API.

      Hide errors attributes Show errors attributes object
      • message string Required

        A human-readable message of the error.

      • code string Required

        An identifier for this type of error.

  • 412 application/json

    Precondition failed

    Hide response attribute Show response attribute object
    • errors array[object] Required

      An error response returned by the API.

      Hide errors attributes Show errors attributes object
      • message string Required

        A human-readable message of the error.

      • code string Required

        An identifier for this type of error.

PATCH /api/v1/serverless/projects/observability/{id}
curl \
 --request PATCH 'https://api.elastic-cloud.com/api/v1/serverless/projects/observability/{id}' \
 --header "Authorization: $API_KEY" \
 --header "Content-Type: application/json" \
 --header "If-Match: string" \
 --data '{"name":"Example project"}'
Request example
{
  "name": "Example project"
}
Response examples (200)
# Headers
ETag: string

# Payload
{
  "id": "string",
  "name": "my project",
  "alias": "my-project-alias",
  "region_id": "aws-us-east-1",
  "metadata": {
    "created_at": "2025-05-04T09:42:00Z",
    "created_by": "1014289666002276",
    "organization_id": "198583657190",
    "suspended_at": "2025-05-04T09:42:00Z",
    "suspended_reason": "trial expired"
  },
  "cloud_id": "my_project:LmF3cy5lbGFzdG",
  "type": "observability",
  "endpoints": {
    "elasticsearch": "string",
    "kibana": "string",
    "apm": "string",
    "ingest": "string"
  }
}
Response examples (404)
{
  "errors": [
    {
      "message": "Explicative error message",
      "code": "code.error"
    }
  ]
}
Response examples (409)
{
  "errors": [
    {
      "message": "Explicative error message",
      "code": "code.error"
    }
  ]
}
Response examples (412)
{
  "errors": [
    {
      "message": "Explicative error message",
      "code": "code.error"
    }
  ]
}

Reset the project credentials

POST /api/v1/serverless/projects/observability/{id}/_reset-credentials

Retrieve new project credentials, invalidating the previous ones.

Headers

  • If-Match string

    ETag value fetched in a previous GET project request. Used to prevent simultaneous updates

Path parameters

  • id string Required

    The ID of the project

    Format should match the following pattern: ^[a-z0-9]{32}$.

Responses

  • 200 application/json

    The new project credentials.

    Hide headers attribute Show headers attribute
    Hide response attributes Show response attributes object
    • username string Required

      Basic auth username that can be used to access the Elasticsearch API.

    • password string Required

      Basic auth password that can be used to access the Elasticsearch API.

  • 404 application/json

    Not Found

    Hide response attribute Show response attribute object
    • errors array[object] Required

      An error response returned by the API.

      Hide errors attributes Show errors attributes object
      • message string Required

        A human-readable message of the error.

      • code string Required

        An identifier for this type of error.

  • 409 application/json

    Conflict

    Hide response attribute Show response attribute object
    • errors array[object] Required

      An error response returned by the API.

      Hide errors attributes Show errors attributes object
      • message string Required

        A human-readable message of the error.

      • code string Required

        An identifier for this type of error.

POST /api/v1/serverless/projects/observability/{id}/_reset-credentials
curl \
 --request POST 'https://api.elastic-cloud.com/api/v1/serverless/projects/observability/{id}/_reset-credentials' \
 --header "Authorization: $API_KEY" \
 --header "If-Match: string"
Response examples (200)
# Headers
ETag: string

# Payload
{
  "username": "admin",
  "password": "*****"
}
Response examples (404)
{
  "errors": [
    {
      "message": "Explicative error message",
      "code": "code.error"
    }
  ]
}
Response examples (409)
{
  "errors": [
    {
      "message": "Explicative error message",
      "code": "code.error"
    }
  ]
}

Resume Observability project

POST /api/v1/serverless/projects/observability/{id}/_resume

Resume a previously suspended Observability project. Projects can be automatically suspended after their trial period has expired.

Headers

  • If-Match string

    ETag value fetched in a previous GET project request. Used to prevent simultaneous updates.

Path parameters

  • id string Required

    The ID of the project

    Format should match the following pattern: ^[a-z0-9]{32}$.

Responses

  • Project resumption scheduled.

    Hide headers attribute Show headers attribute
  • 404 application/json

    Not Found

    Hide response attribute Show response attribute object
    • errors array[object] Required

      An error response returned by the API.

      Hide errors attributes Show errors attributes object
      • message string Required

        A human-readable message of the error.

      • code string Required

        An identifier for this type of error.

  • 409 application/json

    Conflict

    Hide response attribute Show response attribute object
    • errors array[object] Required

      An error response returned by the API.

      Hide errors attributes Show errors attributes object
      • message string Required

        A human-readable message of the error.

      • code string Required

        An identifier for this type of error.

  • 412 application/json

    Precondition failed

    Hide response attribute Show response attribute object
    • errors array[object] Required

      An error response returned by the API.

      Hide errors attributes Show errors attributes object
      • message string Required

        A human-readable message of the error.

      • code string Required

        An identifier for this type of error.

POST /api/v1/serverless/projects/observability/{id}/_resume
curl \
 --request POST 'https://api.elastic-cloud.com/api/v1/serverless/projects/observability/{id}/_resume' \
 --header "Authorization: $API_KEY" \
 --header "If-Match: string"
Response examples (404)
{
  "errors": [
    {
      "message": "Explicative error message",
      "code": "code.error"
    }
  ]
}
Response examples (409)
{
  "errors": [
    {
      "message": "Explicative error message",
      "code": "code.error"
    }
  ]
}
Response examples (412)
{
  "errors": [
    {
      "message": "Explicative error message",
      "code": "code.error"
    }
  ]
}

Get roles for an Observability project

GET /api/v1/serverless/projects/observability/{id}/roles

Retrieve the custom roles defined for an Observability project.

Path parameters

  • id string Required

    The ID of the project

    Format should match the following pattern: ^[a-z0-9]{32}$.

Responses

  • 200 application/json

    The requested roles

    Hide headers attribute Show headers attribute
    Hide response attribute Show response attribute object
    • * object Additional properties

      Additional properties are allowed.

      Hide * attribute Show * attribute object
      • roles array[object]

        Roles of a serverless project.

        Hide roles attributes Show roles attributes object
        • name string Required

          A role name for a particular project

        • description string Required

          A role description for a particular role

  • 404 application/json

    Not Found

    Hide response attribute Show response attribute object
    • errors array[object] Required

      An error response returned by the API.

      Hide errors attributes Show errors attributes object
      • message string Required

        A human-readable message of the error.

      • code string Required

        An identifier for this type of error.

GET /api/v1/serverless/projects/observability/{id}/roles
curl \
 --request GET 'https://api.elastic-cloud.com/api/v1/serverless/projects/observability/{id}/roles' \
 --header "Authorization: $API_KEY"
Response examples (200)
# Headers
ETag: string

# Payload
{
  "additionalProperty1": {
    "roles": [
      {
        "name": "string",
        "description": "string"
      }
    ]
  },
  "additionalProperty2": {
    "roles": [
      {
        "name": "string",
        "description": "string"
      }
    ]
  }
}
Response examples (404)
{
  "errors": [
    {
      "message": "Explicative error message",
      "code": "code.error"
    }
  ]
}

Get the status of an Observability project

GET /api/v1/serverless/projects/observability/{id}/status

The response indicates whether the project is initialized and ready to be used. The phase will change from "initializing" to "initialized" when the project is ready.

Path parameters

  • id string Required

    The ID of the project

    Format should match the following pattern: ^[a-z0-9]{32}$.

Responses

  • 200 application/json

    The requested Observability project status

    Hide response attribute Show response attribute object
    • phase string Required

      Current phase of the project:

      • initializing: the project is still being created and is not ready for use yet
      • initialized: the project has been created successfully and is ready for use

      Values are initializing or initialized.

  • 404 application/json

    Not Found

    Hide response attribute Show response attribute object
    • errors array[object] Required

      An error response returned by the API.

      Hide errors attributes Show errors attributes object
      • message string Required

        A human-readable message of the error.

      • code string Required

        An identifier for this type of error.

GET /api/v1/serverless/projects/observability/{id}/status
curl \
 --request GET 'https://api.elastic-cloud.com/api/v1/serverless/projects/observability/{id}/status' \
 --header "Authorization: $API_KEY"
Response examples (200)
{
  "phase": "initializing"
}
Response examples (404)
{
  "errors": [
    {
      "message": "Explicative error message",
      "code": "code.error"
    }
  ]
}

security projects

Management of Security projects

Get Security projects

GET /api/v1/serverless/projects/security

The number of projects included can be configured with page_size. Consecutive calls can be made to retrieve next pages by providing a token.

Query parameters

  • page_size integer

    Maximum number of projects returned in the response.

    Minimum value is 0.

  • Token to the next page containing the list of projects.

Responses

  • 200 application/json

    The Security project list

    Hide response attributes Show response attributes object
    • A token to fetch the next page.

    • items array[object] Required

      The actual projects.

      A Security project.

      Hide items attributes Show items attributes object

      A Security project.

      • id string Required

        ID of the project.

        Format should match the following pattern: ^[a-z0-9]{32}$.

      • name string Required

        Descriptive name for a project.

        Minimum length is 1, maximum length is 255.

      • alias string Required

        A custom domain label compatible with RFC-1035 standards. Derived from the project name by default.

        Minimum length is 1, maximum length is 50. Format should match the following pattern: ^[a-zA-Z]{1}(?:[a-zA-Z0-9-]*[a-zA-Z0-9]{1})?$.

      • region_id string Required

        Unique human-readable identifier for a region in Elastic Cloud.

      • metadata object Required

        Additional details about the project.

        Additional properties are allowed.

        Hide metadata attributes Show metadata attributes object
      • cloud_id string Required

        The cloud ID, an encoded string that provides other Elastic services with the necessary information to connect to this Elasticsearch and Kibana.

      • type string Required

        the type of the project

        Value is security.

      • endpoints object Required

        The endpoints to access the different apps of the project.

        Additional properties are allowed.

        Hide endpoints attributes Show endpoints attributes object
        • elasticsearch string Required

          The endpoint to access elasticsearch.

        • kibana string Required

          The endpoint to access kibana.

      • Configuration for the entire set of capabilities that make the data searchable in Security.

        Additional properties are allowed.

        Hide search_lake attribute Show search_lake attribute object
        • data_retention object | null

          Configuration to control the data retention in Elasticsearch data streams.

          Additional properties are allowed.

          Hide data_retention attributes Show data_retention attributes object | null
          • max_retention_days integer | null

            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.

            Minimum value is 7, maximum value is 3681.

          • 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.

            Minimum value is 7, maximum value is 3681.

      • admin features package (BYOK, BYOIDP, CCS, CCR)

        Values are standard or enterprise.

      • product_types array[object]

        Defines Security product type object with product line and tier dimensions.

        At least 1 but not more than 3 elements. Default value is [{"product_line"=>"security", "product_tier"=>"complete"}, {"product_line"=>"cloud", "product_tier"=>"complete"}, {"product_line"=>"endpoint", "product_tier"=>"complete"}].

        Hide product_types attributes Show product_types attributes object
        • product_line string Required

          The identifier of the Security Solution product line.

          Values are security, cloud, or endpoint.

        • product_tier string Required

          The identifier of the Security Solution product tier.

          Values are complete or essentials.

  • 401 application/json

    Unauthorized

    Hide response attribute Show response attribute object
    • errors array[object] Required

      An error response returned by the API.

      Hide errors attributes Show errors attributes object
      • message string Required

        A human-readable message of the error.

      • code string Required

        An identifier for this type of error.

GET /api/v1/serverless/projects/security
curl \
 --request GET 'https://api.elastic-cloud.com/api/v1/serverless/projects/security' \
 --header "Authorization: $API_KEY"
Response examples (200)
{
  "next_page": "string",
  "items": [
    {
      "id": "string",
      "name": "my project",
      "alias": "my-project-alias",
      "region_id": "aws-us-east-1",
      "metadata": {
        "created_at": "2025-05-04T09:42:00Z",
        "created_by": "1014289666002276",
        "organization_id": "198583657190",
        "suspended_at": "2025-05-04T09:42:00Z",
        "suspended_reason": "trial expired"
      },
      "cloud_id": "my_project:LmF3cy5lbGFzdG",
      "type": "security",
      "endpoints": {
        "elasticsearch": "string",
        "kibana": "string"
      },
      "search_lake": {
        "data_retention": {
          "max_retention_days": 42,
          "default_retention_days": 42
        }
      },
      "admin_features_package": "standard",
      "product_types": [
        {
          "product_line": "security",
          "product_tier": "complete"
        }
      ]
    }
  ]
}
Response examples (401)
{
  "errors": [
    {
      "message": "Explicative error message",
      "code": "code.error"
    }
  ]
}

Create a security project

POST /api/v1/serverless/projects/security

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.

application/json

Body Required

Configuration of the security project to create.

  • name string Required

    Descriptive name for a project.

    Minimum length is 1, maximum length is 255.

  • alias string

    A custom domain label compatible with RFC-1035 standards. Derived from the project name by default.

    Minimum length is 1, maximum length is 50. Format should match the following pattern: ^[a-zA-Z]{1}(?:[a-zA-Z0-9-]*[a-zA-Z0-9]{1})?$.

  • region_id string Required

    Unique human-readable identifier for a region in Elastic Cloud.

  • admin features package (BYOK, BYOIDP, CCS, CCR)

    Values are standard or enterprise.

  • product_types array[object]

    Defines Security product type object with product line and tier dimensions.

    At least 1 but not more than 3 elements. Default value is [{"product_line"=>"security", "product_tier"=>"complete"}, {"product_line"=>"cloud", "product_tier"=>"complete"}, {"product_line"=>"endpoint", "product_tier"=>"complete"}].

    Hide product_types attributes Show product_types attributes object
    • product_line string Required

      The identifier of the Security Solution product line.

      Values are security, cloud, or endpoint.

    • product_tier string Required

      The identifier of the Security Solution product tier.

      Values are complete or essentials.

  • Configuration for the entire set of capabilities that make the data searchable in Security.

    Additional properties are allowed.

    Hide search_lake attribute Show search_lake attribute object
    • data_retention object | null

      Configuration to control the data retention in Elasticsearch data streams.

      Additional properties are allowed.

      Hide data_retention attributes Show data_retention attributes object | null
      • max_retention_days integer | null

        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.

        Minimum value is 7, maximum value is 3681.

      • 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.

        Minimum value is 7, maximum value is 3681.

Responses

  • 201 application/json

    The created security project.

    Hide headers attribute Show headers attribute
    Hide response attributes Show response attributes object

    The created Security project along with credentials to access Elasticsearch.

    • id string Required

      ID of the project.

      Format should match the following pattern: ^[a-z0-9]{32}$.

    • name string Required

      Descriptive name for a project.

      Minimum length is 1, maximum length is 255.

    • alias string Required

      A custom domain label compatible with RFC-1035 standards. Derived from the project name by default.

      Minimum length is 1, maximum length is 50. Format should match the following pattern: ^[a-zA-Z]{1}(?:[a-zA-Z0-9-]*[a-zA-Z0-9]{1})?$.

    • region_id string Required

      Unique human-readable identifier for a region in Elastic Cloud.

    • metadata object Required

      Additional details about the project.

      Additional properties are allowed.

      Hide metadata attributes Show metadata attributes object
    • cloud_id string Required

      The cloud ID, an encoded string that provides other Elastic services with the necessary information to connect to this Elasticsearch and Kibana.

    • type string Required

      the type of the project

      Value is security.

    • endpoints object Required

      The endpoints to access the different apps of the project.

      Additional properties are allowed.

      Hide endpoints attributes Show endpoints attributes object
      • elasticsearch string Required

        The endpoint to access elasticsearch.

      • kibana string Required

        The endpoint to access kibana.

    • Configuration for the entire set of capabilities that make the data searchable in Security.

      Additional properties are allowed.

      Hide search_lake attribute Show search_lake attribute object
      • data_retention object | null

        Configuration to control the data retention in Elasticsearch data streams.

        Additional properties are allowed.

        Hide data_retention attributes Show data_retention attributes object | null
        • max_retention_days integer | null

          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.

          Minimum value is 7, maximum value is 3681.

        • 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.

          Minimum value is 7, maximum value is 3681.

    • admin features package (BYOK, BYOIDP, CCS, CCR)

      Values are standard or enterprise.

    • product_types array[object]

      Defines Security product type object with product line and tier dimensions.

      At least 1 but not more than 3 elements. Default value is [{"product_line"=>"security", "product_tier"=>"complete"}, {"product_line"=>"cloud", "product_tier"=>"complete"}, {"product_line"=>"endpoint", "product_tier"=>"complete"}].

      Hide product_types attributes Show product_types attributes object
      • product_line string Required

        The identifier of the Security Solution product line.

        Values are security, cloud, or endpoint.

      • product_tier string Required

        The identifier of the Security Solution product tier.

        Values are complete or essentials.

    • credentials object Required

      Basic auth credentials to access the Elasticsearch API.

      Additional properties are allowed.

      Hide credentials attributes Show credentials attributes object
      • username string Required

        Basic auth username that can be used to access the Elasticsearch API.

      • password string Required

        Basic auth password that can be used to access the Elasticsearch API.

  • 400 application/json

    Bad request

    Hide response attribute Show response attribute object
    • errors array[object] Required

      An error response returned by the API.

      Hide errors attributes Show errors attributes object
      • message string Required

        A human-readable message of the error.

      • code string Required

        An identifier for this type of error.

  • 422 application/json

    Unprocessable entity

    Hide response attribute Show response attribute object
    • errors array[object] Required

      An error response returned by the API.

      Hide errors attributes Show errors attributes object
      • message string Required

        A human-readable message of the error.

      • code string Required

        An identifier for this type of error.

POST /api/v1/serverless/projects/security
curl \
 --request POST 'https://api.elastic-cloud.com/api/v1/serverless/projects/security' \
 --header "Authorization: $API_KEY" \
 --header "Content-Type: application/json" \
 --data '{"name":"Example project","region_id":"aws-us-east-1"}'
Request example
{
  "name": "Example project",
  "region_id": "aws-us-east-1"
}
Response examples (201)
# Headers
ETag: string

# Payload
{
  "id": "string",
  "name": "my project",
  "alias": "my-project-alias",
  "region_id": "aws-us-east-1",
  "metadata": {
    "created_at": "2025-05-04T09:42:00Z",
    "created_by": "1014289666002276",
    "organization_id": "198583657190",
    "suspended_at": "2025-05-04T09:42:00Z",
    "suspended_reason": "trial expired"
  },
  "cloud_id": "my_project:LmF3cy5lbGFzdG",
  "type": "security",
  "endpoints": {
    "elasticsearch": "string",
    "kibana": "string"
  },
  "search_lake": {
    "data_retention": {
      "max_retention_days": 42,
      "default_retention_days": 42
    }
  },
  "admin_features_package": "standard",
  "product_types": [
    {
      "product_line": "security",
      "product_tier": "complete"
    }
  ],
  "credentials": {
    "username": "admin",
    "password": "*****"
  }
}
Response examples (400)
{
  "errors": [
    {
      "message": "Explicative error message",
      "code": "code.error"
    }
  ]
}
Response examples (422)
{
  "errors": [
    {
      "message": "Explicative error message",
      "code": "code.error"
    }
  ]
}












Reset the project credentials

POST /api/v1/serverless/projects/security/{id}/_reset-credentials

Retrieve new project credentials, invalidating the previous ones.

Headers

  • If-Match string

    ETag value fetched in a previous GET project request. Used to prevent simultaneous updates

Path parameters

  • id string Required

    The ID of the project

    Format should match the following pattern: ^[a-z0-9]{32}$.

Responses

  • 200 application/json

    The new project credentials.

    Hide headers attribute Show headers attribute
    Hide response attributes Show response attributes object
    • username string Required

      Basic auth username that can be used to access the Elasticsearch API.

    • password string Required

      Basic auth password that can be used to access the Elasticsearch API.

  • 404 application/json

    Not Found

    Hide response attribute Show response attribute object
    • errors array[object] Required

      An error response returned by the API.

      Hide errors attributes Show errors attributes object
      • message string Required

        A human-readable message of the error.

      • code string Required

        An identifier for this type of error.

  • 409 application/json

    Conflict

    Hide response attribute Show response attribute object
    • errors array[object] Required

      An error response returned by the API.

      Hide errors attributes Show errors attributes object
      • message string Required

        A human-readable message of the error.

      • code string Required

        An identifier for this type of error.

POST /api/v1/serverless/projects/security/{id}/_reset-credentials
curl \
 --request POST 'https://api.elastic-cloud.com/api/v1/serverless/projects/security/{id}/_reset-credentials' \
 --header "Authorization: $API_KEY" \
 --header "If-Match: string"
Response examples (200)
# Headers
ETag: string

# Payload
{
  "username": "admin",
  "password": "*****"
}
Response examples (404)
{
  "errors": [
    {
      "message": "Explicative error message",
      "code": "code.error"
    }
  ]
}
Response examples (409)
{
  "errors": [
    {
      "message": "Explicative error message",
      "code": "code.error"
    }
  ]
}