Manage Environments with the Public API
Here are examples to help you manage your environments using the Public API.
List Environments
Get all environments for a project:
Required
query environments($projectId: String!) {
environments(projectId: $projectId) {
edges {
node {
id
name
createdAt
}
}
}
}Variables
{
"projectId": "project-id"
}Exclude Ephemeral Environments
Filter out PR/preview environments:
Required
query environments($projectId: String!, $isEphemeral: Boolean) {
environments(projectId: $projectId, isEphemeral: $isEphemeral) {
edges {
node {
id
name
createdAt
}
}
}
}Variables
{
"projectId": "project-id",
"isEphemeral": "false"
}Get a Single Environment
Fetch an environment by ID with its service instances:
Required
query environment($id: String!) {
environment(id: $id) {
id
name
createdAt
serviceInstances {
edges {
node {
id
serviceName
latestDeployment {
id
status
}
}
}
}
}
}Variables
{
"id": "environment-id"
}Create an Environment
Create a new environment:
Required
mutation environmentCreate($input: EnvironmentCreateInput!) {
environmentCreate(input: $input) {
id
name
}
}Variables
{
"input": {
"projectId": "project-id",
"name": "staging"
}
}Rename an Environment
Required
mutation environmentRename($id: String!, $input: EnvironmentRenameInput!) {
environmentRename(id: $id, input: $input)
}Variables
{
"id": "environment-id",
"input": {
"name": "new-name"
}
}Delete an Environment
Required
mutation environmentDelete($id: String!) {
environmentDelete(id: $id)
}Variables
{
"id": "environment-id"
}Get Environment Logs
Fetch logs from all services in an environment:
Required
query environmentLogs($environmentId: String!, $filter: String) {
environmentLogs(environmentId: $environmentId, filter: $filter) {
timestamp
message
severity
tags {
serviceId
deploymentId
}
}
}Variables
{
"environmentId": "environment-id"
}Staged Changes
Railway supports staging variable changes before deploying them.
Get Staged Changes
Required
query environmentStagedChanges($environmentId: String!) {
environmentStagedChanges(environmentId: $environmentId)
}Variables
{
"environmentId": "environment-id"
}Commit Staged Changes
Required
mutation environmentPatchCommitStaged($environmentId: String!) {
environmentPatchCommitStaged(environmentId: $environmentId)
}Variables
{
"environmentId": "environment-id"
}Edit this file on GitHubLast updated Feb 3, 2026