---
canonical_url: "https://docs.composio.dev/toolkits/railway"
markdown_url: "https://docs.composio.dev/toolkits/railway.md"
product: "platform"
version: null
last_updated: null
---

# Railway

Railway is a deployment platform for building and shipping applications with instant deployments, automatic scaling, and managed infrastructure.

- **Category:** developer tools
- **Auth:** API_KEY, OAUTH2
- **Composio-managed OAuth available?** No
- **Tools:** 59
- **Triggers:** 0
- **Slug:** `RAILWAY`
- **Version:** 20260826_00

## Tools

### Cancel Deployment

**Slug:** `RAILWAY_CANCEL_DEPLOYMENT`

Cancel a Railway deployment that is queued or building, preventing that in-progress deployment from completing. This does not stop a running deployment and requires confirm=true.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `confirm` | boolean | Yes | Must be true to confirm cancelling the deployment. |
| `deployment_id` | string | Yes | Deployment ID to cancel. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Collect Deployment Evidence

**Slug:** `RAILWAY_COLLECT_DEPLOYMENT_EVIDENCE`

Collect a bounded, best-effort Railway deployment evidence bundle from live-validated deployment, snapshot, event, service-instance, log, and metric sources. Results may be partial and report completeness and errors for each source. This tool performs no AI reasoning or root-cause diagnosis and does not modify code or open pull requests.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `end_date` | string | No | Inclusive ISO 8601 evidence-window end. Omit to use the current time, subject to the 24-hour evidence-window bound. |
| `log_limit` | integer | No | Maximum entries returned by each build and HTTP log source (1-100). |
| `start_date` | string | No | Inclusive ISO 8601 evidence-window start. Omit to derive a bounded window from deployment creation. |
| `event_first` | integer | No | Maximum deployment events returned from the first Relay page (1-100). |
| `deployment_id` | string | Yes | Deployment ID to investigate. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Commit Environment Changes

**Slug:** `RAILWAY_COMMIT_ENVIRONMENT_CHANGES`

Commit existing staged changes for a Railway environment, completing a staged STAGE_TEMPLATE or create-environment workflow. This irreversible update can start deployments unless skip_deploys=true and requires confirm=true.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `confirm` | boolean | Yes | Must be true to confirm committing the staged changes and potentially starting deployments. |
| `skip_deploys` | boolean | No | Whether Railway should commit without starting deployments. Defaults to false, which allows the commit to trigger deployments. |
| `commit_message` | string | No | Optional message describing the staged environment changes. |
| `environment_id` | string | Yes | Environment ID whose staged changes should be committed. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Configure Buckets and Private Network

**Slug:** `RAILWAY_CONFIGURE_BUCKETS_AND_PRIVATE_NETWORK`

Commit an explicit Railway patch for bucket creation, updates, or deletion and the environment private-network enabled state. Existing staged changes are not committed or replaced, and this tool does not change services, variables, or volumes. Bucket deletion is irreversible and requires confirm_destructive=true.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `changes` | object | Yes | Bucket and private-network changes to commit as an explicit patch. |
| `commit_message` | string | No | Optional message recorded for this committed patch. |
| `environment_id` | string | Yes | Environment ID whose bucket or private-network changes should be applied. |
| `confirm_destructive` | boolean | No | Set true to confirm irreversible bucket deletion. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Domain

**Slug:** `RAILWAY_CREATE_DOMAIN`

Create either a generated railway.app domain or a caller-owned custom domain. Custom-domain responses include every DNS setup record plus Railway's verification token and state.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `domain` | string | No | Caller-owned hostname. Required for custom domains and invalid for generated Railway domains. |
| `project_id` | string | No | Project ID. Required for custom domains and invalid for generated Railway domains. |
| `service_id` | string | Yes | Target service ID. |
| `domain_type` | string ("railway" | "custom") | Yes | Type of domain to create: a generated railway.app domain or a caller-owned custom domain. |
| `target_port` | integer | No | Service port to which the domain should route. |
| `environment_id` | string | Yes | Target environment ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Environment

**Slug:** `RAILWAY_CREATE_ENVIRONMENT`

Create an empty Railway environment or clone an existing environment, with explicit initial-deployment and change-staging behavior.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Name of the new environment. |
| `ephemeral` | boolean | No | Whether the new environment is ephemeral. |
| `project_id` | string | Yes | Project ID in which to create the environment. |
| `skip_initial_deploys` | boolean | No | Whether to skip initial deployments when changes are committed immediately. |
| `source_environment_id` | string | No | Environment ID whose services, volumes, configuration, and variables will be cloned. Omit to create an empty environment. |
| `stage_initial_changes` | boolean | No | Whether to leave the environment's initial changes staged instead of committing them immediately. |
| `apply_changes_in_background` | boolean | No | Whether to apply initial changes asynchronously and return immediately. False waits for changes to be applied. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Plugin

**Slug:** `RAILWAY_CREATE_PLUGIN`

Creates a new plugin in Railway for the specified project. Use this action when you need to add a custom plugin to a Railway project, such as for integrating external services or extending project functionality. The action requires a valid project ID (found in the Railway dashboard URL) and a descriptive name for the plugin. The plugin will be created with default settings and can be further configured after creation.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | The name of the plugin to create. This should be a descriptive identifier for the plugin. |
| `projectId` | string | Yes | The ID of the project to create the plugin in. The project ID can be found in the Railway dashboard URL or via the Railway API. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Project

**Slug:** `RAILWAY_CREATE_PROJECT`

Create a Railway project in an accessible workspace and return its project and default-environment IDs. Optionally connect a repository branch for deployment and configure the runtime, public visibility, and pull-request deployment settings.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Project name. |
| `repo` | string | No | Optional connected repository in owner/name form. |
| `branch` | string | No | Repository branch to deploy. Required when repo is provided. |
| `runtime` | string ("LEGACY" | "UNSPECIFIED" | "V2") | No | Validated Railway runtime enum value. |
| `is_public` | boolean | No | Whether the project is public. |
| `pr_deploys` | boolean | No | Whether pull-request deployments are enabled. |
| `description` | string | No | Project description. |
| `workspace_id` | string | Yes | Workspace ID in which to create the project. |
| `default_environment_name` | string | No | Name for the initial environment. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Service

**Slug:** `RAILWAY_CREATE_SERVICE`

Create an empty, repository-backed, image-backed, or template-backed service in a Railway project.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `icon` | string | No | Railway service icon value. |
| `name` | string | No | Service name. |
| `branch` | string | No | Repository branch. Allowed only with a repository source. |
| `source` | object | No | Exactly one repository or container-image source. |
| `variables` | object | No | Initial variable name/value map for the service. |
| `project_id` | string | Yes | Project ID in which to create the service. |
| `template_id` | string | No | Template ID. Must be supplied together with template_service_id. |
| `environment_id` | string | No | Environment ID for initial service configuration. A fork limits creation to that environment; otherwise Railway creates the service in non-fork environments. |
| `template_service_id` | string | No | Service ID in the template serialized configuration. Requires template_id. |
| `registry_credentials` | object | No | Private container-registry credentials. Allowed only with an image source and subject to Railway plan availability. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Volume

**Slug:** `RAILWAY_CREATE_VOLUME`

Create a persistent Railway volume and optionally attach it to one service and environment. This action creates billable persistent state and does not clean it up; deletion is a separate DELETE_VOLUME action that requires workspace-admin authorization when using OAuth.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `region` | string | No | Railway region in which to create the volume. |
| `mount_path` | string | Yes | Absolute path at which the volume will be mounted. |
| `project_id` | string | Yes | Project ID in which to create the persistent volume. |
| `service_id` | string | No | Service ID for the initial attachment. Must be supplied together with environment_id; omit both to create an unattached volume. |
| `environment_id` | string | No | Environment ID for the initial attachment. Must be supplied together with service_id; omit both to create an unattached volume. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Deployment

**Slug:** `RAILWAY_DELETE_DEPLOYMENT`

Permanently delete a completed Railway deployment from deployment history and stop any remaining project usage from it. This does not delete the service, is irreversible, and requires confirm=true.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `confirm` | boolean | Yes | Must be true to confirm permanent removal from deployment history. |
| `deployment_id` | string | Yes | Deployment ID to permanently remove from Railway history. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Domain

**Slug:** `RAILWAY_DELETE_DOMAIN`

Permanently delete one generated Railway domain or custom domain by ID after explicit confirmation.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `confirm` | boolean | Yes | Must be true to confirm permanent domain deletion. |
| `domain_id` | string | Yes | Domain ID to delete. |
| `domain_type` | string ("railway" | "custom") | Yes | Kind of domain to delete. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Environment

**Slug:** `RAILWAY_DELETE_ENVIRONMENT`

Permanently delete one Railway environment and its deployments. This action is irreversible, requires confirm=true, and requires workspace-admin authorization when using OAuth. Reconnect with a separately selected workspace:admin grant if Railway returns Not Authorized.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `confirm` | boolean | Yes | Must be true to confirm irreversible environment and deployment deletion. |
| `environment_id` | string | Yes | Environment ID to delete. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Variable

**Slug:** `RAILWAY_DELETE_VARIABLE`

Delete a Railway environment variable. This action uses the `variableDelete` GraphQL mutation to permanently remove an environment variable from a project, environment, or service. This action is irreversible — once deleted, the variable cannot be recovered.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | The name of the environment variable to delete |
| `project_id` | string | Yes | The unique identifier of the project containing the environment |
| `service_id` | string | No | The unique identifier of the service. If not provided, variables will be deleted at the environment level |
| `environment_id` | string | Yes | The unique identifier of the environment containing the variable |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Volume

**Slug:** `RAILWAY_DELETE_VOLUME`

Permanently delete a persistent volume and all its associated data from Railway. Use when you need to remove a volume that is no longer needed. This action is irreversible — the volume and all its data will be permanently deleted and cannot be recovered once removed. Use this action when: - Cleaning up unused volumes to reduce storage costs - Removing volumes associated with deprecated environments - Deleting volumes before removing a project

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `volume_id` | string | Yes | The unique identifier of the volume to delete. Obtain this ID from the list volumes endpoint or the volume creation response. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete workspace

**Slug:** `RAILWAY_DELETE_WORKSPACE`

Delete a Railway workspace and all data associated with it. This action uses the `workspaceDelete` GraphQL mutation to permanently remove a workspace. Use this action when you need to permanently delete a workspace that is no longer needed. This action is irreversible — once deleted, the workspace and all its associated projects, environments, and data cannot be recovered.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the workspace to delete. Example: 'abc123-def4-5678-ghij-klmnopqrstuv' |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Deploy Service

**Slug:** `RAILWAY_DEPLOY_SERVICE`

Start a Railway deployment from a service's already connected repository or image source, optionally at a repository commit SHA, and return the deployment ID. This action cannot access or upload local files; connect the source to the service before calling it.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `commit_sha` | string | No | Commit SHA from the service's connected repository. Omit to deploy the current connected source. This field does not accept a local path or file. |
| `service_id` | string | Yes | Service ID whose already connected source Railway should deploy. |
| `environment_id` | string | Yes | Target environment ID for the deployment. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Deploy Template

**Slug:** `RAILWAY_DEPLOY_TEMPLATE`

Deploy a complete Railway template configuration into a new project or an existing project environment. Railway commits the template changes and starts their deployments.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `project_id` | string | No | Existing target project ID. Requires environment_id. |
| `template_id` | string | Yes | Template ID returned by GET_TEMPLATE. |
| `workspace_id` | string | No | Workspace ID in which Railway should create a new project. It may also be supplied with an existing project target. |
| `environment_id` | string | No | Existing target environment ID. Requires project_id. |
| `serialized_config` | object | Yes | Complete serialized template configuration returned by GET_TEMPLATE, optionally customized while preserving its required structure. |
| `existing_root_service_id` | string | No | Existing service to use as the template cluster root. Provide this only with both project_id and environment_id; it cannot be used with a workspace-only target. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Disconnect Discord account

**Slug:** `RAILWAY_DISCONNECT_USER_DISCORD`

Disconnects the authenticated user's Railway account from Discord. Use when you need to unlink a Discord account that was previously connected to Railway for notifications, authentication, or team management. This action is irreversible for the disconnect operation — the user must manually reconnect through the Railway dashboard or Discord OAuth flow if needed.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Build Logs

**Slug:** `RAILWAY_GET_BUILD_LOGS`

Return a bounded, optionally filtered time window of build-phase logs for one Railway deployment.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum number of build log entries to return (1-500). |
| `filter` | string | No | Railway log query, such as text search or @level:error. |
| `end_date` | string | No | Inclusive ISO 8601 end time; omit to include logs through the current time. |
| `start_date` | string | No | Inclusive ISO 8601 start time; omit to use Railway's earliest available time. |
| `deployment_id` | string | Yes | Deployment ID whose build-phase logs to return. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Deployment

**Slug:** `RAILWAY_GET_DEPLOYMENT`

Return one deployment's status, timestamps, metadata, and rollback eligibility.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `deployment_id` | string | Yes | Deployment ID to retrieve. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Deployment Logs

**Slug:** `RAILWAY_GET_DEPLOYMENT_LOGS`

Retrieve runtime logs for a deployment. Use when you need to view the runtime application logs for troubleshooting runtime issues, monitoring application behavior, or debugging errors that occur during deployment execution. This action queries the Railway GraphQL API for runtime log entries associated with the specified deployment ID. The logs are returned in reverse chronological order (most recent first).

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum number of log entries to retrieve. Defaults to 25. |
| `deployment_id` | string | Yes | The unique identifier of the deployment to retrieve runtime logs for. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Environment

**Slug:** `RAILWAY_GET_ENVIRONMENT`

Get details of a specific Railway environment by its ID, including service instances and deployment information. Use this action when you need to retrieve detailed information about an environment, such as its name, creation timestamp, and the service instances deployed within it, along with their latest deployment statuses. This is a read-only action that queries the Railway GraphQL API.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the environment to retrieve. Example: 'abc123-def4-5678-ghij' |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get GitHub PR Info

**Slug:** `RAILWAY_GET_GIT_HUB_PR_INFO`

Get information for a GitHub pull request associated with a Railway service. Use this action when you need to retrieve details about a specific pull request, such as its title, state, URL, or author information, for monitoring PR status or integrating with CI/CD workflows. This is a read-only action that queries the Railway GraphQL API for pull request information linked to the specified service.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `prNumber` | integer | Yes | The pull request number (e.g., 1 for PR #1). |
| `serviceId` | string | Yes | The unique identifier of the Railway service to get the PR info for. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get HTTP Logs

**Slug:** `RAILWAY_GET_HTTP_LOGS`

Return a bounded date-anchor window of HTTP request logs for one deployment, including request, response, timing, and routing fields.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `filter` | string | No | Railway HTTP log filter using fields such as @method, @httpStatus, @path, or @requestId. |
| `after_date` | string | No | Inclusive ISO 8601 lower boundary for the log window. |
| `after_limit` | integer | No | Maximum entries after the date anchor to return (1-1000). |
| `anchor_date` | string | No | ISO 8601 anchor around which Railway returns before and after entries. |
| `before_date` | string | No | Inclusive ISO 8601 upper boundary for the log window. |
| `before_limit` | integer | No | Maximum entries before the date anchor to return (1-1000). |
| `deployment_id` | string | Yes | Deployment ID whose HTTP request logs to return. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get HTTP Metrics

**Slug:** `RAILWAY_GET_HTTP_METRICS`

Return either HTTP request counts grouped by status code or p50/p90/p95/p99 response-time series for one Railway service and environment. Status counts are returned as evidence and are not converted into an error percentage.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `path` | string | No | Exact HTTP request path filter accepted by Railway. |
| `method` | string | No | Exact HTTP method filter accepted by Railway, such as GET or POST. |
| `metric` | string ("status_counts" | "response_time") | Yes | Metric view: status_counts returns request-count series grouped by HTTP status, while response_time returns p50/p90/p95/p99 duration series. |
| `end_date` | string | Yes | Inclusive ISO 8601 metric end time. |
| `service_id` | string | Yes | Service ID whose HTTP metrics to return. |
| `start_date` | string | Yes | Inclusive ISO 8601 metric start time. |
| `status_code` | integer | No | HTTP status filter for response_time only (100-599). |
| `step_seconds` | integer | No | Sample interval in seconds; must be positive when provided. |
| `environment_id` | string | Yes | Environment ID containing the service. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Resource Metrics

**Slug:** `RAILWAY_GET_RESOURCE_METRICS`

Return sampled CPU, memory, disk, network, backup, or volume measurements for selected Railway resources and time range.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `end_date` | string | No | Inclusive ISO 8601 end time. Omit to use the current time. |
| `group_by` | array | No | Current Railway MetricTag enum values used to group metric series. |
| `volume_id` | string | No | Volume ID to select metrics for. |
| `project_id` | string | No | Project ID to select metrics for. |
| `service_id` | string | No | Service ID to select metrics for. |
| `start_date` | string | Yes | Inclusive ISO 8601 metric start time. |
| `measurements` | array | Yes | One or more current Railway MetricMeasurement enum values. |
| `environment_id` | string | No | Environment ID to select metrics for. |
| `sample_rate_seconds` | integer | No | Sampling interval in seconds. |
| `averaging_window_seconds` | integer | No | Averaging window in seconds when computing CPU usage. Railway uses sample_rate_seconds when omitted. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Template

**Slug:** `RAILWAY_GET_TEMPLATE`

Return a Railway template's ID, name, and serialized configuration required for deterministic deployment.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `code` | string | Yes | Template code returned by RAILWAY_SEARCH_TEMPLATES. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get User Kickback Earnings

**Slug:** `RAILWAY_GET_USER_KICKBACK_EARNINGS`

Get the total kickback earnings for the authenticated Railway user. Use this action when you need to retrieve the kickback earnings information for the authenticated user, including the total amount earned and the currency. This is a read-only operation that queries the Railway GraphQL API. Kickback earnings are rewards earned through the Railway referral program when users you refer upgrade their Railway projects.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List API Tokens

**Slug:** `RAILWAY_LIST_API_TOKENS`

Retrieve all API tokens for the authenticated user from Railway. Use this action when you need to fetch the list of API tokens associated with the currently authenticated user. This is a read-only operation that returns token metadata including the ID, name, and creation timestamp for each token. The action queries the Railway GraphQL API and returns the complete list of tokens.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Deployments

**Slug:** `RAILWAY_LIST_DEPLOYMENTS`

List one page of Railway deployments filtered by project, environment, service, status, or deletion state.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `first` | integer | No | Maximum number of deployments to return in this page. |
| `status` | string ("BUILDING" | "CRASHED" | "DEPLOYING" | "FAILED" | "INITIALIZING" | "NEEDS_APPROVAL" | "QUEUED" | "REMOVED" | "REMOVING" | "SKIPPED" | "SLEEPING" | "SUCCESS" | "WAITING") | No | Exact Railway deployment status to include. |
| `project_id` | string | No | Project ID filter. At least one project, environment, or service ID is required. |
| `service_id` | string | No | Service ID filter. At least one project, environment, or service ID is required. |
| `next_cursor` | string | No | Opaque cursor returned by the previous call; omit for the first page. |
| `environment_id` | string | No | Environment ID filter. At least one project, environment, or service ID is required. |
| `include_deleted` | boolean | No | Whether to include deployments removed from deployment history. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Domains

**Slug:** `RAILWAY_LIST_DOMAINS`

List Railway and custom domains for a service, including IDs, ports, DNS records, certificate state, and custom-domain verification token.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `project_id` | string | Yes | Project ID containing the service. |
| `service_id` | string | Yes | Service ID whose domains to list. |
| `environment_id` | string | Yes | Environment ID containing the service. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Environment Patches

**Slug:** `RAILWAY_LIST_ENVIRONMENT_PATCHES`

Retrieve all patches for a Railway environment using the GraphQL API. Use this action when you need to fetch the list of configuration patches applied to an environment. This is useful for auditing environment history, tracking configuration changes, or reviewing past deployments to an environment. The action queries the Railway GraphQL API for all patches associated with the specified environment ID and returns their metadata including identifiers and timestamps.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `after` | string | No | Cursor for pagination - return patches after this cursor. |
| `first` | integer | No | Maximum number of patches to return (for pagination). |
| `environment_id` | string | Yes | The unique identifier of the environment to get patches for. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Environments

**Slug:** `RAILWAY_LIST_ENVIRONMENTS`

List one page of project environments with IDs, pull-request metadata, source environment, and staged-change count.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `first` | integer | No | Maximum environments to return in this page. |
| `project_id` | string | Yes | Project ID whose environments to list. |
| `next_cursor` | string | No | Opaque cursor returned by the previous page; omit for the first page. |
| `is_ephemeral` | boolean | No | Filter ephemeral pull-request environments when set. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List GitHub Repos

**Slug:** `RAILWAY_LIST_GIT_HUB_REPOS`

Retrieve a list of GitHub repositories that Railway has access to. Use this action when you need to fetch the list of GitHub repositories associated with the authenticated user's GitHub account through Railway. This is a read-only operation that returns the id, name, and owner for each repository. The action queries the Railway GraphQL API githubRepos endpoint and returns the complete list of accessible GitHub repositories.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List GitHub Writable Scopes

**Slug:** `RAILWAY_LIST_GIT_HUB_WRITABLE_SCOPES`

Retrieve the list of GitHub scopes the user has installed the installation to. Use this action when you need to fetch the list of GitHub scope names that the authenticated user has granted to the Railway GitHub application. This is a read-only operation that returns an array of GitHub permission scope strings such as 'repo', 'workflow', or 'read:user'. Note: This endpoint requires account-level authentication, not workspace/project tokens.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Integration Auths

**Slug:** `RAILWAY_LIST_INTEGRATION_AUTHS`

Retrieve all integration auths for the authenticated user from Railway. Use this action when you need to fetch the list of integration auths (such as GitHub, GitLab, Vercel, or other connected integrations) associated with the currently authenticated user. This is a read-only operation that returns auth metadata including the ID, name, type, and creation timestamp for each integration. The action queries the Railway GraphQL API and returns the complete list of integration auths.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Notification Deliveries

**Slug:** `RAILWAY_LIST_NOTIFICATION_DELIVERIES`

Retrieve notification deliveries for the authenticated user. Use this action when you need to fetch a list of notification deliveries, such as tracking which notifications have been sent (e.g., EMAIL, WEBHOOK, SLACK) and when they were created. This is a read-only operation that queries the Railway GraphQL API. The action supports pagination through the GraphQL edges/node pattern and returns basic notification delivery information including ID, type, and creation timestamp for each delivery.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Projects

**Slug:** `RAILWAY_LIST_PROJECTS`

List one page of projects in an accessible Railway workspace with project and workspace identifiers. Use LIST_SERVICES and LIST_ENVIRONMENTS for those independently paginated resources.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `first` | integer | No | Maximum projects to return in this page (1-100). |
| `next_cursor` | string | No | Opaque cursor returned by the previous page; omit for the first page. |
| `workspace_id` | string | Yes | Workspace ID whose accessible projects to list. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Services

**Slug:** `RAILWAY_LIST_SERVICES`

List one page of service IDs and names in a project for service, deployment, logs, metrics, domain, and volume tools.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `first` | integer | No | Maximum services to return in this page (1-100). |
| `project_id` | string | Yes | Project ID whose services to list. |
| `next_cursor` | string | No | Opaque cursor returned by the previous page; omit for the first page. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Railway Trusted Domains

**Slug:** `RAILWAY_LIST_TRUSTED_DOMAINS`

Fetch all trusted domains for the authenticated Railway workspace. Use this action when you need to retrieve all trusted domains configured for workspace membership invitations. Trusted domains allow users with emails from those domains to be invited to the workspace without individual invitations. This is useful for auditing existing domain configurations or obtaining domain IDs for deletion operations. This action requires authentication and will return domains from the workspace associated with the provided credentials.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `workspaceId` | string | No | The workspace ID to retrieve trusted domains for. If not provided, uses the authenticated user's workspace. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Variables

**Slug:** `RAILWAY_LIST_VARIABLES`

Return Railway shared-environment or service variables. Choose stored to preserve or render references, or deployment_resolved to return the values supplied to a specific service deployment. Variable values may be sensitive.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `view` | string ("stored" | "deployment_resolved") | No | Return stored values or values resolved exactly as supplied to a service deployment. |
| `project_id` | string | Yes | Project ID containing the variables. |
| `service_id` | string | No | Service ID for service variables. Omit for shared environment variables. Required when view is deployment_resolved. |
| `unrendered` | boolean | No | For the stored view, preserve Railway references such as ${{Service.KEY}} instead of rendering them. Ignored for deployment_resolved. |
| `environment_id` | string | Yes | Environment ID containing the variables. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Volumes

**Slug:** `RAILWAY_LIST_VOLUMES`

List one page of persistent volume IDs and names in a project for storage configuration and metrics workflows.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `first` | integer | No | Maximum volumes to return in this page (1-100). |
| `project_id` | string | Yes | Project ID whose volumes to list. |
| `next_cursor` | string | No | Opaque cursor returned by the previous page; omit for the first page. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Redeploy Deployment

**Slug:** `RAILWAY_REDEPLOY_DEPLOYMENT`

Create a new Railway deployment with the selected deployment's exact code and build/deploy configuration, optionally using its previous image tag. This does not deploy the latest source commit and requires confirm=true.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `confirm` | boolean | Yes | Must be true to confirm replacing the existing deployment state. |
| `deployment_id` | string | Yes | Deployment ID to redeploy. |
| `use_previous_image_tag` | boolean | No | Whether the redeployment should use the deployment's previous image tag. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Rename Environment

**Slug:** `RAILWAY_RENAME_ENVIRONMENT`

Rename one environment without changing or deploying its configuration.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | New environment name. |
| `environment_id` | string | Yes | Environment ID to rename. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Replace Variables

**Slug:** `RAILWAY_REPLACE_VARIABLES`

Replace the entire Railway shared-environment or service variable collection with the supplied complete map. This is irreversible: every existing variable whose key is omitted from the map is permanently deleted. Railway skips deployments by default; set skip_deploys=false and confirm_deploys=true to explicitly trigger deployments.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `variables` | object | Yes | Complete non-empty map of every variable that must remain in the target collection. Railway permanently deletes every existing key omitted here. |
| `project_id` | string | Yes | Project ID containing the target environment. |
| `service_id` | string | No | Service ID for service-specific variables. Omit this field to update shared environment variables. |
| `skip_deploys` | boolean | No | Whether Railway should skip triggering deployments after the update. Defaults to true; setting false requires confirm_deploys=true. |
| `environment_id` | string | Yes | Environment ID receiving the variables. |
| `confirm_deploys` | boolean | No | Set true to explicitly confirm triggering deployments when skip_deploys=false. This confirmation is not sent to Railway. |
| `confirm_replace` | boolean | Yes | Must be true to confirm permanent deletion of every existing variable omitted from variables. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Restart Deployment

**Slug:** `RAILWAY_RESTART_DEPLOYMENT`

Restart a running or crashed Railway deployment by reusing its existing image without rebuilding or creating a deployment from newer source. Requires confirm=true.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `confirm` | boolean | Yes | Must be true to confirm interrupting and restarting the deployment. |
| `deployment_id` | string | Yes | Deployment ID to restart. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Retry Domain Certificate

**Slug:** `RAILWAY_RETRY_DOMAIN_CERTIFICATE`

Read the corrected Railway domainStatus object, then retry custom-domain certificate issuance only when Railway reports certificateRetryable=true. A non-retryable result fails without mutation and includes status evidence.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `domain_id` | string | Yes | Custom-domain ID whose certificate issuance should be retried. |
| `project_id` | string | Yes | Project ID containing the custom domain. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Rollback Deployment

**Slug:** `RAILWAY_ROLLBACK_DEPLOYMENT`

Restore a previous Railway deployment's Docker image and custom variables as the active deployment without rebuilding. Railway must report canRollback=true; the operation requires confirm=true.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `confirm` | boolean | Yes | Must be true to confirm rolling back the deployment. |
| `deployment_id` | string | Yes | Deployment ID to roll back. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Search Templates

**Slug:** `RAILWAY_SEARCH_TEMPLATES`

Search one cursor-controlled page of Railway templates by text, verification state, and category.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `first` | integer | No | Maximum templates to return in this page. |
| `query` | string | Yes | Template search text. |
| `category` | string | No | Template category to restrict results to when set. |
| `verified` | boolean | No | Restrict results to verified or unverified templates when set. |
| `next_cursor` | string | No | Opaque cursor returned by the previous page; omit for the first page. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Stage Template

**Slug:** `RAILWAY_STAGE_TEMPLATE`

Create all resources from a complete Railway template configuration in a new project or an existing project environment, but leave the resulting changes staged. This does not commit the staged changes or start deployments; commit them separately when ready.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `project_id` | string | No | Existing target project ID. Requires environment_id. |
| `template_id` | string | Yes | Template ID returned by GET_TEMPLATE. |
| `workspace_id` | string | No | Workspace ID in which Railway should create a new project. It may also be supplied with an existing project target. |
| `environment_id` | string | No | Existing target environment ID. Requires project_id. |
| `serialized_config` | object | Yes | Complete serialized template configuration returned by GET_TEMPLATE, optionally customized while preserving its required structure. |
| `existing_root_service_id` | string | No | Existing service to use as the template cluster root. Provide this only with both project_id and environment_id; it cannot be used with a workspace-only target. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Stop Deployment

**Slug:** `RAILWAY_STOP_DEPLOYMENT`

Stop a currently running Railway deployment without deleting the service or its deployment-history record. Requires confirm=true.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `confirm` | boolean | Yes | Must be true to confirm stopping the deployment. |
| `deployment_id` | string | Yes | Deployment ID to stop. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Domain

**Slug:** `RAILWAY_UPDATE_DOMAIN`

Update the hostname or target port of one generated Railway domain, or update the target port of one custom domain.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `domain` | string | No | Generated railway.app hostname. Required for generated Railway domains and invalid for custom domains. |
| `domain_id` | string | Yes | Service-domain or custom-domain ID to update. |
| `service_id` | string | No | Service ID. Required for generated Railway domains and invalid for custom domains. |
| `domain_type` | string ("railway" | "custom") | Yes | Kind of domain being updated. |
| `target_port` | integer | No | New service target port. Required for custom domains and optional for generated Railway domains. |
| `environment_id` | string | Yes | Environment ID containing the domain. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Project

**Slug:** `RAILWAY_UPDATE_PROJECT`

Update project settings and configuration on Railway. Use this action when you need to modify project properties such as description, visibility settings, or PR deploy preferences. The following fields can be updated: - description: A brief description of the project - isPublic: Whether the project is publicly visible - prDeploys: Whether pull request preview deployments are enabled This is an idempotent operation — updating a project with the same settings multiple times will not change the result after the first update.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the project to update. |
| `input` | object | Yes | The update configuration for the project. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Service

**Slug:** `RAILWAY_UPDATE_SERVICE`

Update a service's name or icon without changing environment-specific deployment settings.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `icon` | string | No | New service icon value. Provide name, icon, or both. |
| `name` | string | No | New service name. Provide name, icon, or both. |
| `service_id` | string | Yes | Service ID to update. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Service Instance

**Slug:** `RAILWAY_UPDATE_SERVICE_INSTANCE`

Update build/deploy settings for a service in a specific environment on Railway. Use this action when you need to modify service configuration including commands, healthcheck, replicas, region, and cron schedule. This is an idempotent operation. The following fields can be updated: - startCommand: Custom start command for the service - buildCommand: Custom build command - rootDirectory: Root directory for monorepo setups - healthcheckPath: Health check endpoint path - healthcheckTimeout: Health check timeout in seconds - region: Deployment region - numReplicas: Number of service replicas - restartPolicyType: Restart policy (ON_FAILURE, ALWAYS, NEVER) - restartPolicyMaxRetries: Maximum restart retries - cronSchedule: Cron expression for scheduled deployments - sleepApplication: Enable/disable sleep when idle - dockerfilePath: Custom Dockerfile path - watchPatterns: File patterns for automatic redeployment

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `input` | object | Yes | The update configuration for the service instance. |
| `service_id` | string | Yes | The unique identifier of the service to update. |
| `environment_id` | string | Yes | The unique identifier of the environment. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Volume

**Slug:** `RAILWAY_UPDATE_VOLUME`

Rename a Railway volume without changing any volume instance.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | New volume name. |
| `volume_id` | string | Yes | Volume ID to rename. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Volume Instance

**Slug:** `RAILWAY_UPDATE_VOLUME_INSTANCE`

Update a Railway volume's environment-specific mount path, attached service, or state. service_id is required on every call as the current or target attachment; set it to null only to explicitly keep or make the instance disconnected.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `state` | string ("ERROR" | "MIGRATING" | "MIGRATION_PENDING" | "READY" | "RESTORING" | "UPDATING") | No | New non-deletion Railway volume-instance state: ERROR, MIGRATING, MIGRATION_PENDING, READY, RESTORING, or UPDATING. Omit to preserve the current state. Use DELETE_VOLUME for irreversible volume deletion. |
| `volume_id` | string | Yes | Volume ID to configure. |
| `mount_path` | string | No | New absolute mount path. Omit to preserve the current mount path; service_id is still required to preserve or change the attachment. |
| `service_id` | string | Yes | Current or target attached service ID. This field is always required and must be null only to explicitly keep or make the instance disconnected; Railway disconnects the volume instance when serviceId is omitted. |
| `environment_id` | string | Yes | Environment ID containing the volume instance to update. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Upsert Variables

**Slug:** `RAILWAY_UPSERT_VARIABLES`

Create or update a non-empty map of Railway shared-environment or service variables without deleting variables omitted from the submitted map. Railway skips deployments by default. Set skip_deploys=false and confirm_deploys=true to explicitly trigger deployments.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `variables` | object | Yes | Non-empty map of variable names to string values. |
| `project_id` | string | Yes | Project ID containing the target environment. |
| `service_id` | string | No | Service ID for service-specific variables. Omit this field to update shared environment variables. |
| `skip_deploys` | boolean | No | Whether Railway should skip triggering deployments after the update. Defaults to true; setting false requires confirm_deploys=true. |
| `environment_id` | string | Yes | Environment ID receiving the variables. |
| `confirm_deploys` | boolean | No | Set true to explicitly confirm triggering deployments when skip_deploys=false. This confirmation is not sent to Railway. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |
