Docs

Projects

GET
/v1/projects

Retrieve all projects.

AuthorizationBearer <token>

API key for authentication, must be provided as a Bearer token. Generate an API key at https://alien.dev/api-keys

In: header

Query Parameters

workspace?string

Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.

Match^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$
Length4 <= length <= 100
search?string

Search projects by name

include?array<>

Optional fields to include: deploymentCount, latestRelease

limit?integer

Maximum number of items to return per page

Range1 <= value <= 100
Default20
cursor?string

Cursor for pagination - omit for first page

Response Body

application/json

application/json

curl -X GET "https://example.com/v1/projects"
{  "items": [    {      "id": "prj_mcytp6z3j91f7tn5ryqsfwtr",      "name": "my-app",      "gitRepository": {        "type": "github",        "repo": "alien/my-agent"      },      "rootDirectory": "string",      "deploymentPortalAppearance": {        "avatarUrl": "http://example.com",        "preset": "clean",        "accentColor": "blue",        "title": "string",        "subtitle": "string",        "supportUrl": "http://example.com",        "docsUrl": "http://example.com",        "density": "comfortable"      },      "packagesConfig": {        "cli": {          "binaryTargets": [            "windows-x64"          ],          "displayName": "string",          "name": "string",          "enabled": true        },        "cloudformation": {          "enabled": true,          "displayName": "string"        },        "operatorImage": {          "brand": "string",          "displayName": "string",          "envPrefix": "string",          "labelDomain": "string",          "name": "string",          "enabled": true        },        "helm": {          "chartName": "string",          "description": "string",          "enabled": true        },        "terraform": {          "enabled": true,          "displayName": "string"        }      },      "domainId": "dom_469m0agk8luj4s16sakmmpdd",      "defaultManagers": {        "aws": "mgr_enxscjrqiiu2lrc672hwwuc5",        "gcp": "mgr_enxscjrqiiu2lrc672hwwuc5",        "azure": "mgr_enxscjrqiiu2lrc672hwwuc5",        "kubernetes": "mgr_enxscjrqiiu2lrc672hwwuc5",        "machines": "mgr_enxscjrqiiu2lrc672hwwuc5",        "local": "mgr_enxscjrqiiu2lrc672hwwuc5"      },      "projectCapabilities": null,      "createdAt": "2019-08-24T14:15:22Z",      "workspaceId": "ws_It13CUaGEhLLAB87simX0",      "deploymentCount": 0,      "latestRelease": {        "id": "rel_WbhQgksrawSKIpEN0NAssHX9",        "gitMetadata": {          "commitSha": "dc36199b2234c6586ebe05ec94078a895c707e29",          "commitMessage": "add method to measure Interaction to Next Paint (INP) (#36490)",          "commitRef": "main",          "commitDate": "2026-03-16T12:00:00Z",          "dirty": true,          "remoteUrl": "https://github.com/alienplatform/alien",          "commitAuthorName": "John Doe",          "commitAuthorEmail": "john@example.com",          "commitAuthorLogin": "johndoe",          "commitAuthorAvatarUrl": "https://github.com/johndoe.png",          "provider": {            "type": "github",            "org": "string",            "repo": "string"          }        },        "createdAt": "2019-08-24T14:15:22Z"      }    }  ],  "nextCursor": "string"}
POST
/v1/projects

Create a new project.

AuthorizationBearer <token>

API key for authentication, must be provided as a Bearer token. Generate an API key at https://alien.dev/api-keys

In: header

Query Parameters

workspace?string

Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.

Match^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$
Length4 <= length <= 100

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/v1/projects" \  -H "Content-Type: application/json" \  -d '{    "name": "my-app"  }'
{  "id": "prj_mcytp6z3j91f7tn5ryqsfwtr",  "name": "my-app",  "gitRepository": {    "type": "github",    "repo": "alien/my-agent"  },  "rootDirectory": "string",  "deploymentPortalAppearance": {    "avatarUrl": "http://example.com",    "preset": "clean",    "accentColor": "blue",    "title": "string",    "subtitle": "string",    "supportUrl": "http://example.com",    "docsUrl": "http://example.com",    "density": "comfortable"  },  "packagesConfig": {    "cli": {      "binaryTargets": [        "windows-x64"      ],      "displayName": "string",      "name": "string",      "enabled": true    },    "cloudformation": {      "enabled": true,      "displayName": "string"    },    "operatorImage": {      "brand": "string",      "displayName": "string",      "envPrefix": "string",      "labelDomain": "string",      "name": "string",      "enabled": true    },    "helm": {      "chartName": "string",      "description": "string",      "enabled": true    },    "terraform": {      "enabled": true,      "displayName": "string"    }  },  "domainId": "dom_469m0agk8luj4s16sakmmpdd",  "defaultManagers": {    "aws": "mgr_enxscjrqiiu2lrc672hwwuc5",    "gcp": "mgr_enxscjrqiiu2lrc672hwwuc5",    "azure": "mgr_enxscjrqiiu2lrc672hwwuc5",    "kubernetes": "mgr_enxscjrqiiu2lrc672hwwuc5",    "machines": "mgr_enxscjrqiiu2lrc672hwwuc5",    "local": "mgr_enxscjrqiiu2lrc672hwwuc5"  },  "projectCapabilities": null,  "createdAt": "2019-08-24T14:15:22Z",  "workspaceId": "ws_It13CUaGEhLLAB87simX0",  "githubSetup": {    "pullRequestUrl": "http://example.com",    "workflowUrl": "http://example.com"  },  "gitRepositoryWarning": {    "code": "string",    "message": "string",    "source": null,    "retryable": false,    "context": null,    "hint": "string",    "httpStatusCode": 100,    "internal": true,    "requestId": "string"  }}
GET
/v1/projects/{idOrName}

Retrieve a project by ID or name.

AuthorizationBearer <token>

API key for authentication, must be provided as a Bearer token. Generate an API key at https://alien.dev/api-keys

In: header

Path Parameters

idOrName*string

Project ID or name.

Lengthlength <= 100

Query Parameters

workspace?string

Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.

Match^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$
Length4 <= length <= 100

Response Body

application/json

application/json

application/json

curl -X GET "https://example.com/v1/projects/my-project"
{  "id": "prj_mcytp6z3j91f7tn5ryqsfwtr",  "name": "my-app",  "gitRepository": {    "type": "github",    "repo": "alien/my-agent"  },  "rootDirectory": "string",  "deploymentPortalAppearance": {    "avatarUrl": "http://example.com",    "preset": "clean",    "accentColor": "blue",    "title": "string",    "subtitle": "string",    "supportUrl": "http://example.com",    "docsUrl": "http://example.com",    "density": "comfortable"  },  "packagesConfig": {    "cli": {      "binaryTargets": [        "windows-x64"      ],      "displayName": "string",      "name": "string",      "enabled": true    },    "cloudformation": {      "enabled": true,      "displayName": "string"    },    "operatorImage": {      "brand": "string",      "displayName": "string",      "envPrefix": "string",      "labelDomain": "string",      "name": "string",      "enabled": true    },    "helm": {      "chartName": "string",      "description": "string",      "enabled": true    },    "terraform": {      "enabled": true,      "displayName": "string"    }  },  "domainId": "dom_469m0agk8luj4s16sakmmpdd",  "defaultManagers": {    "aws": "mgr_enxscjrqiiu2lrc672hwwuc5",    "gcp": "mgr_enxscjrqiiu2lrc672hwwuc5",    "azure": "mgr_enxscjrqiiu2lrc672hwwuc5",    "kubernetes": "mgr_enxscjrqiiu2lrc672hwwuc5",    "machines": "mgr_enxscjrqiiu2lrc672hwwuc5",    "local": "mgr_enxscjrqiiu2lrc672hwwuc5"  },  "projectCapabilities": null,  "createdAt": "2019-08-24T14:15:22Z",  "workspaceId": "ws_It13CUaGEhLLAB87simX0"}
PATCH
/v1/projects/{idOrName}

Update a project.

AuthorizationBearer <token>

API key for authentication, must be provided as a Bearer token. Generate an API key at https://alien.dev/api-keys

In: header

Path Parameters

idOrName*string

Project ID or name.

Lengthlength <= 100

Query Parameters

workspace?string

Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.

Match^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$
Length4 <= length <= 100

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

curl -X PATCH "https://example.com/v1/projects/my-project" \  -H "Content-Type: application/json" \  -d '{}'
{  "id": "prj_mcytp6z3j91f7tn5ryqsfwtr",  "name": "my-app",  "gitRepository": {    "type": "github",    "repo": "alien/my-agent"  },  "rootDirectory": "string",  "deploymentPortalAppearance": {    "avatarUrl": "http://example.com",    "preset": "clean",    "accentColor": "blue",    "title": "string",    "subtitle": "string",    "supportUrl": "http://example.com",    "docsUrl": "http://example.com",    "density": "comfortable"  },  "packagesConfig": {    "cli": {      "binaryTargets": [        "windows-x64"      ],      "displayName": "string",      "name": "string",      "enabled": true    },    "cloudformation": {      "enabled": true,      "displayName": "string"    },    "operatorImage": {      "brand": "string",      "displayName": "string",      "envPrefix": "string",      "labelDomain": "string",      "name": "string",      "enabled": true    },    "helm": {      "chartName": "string",      "description": "string",      "enabled": true    },    "terraform": {      "enabled": true,      "displayName": "string"    }  },  "domainId": "dom_469m0agk8luj4s16sakmmpdd",  "defaultManagers": {    "aws": "mgr_enxscjrqiiu2lrc672hwwuc5",    "gcp": "mgr_enxscjrqiiu2lrc672hwwuc5",    "azure": "mgr_enxscjrqiiu2lrc672hwwuc5",    "kubernetes": "mgr_enxscjrqiiu2lrc672hwwuc5",    "machines": "mgr_enxscjrqiiu2lrc672hwwuc5",    "local": "mgr_enxscjrqiiu2lrc672hwwuc5"  },  "projectCapabilities": null,  "createdAt": "2019-08-24T14:15:22Z",  "workspaceId": "ws_It13CUaGEhLLAB87simX0"}
DELETE
/v1/projects/{idOrName}

Delete a project. The project must have no deployments.

AuthorizationBearer <token>

API key for authentication, must be provided as a Bearer token. Generate an API key at https://alien.dev/api-keys

In: header

Path Parameters

idOrName*string

Project ID or name.

Lengthlength <= 100

Query Parameters

workspace?string

Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.

Match^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$
Length4 <= length <= 100

Response Body

application/json

application/json

application/json

curl -X DELETE "https://example.com/v1/projects/my-project"
Empty
GET
/v1/projects/{idOrName}/gcp-oauth-provider

Retrieve redacted project-level Google Cloud OAuth provider settings.

AuthorizationBearer <token>

API key for authentication, must be provided as a Bearer token. Generate an API key at https://alien.dev/api-keys

In: header

Path Parameters

idOrName*string

Project ID or name.

Lengthlength <= 100

Query Parameters

workspace?string

Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.

Match^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$
Length4 <= length <= 100

Response Body

application/json

application/json

application/json

curl -X GET "https://example.com/v1/projects/my-project/gcp-oauth-provider"
{  "mode": "alien-managed",  "redirectUris": [    "http://example.com"  ]}
PUT
/v1/projects/{idOrName}/gcp-oauth-provider

Update project-level Google Cloud OAuth provider settings.

AuthorizationBearer <token>

API key for authentication, must be provided as a Bearer token. Generate an API key at https://alien.dev/api-keys

In: header

Path Parameters

idOrName*string

Project ID or name.

Lengthlength <= 100

Query Parameters

workspace?string

Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.

Match^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$
Length4 <= length <= 100

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

curl -X PUT "https://example.com/v1/projects/my-project/gcp-oauth-provider" \  -H "Content-Type: application/json" \  -d '{    "mode": "alien-managed"  }'
{  "mode": "alien-managed",  "redirectUris": [    "http://example.com"  ]}
POST
/v1/projects/{idOrName}/source

Connect a GitHub repository or Alien template to an existing project and configure its release workflow.

AuthorizationBearer <token>

API key for authentication, must be provided as a Bearer token. Generate an API key at https://alien.dev/api-keys

In: header

Path Parameters

idOrName*string

Project ID or name.

Lengthlength <= 100

Query Parameters

workspace?string

Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.

Match^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$
Length4 <= length <= 100

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/v1/projects/my-project/source" \  -H "Content-Type: application/json" \  -d '{    "mode": "repository",    "gitRepository": {      "type": "github",      "repo": "alien/my-agent"    }  }'
{  "id": "prj_mcytp6z3j91f7tn5ryqsfwtr",  "name": "my-app",  "gitRepository": {    "type": "github",    "repo": "alien/my-agent"  },  "rootDirectory": "string",  "deploymentPortalAppearance": {    "avatarUrl": "http://example.com",    "preset": "clean",    "accentColor": "blue",    "title": "string",    "subtitle": "string",    "supportUrl": "http://example.com",    "docsUrl": "http://example.com",    "density": "comfortable"  },  "packagesConfig": {    "cli": {      "binaryTargets": [        "windows-x64"      ],      "displayName": "string",      "name": "string",      "enabled": true    },    "cloudformation": {      "enabled": true,      "displayName": "string"    },    "operatorImage": {      "brand": "string",      "displayName": "string",      "envPrefix": "string",      "labelDomain": "string",      "name": "string",      "enabled": true    },    "helm": {      "chartName": "string",      "description": "string",      "enabled": true    },    "terraform": {      "enabled": true,      "displayName": "string"    }  },  "domainId": "dom_469m0agk8luj4s16sakmmpdd",  "defaultManagers": {    "aws": "mgr_enxscjrqiiu2lrc672hwwuc5",    "gcp": "mgr_enxscjrqiiu2lrc672hwwuc5",    "azure": "mgr_enxscjrqiiu2lrc672hwwuc5",    "kubernetes": "mgr_enxscjrqiiu2lrc672hwwuc5",    "machines": "mgr_enxscjrqiiu2lrc672hwwuc5",    "local": "mgr_enxscjrqiiu2lrc672hwwuc5"  },  "projectCapabilities": null,  "createdAt": "2019-08-24T14:15:22Z",  "workspaceId": "ws_It13CUaGEhLLAB87simX0",  "githubSetup": {    "pullRequestUrl": "http://example.com",    "workflowUrl": "http://example.com"  },  "gitRepositoryWarning": {    "code": "string",    "message": "string",    "source": null,    "retryable": false,    "context": null,    "hint": "string",    "httpStatusCode": 100,    "internal": true,    "requestId": "string"  },  "template": {    "sourceRepository": "alienplatform/alien",    "forkRepository": "string",    "templatePath": "examples/customer-models-ts",    "resolvedRootDirectory": "string"  }}
GET
/v1/projects/{idOrName}/deployment-portal-domain

Get the deployment portal domain binding for a project.

AuthorizationBearer <token>

API key for authentication, must be provided as a Bearer token. Generate an API key at https://alien.dev/api-keys

In: header

Path Parameters

idOrName*string

Project ID or name.

Lengthlength <= 100

Query Parameters

workspace?string

Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.

Match^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$
Length4 <= length <= 100

Response Body

application/json

application/json

application/json

curl -X GET "https://example.com/v1/projects/my-project/deployment-portal-domain"
{  "deploymentPortalEndpoint": {    "id": "dend_1bb6gdvm1bs74acqkjstcgv",    "workspaceId": "ws_It13CUaGEhLLAB87simX0",    "domainId": "dom_469m0agk8luj4s16sakmmpdd",    "kind": "deployment_portal",    "owner": {      "type": "workspace",      "id": "string"    },    "hostname": "string",    "status": "waiting_for_domain",    "provider": "string",    "providerState": {      "property1": null,      "property2": null    },    "managedDnsRecords": [      {        "name": "string",        "type": "string",        "value": "string",        "ttl": 1      }    ],    "error": {      "code": "string",      "context": null,      "hint": "string",      "httpStatusCode": 100,      "internal": true,      "message": "string",      "retryable": false,      "source": null    },    "lockedAt": "2019-08-24T14:15:22Z",    "lockedBy": "string",    "retryAttempts": 0,    "nextStepAfter": "2019-08-24T14:15:22Z",    "createdAt": "2019-08-24T14:15:22Z",    "updatedAt": "2019-08-24T14:15:22Z"  },  "packageEndpoint": {    "id": "dend_1bb6gdvm1bs74acqkjstcgv",    "workspaceId": "ws_It13CUaGEhLLAB87simX0",    "domainId": "dom_469m0agk8luj4s16sakmmpdd",    "kind": "deployment_portal",    "owner": {      "type": "workspace",      "id": "string"    },    "hostname": "string",    "status": "waiting_for_domain",    "provider": "string",    "providerState": {      "property1": null,      "property2": null    },    "managedDnsRecords": [      {        "name": "string",        "type": "string",        "value": "string",        "ttl": 1      }    ],    "error": {      "code": "string",      "context": null,      "hint": "string",      "httpStatusCode": 100,      "internal": true,      "message": "string",      "retryable": false,      "source": null    },    "lockedAt": "2019-08-24T14:15:22Z",    "lockedBy": "string",    "retryAttempts": 0,    "nextStepAfter": "2019-08-24T14:15:22Z",    "createdAt": "2019-08-24T14:15:22Z",    "updatedAt": "2019-08-24T14:15:22Z"  }}
POST
/v1/projects/import-template

Create a project by forking alienplatform/alien into your namespace, then configuring GitHub Actions.

AuthorizationBearer <token>

API key for authentication, must be provided as a Bearer token. Generate an API key at https://alien.dev/api-keys

In: header

Query Parameters

workspace?string

Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.

Match^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$
Length4 <= length <= 100

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/v1/projects/import-template" \  -H "Content-Type: application/json" \  -d '{    "name": "my-app",    "targetNamespace": "string",    "templatePath": "examples/customer-models-ts"  }'
{  "id": "prj_mcytp6z3j91f7tn5ryqsfwtr",  "name": "my-app",  "gitRepository": {    "type": "github",    "repo": "alien/my-agent"  },  "rootDirectory": "string",  "deploymentPortalAppearance": {    "avatarUrl": "http://example.com",    "preset": "clean",    "accentColor": "blue",    "title": "string",    "subtitle": "string",    "supportUrl": "http://example.com",    "docsUrl": "http://example.com",    "density": "comfortable"  },  "packagesConfig": {    "cli": {      "binaryTargets": [        "windows-x64"      ],      "displayName": "string",      "name": "string",      "enabled": true    },    "cloudformation": {      "enabled": true,      "displayName": "string"    },    "operatorImage": {      "brand": "string",      "displayName": "string",      "envPrefix": "string",      "labelDomain": "string",      "name": "string",      "enabled": true    },    "helm": {      "chartName": "string",      "description": "string",      "enabled": true    },    "terraform": {      "enabled": true,      "displayName": "string"    }  },  "domainId": "dom_469m0agk8luj4s16sakmmpdd",  "defaultManagers": {    "aws": "mgr_enxscjrqiiu2lrc672hwwuc5",    "gcp": "mgr_enxscjrqiiu2lrc672hwwuc5",    "azure": "mgr_enxscjrqiiu2lrc672hwwuc5",    "kubernetes": "mgr_enxscjrqiiu2lrc672hwwuc5",    "machines": "mgr_enxscjrqiiu2lrc672hwwuc5",    "local": "mgr_enxscjrqiiu2lrc672hwwuc5"  },  "projectCapabilities": null,  "createdAt": "2019-08-24T14:15:22Z",  "workspaceId": "ws_It13CUaGEhLLAB87simX0",  "githubSetup": {    "pullRequestUrl": "http://example.com",    "workflowUrl": "http://example.com"  },  "gitRepositoryWarning": {    "code": "string",    "message": "string",    "source": null,    "retryable": false,    "context": null,    "hint": "string",    "httpStatusCode": 100,    "internal": true,    "requestId": "string"  },  "template": {    "sourceRepository": "alienplatform/alien",    "forkRepository": "string",    "templatePath": "examples/customer-models-ts",    "resolvedRootDirectory": "string"  }}
GET
/v1/projects/{idOrName}/template-urls

Get template URLs for deploying setup stacks in this project.

AuthorizationBearer <token>

API key for authentication, must be provided as a Bearer token. Generate an API key at https://alien.dev/api-keys

In: header

Path Parameters

idOrName*string

Project ID or name.

Lengthlength <= 100

Query Parameters

workspace?string

Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.

Match^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$
Length4 <= length <= 100

Response Body

application/json

application/json

application/json

curl -X GET "https://example.com/v1/projects/my-project/template-urls"
{  "aws": {    "templateUrl": "http://example.com",    "launchStackUrl": "http://example.com"  }}
GET
/v1/projects/{idOrName}/deployment-link-setup

Get the active release stack and portal-visible setup availability for deployment-link configuration.

AuthorizationBearer <token>

API key for authentication, must be provided as a Bearer token. Generate an API key at https://alien.dev/api-keys

In: header

Path Parameters

idOrName*string

Project ID or name.

Lengthlength <= 100

Query Parameters

workspace?string

Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.

Match^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$
Length4 <= length <= 100

Response Body

application/json

application/json

application/json

curl -X GET "https://example.com/v1/projects/my-project/deployment-link-setup"
{  "activeRelease": {    "id": "rel_WbhQgksrawSKIpEN0NAssHX9",    "version": "string",    "stack": {      "aws": null,      "gcp": null,      "azure": null,      "kubernetes": null,      "machines": null,      "local": null,      "test": null    }  },  "supportedPlatforms": [    "aws"  ],  "setupItems": [    "deployment"  ],  "visiblePackageTypes": [    "cli"  ],  "visibleSetupMethods": [    "cloudformation"  ],  "setupPackagesStatus": "preparing"}
GET
/v1/projects/{idOrName}/active-release

Get the production channel's current release. When deploymentId is provided, returns that deployment's effective release: its pin, or its followed channel's current release.

AuthorizationBearer <token>

API key for authentication, must be provided as a Bearer token. Generate an API key at https://alien.dev/api-keys

In: header

Path Parameters

idOrName*string

Project ID or name.

Lengthlength <= 100

Query Parameters

workspace?string

Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.

Match^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$
Length4 <= length <= 100
deploymentId?string

Optional deployment ID to check for pinned release

Response Body

application/json

application/json

application/json

curl -X GET "https://example.com/v1/projects/my-project/active-release"
null
POST
/v1/projects/{idOrName}/project-capabilities/models/impact

Preview which customer model connections a configuration change may affect.

AuthorizationBearer <token>

API key for authentication, must be provided as a Bearer token. Generate an API key at https://alien.dev/api-keys

In: header

Path Parameters

idOrName*string

Project ID or name.

Lengthlength <= 100

Query Parameters

workspace?string

Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.

Match^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$
Length4 <= length <= 100

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

curl -X POST "https://example.com/v1/projects/my-project/project-capabilities/models/impact" \  -H "Content-Type: application/json" \  -d '{    "requirements": [      {        "publicModelId": "string",        "clientApis": [          "openai-chat"        ],        "required": true      }    ]  }'
{  "connectedCustomers": 0,  "affectedCustomers": 0,  "verificationNeeded": 0,  "affected": [    {      "deploymentGroupId": "string",      "name": "string",      "externalId": "string",      "provider": "string",      "reason": "provider-no-longer-compatible"    }  ],  "truncated": true}
PUT
/v1/projects/{idOrName}/project-capabilities

Set the capabilities offered by a Project. Removing a capability prevents new setup without deleting existing customer resources.

AuthorizationBearer <token>

API key for authentication, must be provided as a Bearer token. Generate an API key at https://alien.dev/api-keys

In: header

Path Parameters

idOrName*string

Project ID or name.

Lengthlength <= 100

Query Parameters

workspace?string

Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.

Match^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$
Length4 <= length <= 100

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

curl -X PUT "https://example.com/v1/projects/my-project/project-capabilities" \  -H "Content-Type: application/json" \  -d '{    "enabled": [      "deployments"    ]  }'
{  "schemaVersion": 1,  "capabilities": {    "deployments": {      "enabled": true,      "methods": [        "framework"      ]    },    "keys": {      "enabled": true,      "applicationEncryption": true    },    "models": {      "enabled": true,      "allowedProviders": [        "aws-bedrock"      ],      "requirements": [        {          "publicModelId": "string",          "clientApis": [            "openai-chat"          ],          "required": true        }      ]    },    "buckets": {      "enabled": true,      "access": "read-write"    },    "registry": {      "enabled": true,      "repositories": [        "string"      ],      "credentialPolicy": "pull-only"    }  }}
PUT
/v1/projects/{idOrName}/project-capabilities/deployments

Enable deployments for a Project.

AuthorizationBearer <token>

API key for authentication, must be provided as a Bearer token. Generate an API key at https://alien.dev/api-keys

In: header

Path Parameters

idOrName*string

Project ID or name.

Lengthlength <= 100

Query Parameters

workspace?string

Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.

Match^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$
Length4 <= length <= 100

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

curl -X PUT "https://example.com/v1/projects/my-project/project-capabilities/deployments" \  -H "Content-Type: application/json" \  -d '{    "enabled": true,    "methods": [      "framework"    ]  }'
{  "schemaVersion": 1,  "capabilities": {    "deployments": {      "enabled": true,      "methods": [        "framework"      ]    },    "keys": {      "enabled": true,      "applicationEncryption": true    },    "models": {      "enabled": true,      "allowedProviders": [        "aws-bedrock"      ],      "requirements": [        {          "publicModelId": "string",          "clientApis": [            "openai-chat"          ],          "required": true        }      ]    },    "buckets": {      "enabled": true,      "access": "read-write"    },    "registry": {      "enabled": true,      "repositories": [        "string"      ],      "credentialPolicy": "pull-only"    }  }}
GET
/v1/projects/{idOrName}/ai-provider-headers

Get static headers added to AI requests for each provider.

AuthorizationBearer <token>

API key for authentication, must be provided as a Bearer token. Generate an API key at https://alien.dev/api-keys

In: header

Path Parameters

idOrName*string

Project ID or name.

Lengthlength <= 100

Query Parameters

workspace?string

Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.

Match^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$
Length4 <= length <= 100

Response Body

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/v1/projects/my-project/ai-provider-headers"
{  "providers": [    {      "provider": "aws-bedrock",      "headers": [        {          "name": "string",          "value": "string"        }      ]    }  ]}
PUT
/v1/projects/{idOrName}/ai-provider-headers

Replace the static headers added to AI requests for each provider.

AuthorizationBearer <token>

API key for authentication, must be provided as a Bearer token. Generate an API key at https://alien.dev/api-keys

In: header

Path Parameters

idOrName*string

Project ID or name.

Lengthlength <= 100

Query Parameters

workspace?string

Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.

Match^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$
Length4 <= length <= 100

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X PUT "https://example.com/v1/projects/my-project/ai-provider-headers" \  -H "Content-Type: application/json" \  -d '{    "providers": [      {        "provider": "aws-bedrock",        "headers": [          {            "name": "string",            "value": "string"          }        ]      }    ]  }'
{  "providers": [    {      "provider": "aws-bedrock",      "headers": [        {          "name": "string",          "value": "string"        }      ]    }  ]}
PUT
/v1/projects/{idOrName}/project-capabilities/models

Configure customer-owned model providers without requiring an application Release.

AuthorizationBearer <token>

API key for authentication, must be provided as a Bearer token. Generate an API key at https://alien.dev/api-keys

In: header

Path Parameters

idOrName*string

Project ID or name.

Lengthlength <= 100

Query Parameters

workspace?string

Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.

Match^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$
Length4 <= length <= 100

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

curl -X PUT "https://example.com/v1/projects/my-project/project-capabilities/models" \  -H "Content-Type: application/json" \  -d '{    "requirements": [      {        "publicModelId": "string",        "clientApis": [          "openai-chat"        ],        "required": true      }    ]  }'
{  "projectCapabilities": {    "schemaVersion": 1,    "capabilities": {      "deployments": {        "enabled": true,        "methods": [          "framework"        ]      },      "keys": {        "enabled": true,        "applicationEncryption": true      },      "models": {        "enabled": true,        "allowedProviders": [          "aws-bedrock"        ],        "requirements": [          {            "publicModelId": "string",            "clientApis": [              "openai-chat"            ],            "required": true          }        ]      },      "buckets": {        "enabled": true,        "access": "read-write"      },      "registry": {        "enabled": true,        "repositories": [          "string"        ],        "credentialPolicy": "pull-only"      }    }  },  "source": {    "definitionId": "customer-ai",    "definitionVersion": "string",    "releaseId": "string"  },  "packages": [    {      "type": "cloudformation",      "status": "pending"    }  ]}
PUT
/v1/projects/{idOrName}/project-capabilities/keys

Enable customer-owned application encryption without requiring an application Release.

AuthorizationBearer <token>

API key for authentication, must be provided as a Bearer token. Generate an API key at https://alien.dev/api-keys

In: header

Path Parameters

idOrName*string

Project ID or name.

Lengthlength <= 100

Query Parameters

workspace?string

Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.

Match^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$
Length4 <= length <= 100

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

curl -X PUT "https://example.com/v1/projects/my-project/project-capabilities/keys" \  -H "Content-Type: application/json" \  -d '{    "applicationEncryption": true  }'
{  "projectCapabilities": {    "schemaVersion": 1,    "capabilities": {      "deployments": {        "enabled": true,        "methods": [          "framework"        ]      },      "keys": {        "enabled": true,        "applicationEncryption": true      },      "models": {        "enabled": true,        "allowedProviders": [          "aws-bedrock"        ],        "requirements": [          {            "publicModelId": "string",            "clientApis": [              "openai-chat"            ],            "required": true          }        ]      },      "buckets": {        "enabled": true,        "access": "read-write"      },      "registry": {        "enabled": true,        "repositories": [          "string"        ],        "credentialPolicy": "pull-only"      }    }  },  "source": {    "definitionId": "customer-ai",    "definitionVersion": "string",    "releaseId": "string"  },  "packages": [    {      "type": "cloudformation",      "status": "pending"    }  ]}
PUT
/v1/projects/{idOrName}/project-capabilities/buckets

Enable buckets without requiring a project Release.

AuthorizationBearer <token>

API key for authentication, must be provided as a Bearer token. Generate an API key at https://alien.dev/api-keys

In: header

Path Parameters

idOrName*string

Project ID or name.

Lengthlength <= 100

Query Parameters

workspace?string

Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.

Match^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$
Length4 <= length <= 100

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

curl -X PUT "https://example.com/v1/projects/my-project/project-capabilities/buckets" \  -H "Content-Type: application/json" \  -d '{    "access": "read-write"  }'
{  "projectCapabilities": {    "schemaVersion": 1,    "capabilities": {      "deployments": {        "enabled": true,        "methods": [          "framework"        ]      },      "keys": {        "enabled": true,        "applicationEncryption": true      },      "models": {        "enabled": true,        "allowedProviders": [          "aws-bedrock"        ],        "requirements": [          {            "publicModelId": "string",            "clientApis": [              "openai-chat"            ],            "required": true          }        ]      },      "buckets": {        "enabled": true,        "access": "read-write"      },      "registry": {        "enabled": true,        "repositories": [          "string"        ],        "credentialPolicy": "pull-only"      }    }  },  "source": {    "definitionId": "customer-ai",    "definitionVersion": "string",    "releaseId": "string"  },  "packages": [    {      "type": "cloudformation",      "status": "pending"    }  ]}
PUT
/v1/projects/{idOrName}/project-capabilities/registry

Enable customer-owned container registries without requiring an application Release.

AuthorizationBearer <token>

API key for authentication, must be provided as a Bearer token. Generate an API key at https://alien.dev/api-keys

In: header

Path Parameters

idOrName*string

Project ID or name.

Lengthlength <= 100

Query Parameters

workspace?string

Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.

Match^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$
Length4 <= length <= 100

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

curl -X PUT "https://example.com/v1/projects/my-project/project-capabilities/registry" \  -H "Content-Type: application/json" \  -d '{    "repositories": [      "string"    ],    "credentialPolicy": "pull-only"  }'
{  "projectCapabilities": {    "schemaVersion": 1,    "capabilities": {      "deployments": {        "enabled": true,        "methods": [          "framework"        ]      },      "keys": {        "enabled": true,        "applicationEncryption": true      },      "models": {        "enabled": true,        "allowedProviders": [          "aws-bedrock"        ],        "requirements": [          {            "publicModelId": "string",            "clientApis": [              "openai-chat"            ],            "required": true          }        ]      },      "buckets": {        "enabled": true,        "access": "read-write"      },      "registry": {        "enabled": true,        "repositories": [          "string"        ],        "credentialPolicy": "pull-only"      }    }  },  "source": {    "definitionId": "customer-ai",    "definitionVersion": "string",    "releaseId": "string"  },  "packages": [    {      "type": "cloudformation",      "status": "pending"    }  ]}
GET
/v1/projects/{idOrName}/project-capabilities/overview

Get safe, server-derived capability status for a Project.

AuthorizationBearer <token>

API key for authentication, must be provided as a Bearer token. Generate an API key at https://alien.dev/api-keys

In: header

Path Parameters

idOrName*string

Project ID or name.

Lengthlength <= 100

Query Parameters

workspace?string

Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.

Match^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$
Length4 <= length <= 100

Response Body

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/v1/projects/my-project/project-capabilities/overview"
{  "generatedAt": "2019-08-24T14:15:22Z",  "configurationStatus": "valid",  "summary": {    "groups": 0,    "capabilities": {      "models": {        "enabled": true,        "connected": 0,        "settingUp": 0,        "needsAttention": 0,        "revoked": 0,        "notConnected": 0      },      "keys": {        "enabled": true,        "connected": 0,        "settingUp": 0,        "needsAttention": 0,        "revoked": 0,        "notConnected": 0      },      "buckets": {        "enabled": true,        "connected": 0,        "settingUp": 0,        "needsAttention": 0,        "revoked": 0,        "notConnected": 0      },      "registry": {        "enabled": true,        "connected": 0,        "settingUp": 0,        "needsAttention": 0,        "revoked": 0,        "notConnected": 0      }    }  },  "groups": [    {      "deploymentGroupId": "dg_r27ict8c7vcgsumpj90ackf7b",      "name": "string",      "externalId": "string",      "createdAt": "2019-08-24T14:15:22Z",      "capabilities": {        "models": {          "capability": "models",          "enabled": true,          "state": "not-connected",          "deploymentId": "dep_0c29fq4a2yjb7kx3smwdgxlc",          "observation": {            "provider": "string",            "platform": "aws",            "resourceId": "string",            "location": "string",            "account": "string",            "observedAt": "2019-08-24T14:15:22Z",            "stale": true,            "partial": true,            "health": "unknown",            "lifecycle": "string",            "message": "string"          },          "modelCoverage": [            {              "publicModelId": "string",              "required": true,              "availability": "available",              "blockerCodes": [                "string"              ],              "accessTest": "verified",              "accessObservedAt": "2019-08-24T14:15:22Z"            }          ],          "directProvider": {            "provider": "anthropic",            "providerEndpoint": "string",            "keyFingerprint": "string",            "credentialStatus": "pending",            "credentialCheckedAt": "2019-08-24T14:15:22Z",            "catalogObservedAt": "2019-08-24T14:15:22Z"          },          "root": {            "state": "pending",            "createdAt": "2019-08-24T14:15:22Z"          },          "registry": {            "repositories": 0,            "credentials": 0,            "credentialPolicy": "pull-only",            "lastVerifiedAt": "2019-08-24T14:15:22Z"          }        },        "keys": {          "capability": "models",          "enabled": true,          "state": "not-connected",          "deploymentId": "dep_0c29fq4a2yjb7kx3smwdgxlc",          "observation": {            "provider": "string",            "platform": "aws",            "resourceId": "string",            "location": "string",            "account": "string",            "observedAt": "2019-08-24T14:15:22Z",            "stale": true,            "partial": true,            "health": "unknown",            "lifecycle": "string",            "message": "string"          },          "modelCoverage": [            {              "publicModelId": "string",              "required": true,              "availability": "available",              "blockerCodes": [                "string"              ],              "accessTest": "verified",              "accessObservedAt": "2019-08-24T14:15:22Z"            }          ],          "directProvider": {            "provider": "anthropic",            "providerEndpoint": "string",            "keyFingerprint": "string",            "credentialStatus": "pending",            "credentialCheckedAt": "2019-08-24T14:15:22Z",            "catalogObservedAt": "2019-08-24T14:15:22Z"          },          "root": {            "state": "pending",            "createdAt": "2019-08-24T14:15:22Z"          },          "registry": {            "repositories": 0,            "credentials": 0,            "credentialPolicy": "pull-only",            "lastVerifiedAt": "2019-08-24T14:15:22Z"          }        },        "buckets": {          "capability": "models",          "enabled": true,          "state": "not-connected",          "deploymentId": "dep_0c29fq4a2yjb7kx3smwdgxlc",          "observation": {            "provider": "string",            "platform": "aws",            "resourceId": "string",            "location": "string",            "account": "string",            "observedAt": "2019-08-24T14:15:22Z",            "stale": true,            "partial": true,            "health": "unknown",            "lifecycle": "string",            "message": "string"          },          "modelCoverage": [            {              "publicModelId": "string",              "required": true,              "availability": "available",              "blockerCodes": [                "string"              ],              "accessTest": "verified",              "accessObservedAt": "2019-08-24T14:15:22Z"            }          ],          "directProvider": {            "provider": "anthropic",            "providerEndpoint": "string",            "keyFingerprint": "string",            "credentialStatus": "pending",            "credentialCheckedAt": "2019-08-24T14:15:22Z",            "catalogObservedAt": "2019-08-24T14:15:22Z"          },          "root": {            "state": "pending",            "createdAt": "2019-08-24T14:15:22Z"          },          "registry": {            "repositories": 0,            "credentials": 0,            "credentialPolicy": "pull-only",            "lastVerifiedAt": "2019-08-24T14:15:22Z"          }        },        "registry": {          "capability": "models",          "enabled": true,          "state": "not-connected",          "deploymentId": "dep_0c29fq4a2yjb7kx3smwdgxlc",          "observation": {            "provider": "string",            "platform": "aws",            "resourceId": "string",            "location": "string",            "account": "string",            "observedAt": "2019-08-24T14:15:22Z",            "stale": true,            "partial": true,            "health": "unknown",            "lifecycle": "string",            "message": "string"          },          "modelCoverage": [            {              "publicModelId": "string",              "required": true,              "availability": "available",              "blockerCodes": [                "string"              ],              "accessTest": "verified",              "accessObservedAt": "2019-08-24T14:15:22Z"            }          ],          "directProvider": {            "provider": "anthropic",            "providerEndpoint": "string",            "keyFingerprint": "string",            "credentialStatus": "pending",            "credentialCheckedAt": "2019-08-24T14:15:22Z",            "catalogObservedAt": "2019-08-24T14:15:22Z"          },          "root": {            "state": "pending",            "createdAt": "2019-08-24T14:15:22Z"          },          "registry": {            "repositories": 0,            "credentials": 0,            "credentialPolicy": "pull-only",            "lastVerifiedAt": "2019-08-24T14:15:22Z"          }        }      }    }  ]}
GET
/v1/projects/{idOrName}/ai-metrics
AuthorizationBearer <token>

API key for authentication, must be provided as a Bearer token. Generate an API key at https://alien.dev/api-keys

In: header

Path Parameters

idOrName*string

Project ID or name.

Lengthlength <= 100

Query Parameters

workspace?string

Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.

Match^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$
Length4 <= length <= 100
range?string
Default"24h"

Value in

  • "24h"
  • "7d"
  • "30d"

Response Body

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/v1/projects/my-project/ai-metrics"
{  "status": "unavailable",  "reason": "not-configured"}
GET
/v1/projects/{idOrName}/encryption-metrics
AuthorizationBearer <token>

API key for authentication, must be provided as a Bearer token. Generate an API key at https://alien.dev/api-keys

In: header

Path Parameters

idOrName*string

Project ID or name.

Lengthlength <= 100

Query Parameters

workspace?string

Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.

Match^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$
Length4 <= length <= 100
range?string
Default"24h"

Value in

  • "24h"
  • "7d"
  • "30d"

Response Body

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/v1/projects/my-project/encryption-metrics"
{  "status": "unavailable",  "reason": "not-configured"}