DEV Community

Alex Spinov
Alex Spinov

Posted on

Railway Has a Free API That Deploys Your App in 30 Seconds

Railway is a modern deployment platform that makes shipping applications ridiculously simple. But did you know it has a powerful API that lets you automate everything programmatically?

What Is Railway?

Railway is a cloud platform that handles infrastructure so you can focus on code. Deploy from GitHub, use templates, or push via CLI — Railway handles the rest.

The Railway API

Railway exposes a GraphQL API that gives you full control over your projects, deployments, and environments.

Authentication

Generate an API token from your Railway dashboard:

# Set your token
export RAILWAY_TOKEN="your-token-here"

# Query your projects
curl -s https://backboard.railway.app/graphql/v2 \
  -H "Authorization: Bearer $RAILWAY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"query": "{ me { name email projects { edges { node { name id } } } } }"}' | jq .
Enter fullscreen mode Exit fullscreen mode

Deploy a Service

mutation {
  serviceCreate(input: {
    projectId: "your-project-id"
    name: "my-api"
    source: {
      repo: "username/repo"
    }
  }) {
    id
    name
  }
}
Enter fullscreen mode Exit fullscreen mode

Environment Variables

mutation {
  variableUpsert(input: {
    projectId: "your-project-id"
    environmentId: "your-env-id"
    serviceId: "your-service-id"
    name: "DATABASE_URL"
    value: "postgresql://..."
  })
}
Enter fullscreen mode Exit fullscreen mode

Monitor Deployments

query {
  deployments(first: 5, input: {
    projectId: "your-project-id"
  }) {
    edges {
      node {
        id
        status
        createdAt
      }
    }
  }
}
Enter fullscreen mode Exit fullscreen mode

Key Features

  • Auto-scaling: Railway scales your app based on traffic
  • Built-in databases: PostgreSQL, MySQL, Redis, MongoDB one-click deploy
  • Preview environments: Every PR gets its own deployment
  • Logs and metrics: Real-time monitoring via API
  • Templates: 600+ templates to start from

Real Use Case: CI/CD Automation

import requests

RAILWAY_API = "https://backboard.railway.app/graphql/v2"
TOKEN = "your-token"

def trigger_redeploy(service_id, environment_id):
    query = """
    mutation($serviceId: String!, $environmentId: String!) {
      deploymentRestart(input: {
        serviceId: $serviceId
        environmentId: $environmentId
      })
    }
    """
    response = requests.post(
        RAILWAY_API,
        headers={"Authorization": f"Bearer {TOKEN}"},
        json={"query": query, "variables": {
            "serviceId": service_id,
            "environmentId": environment_id
        }}
    )
    return response.json()

# Trigger redeploy after successful tests
result = trigger_redeploy("service-123", "env-456")
print(f"Redeployed: {result}")
Enter fullscreen mode Exit fullscreen mode

Why Railway Over Alternatives?

Feature Railway Heroku Render
Free tier $5 credit/mo $5-7/mo Free (limited)
GraphQL API Yes REST REST
Auto-sleep Optional Yes (free) Yes (free)
Deploy speed ~30 sec ~2 min ~3 min
Built-in DB Yes Add-on Add-on

Getting Started

  1. Sign up at railway.app
  2. Create a project
  3. Generate API token in Settings
  4. Use the GraphQL API to automate everything

Railway is perfect for developers who want Heroku-level simplicity with modern tooling and a powerful API.


Need to extract data from websites at scale? Check out Scrapfly — web scraping API that handles proxies, browsers, and anti-bot bypass for you. Or email me at spinov001@gmail.com for custom scraping solutions.

Top comments (0)