Upsun Project API

## Project Overview On Upsun, a Project is backed by a single Git repository and encompasses your entire application stack, the services used by your application, the application's data storage, the production and staging environments, and the backups of those environments. When you create a new project, you start with a single [Environment](#tag/Environment) called *Master*, corresponding to the master branch in the Git repository of the project—this will be your production environment. If you connect your project to an external Git repo using one of our [Third-Party Integrations](#tag/Third-Party-Integrations) a new development environment can be created for each branch or pull request created in the repository. When a new development environment is created, the production environment's data will be cloned on-the-fly, giving you an isolated, production-ready test environment. This set of API endpoints can be used to retrieve a list of projects associated with an API key, as well as create and update the parameters of existing projects. > **Note**: > > To list projects or to create a new project, use [`/subscriptions`](#tag/Subscriptions).

Operations 5

GET /projects/{projectId} Get a project #
PATCH /projects/{projectId} Update a project #
DELETE /projects/{projectId} Delete a project #
GET /projects/{projectId}/capabilities Get a project's capabilities #
POST /projects/{projectId}/clear_build_cache Clear project build cache #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/upsun-project-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

upsun-project-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Upsun.com Rest Project API
  version: '1.0'
  contact:
    name: Support
    url: https://upsun.com/contact-us/
  termsOfService: https://upsun.com/trust-center/legal/tos/
  description: '# Introduction


    Upsun, formerly Platform.sh, is a container-based Platform-as-a-Service.'
  x-logo:
    url: https://docs.upsun.com/images/upsun-api.svg
    href: https://upsun.com/#section/Introduction
    altText: Upsun logo
servers:
- url: '{schemes}://api.upsun.com'
  description: The Upsun.com API gateway
  variables:
    schemes:
      default: https
security:
- OAuth2: []
tags:
- name: Project
  description: '## Project Overview


    On Upsun, a Project is backed by a single Git repository

    and encompasses your entire application stack, the services

    used by your application, the application''s data storage,

    the production and staging environments, and the backups of those

    environments.'
paths:
  /projects/{projectId}:
    get:
      parameters:
      - in: path
        required: true
        schema:
          type: string
        name: projectId
      operationId: get-projects
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Project'
      tags:
      - Project
      summary: Get a project
      description: Retrieve the details of a single project.
    patch:
      requestBody:
        description: ''
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectPatch'
      parameters:
      - in: path
        required: true
        schema:
          type: string
        name: projectId
      operationId: update-projects
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcceptedResponse'
      tags:
      - Project
      summary: Update a project
      description: Update the details of an existing project.
    delete:
      parameters:
      - in: path
        required: true
        schema:
          type: string
        name: projectId
      operationId: delete-projects
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcceptedResponse'
      tags:
      - Project
      summary: Delete a project
      description: Delete the entire project.
  /projects/{projectId}/capabilities:
    get:
      parameters:
      - in: path
        required: true
        schema:
          type: string
        name: projectId
      operationId: get-projects-capabilities
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectCapabilities'
      tags:
      - Project
      summary: Get a project's capabilities
      description: 'Get a list of capabilities on a project, as defined by the billing system.

        For instance, one special capability that could be defined on a project is

        large development environments.'
  /projects/{projectId}/clear_build_cache:
    post:
      parameters:
      - in: path
        required: true
        schema:
          type: string
        name: projectId
      operationId: action-projects-clear-build-cache
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcceptedResponse'
      tags:
      - Project
      summary: Clear project build cache
      description: 'On rare occasions, a project''s build cache can become corrupted. This

        endpoint will entirely flush the project''s build cache. More information

        on clearing the build cache can be found in our user documentation.'
components:
  schemas:
    Project:
      type: object
      properties:
        id:
          type: string
          title: Project Identifier
          description: The identifier of Project
        created_at:
          type:
          - string
          - 'null'
          format: date-time
          title: Creation date
          description: The creation date
        updated_at:
          type:
          - string
          - 'null'
          format: date-time
          title: Update date
          description: The update date
        attributes:
          type: object
          additionalProperties:
            type: string
          title: Arbitrary attributes
          description: Arbitrary attributes attached to this resource
        title:
          type: string
          title: Title
          description: The title of the project
        description:
          type: string
          title: Description
          description: The description of the project
        owner:
          type: string
          title: Owner
          description: The owner of the project
          deprecated: true
          x-stability: DEPRECATED
        namespace:
          type:
          - string
          - 'null'
          title: Namespace
          description: The namespace the project belongs in
          x-stability: EXPERIMENTAL
        organization:
          type:
          - string
          - 'null'
          title: Organization
          description: The organization the project belongs in
          x-stability: EXPERIMENTAL
        default_branch:
          type:
          - string
          - 'null'
          title: Default branch
          description: The default branch of the project
        status:
          type: object
          properties:
            code:
              type: string
              title: Status code
              description: ''
            message:
              type: string
              title: Status text
              description: ''
          required:
          - code
          - message
          additionalProperties: false
          title: Status
          description: The status of the project
        timezone:
          type: string
          title: Timezone
          description: Timezone of the project
        region:
          type: string
          title: Region
          description: The region of the project
        repository:
          type: object
          properties:
            url:
              type: string
              title: Git URL
              description: ''
            client_ssh_key:
              type:
              - string
              - 'null'
              title: SSH Key
              description: SSH Key used to access external private repositories.
          required:
          - url
          - client_ssh_key
          additionalProperties: false
          title: Repository information
          description: The repository information of the project
        default_domain:
          type:
          - string
          - 'null'
          title: Default domain
          description: The default domain of the project
        subscription:
          type: object
          properties:
            license_uri:
              type: string
              title: Subscription URI
              description: URI of the subscription
            plan:
              type: string
              enum:
              - 2xlarge
              - 2xlarge-high-memory
              - 4xlarge
              - 8xlarge
              - development
              - large
              - large-high-memory
              - medium
              - medium-high-memory
              - standard
              - standard-high-memory
              - xlarge
              - xlarge-high-memory
              title: Plan level
              description: ''
            environments:
              type: integer
              title: Environments number
              description: Number of environments
            storage:
              type: integer
              title: Storage
              description: Size of storage (in MB)
            included_users:
              type: integer
              title: Included users
              description: Number of users
            subscription_management_uri:
              type: string
              title: Subscription management URI
              description: URI for managing the subscription
            restricted:
              type: boolean
              title: Is subscription attributes frozen
              description: True if subscription attributes, like number of users, are frozen
            suspended:
              type: boolean
              title: Is subscription suspended
              description: Whether or not the subscription is suspended
            user_licenses:
              type: integer
              title: Current number of users
              description: Current number of users
            resources:
              type: object
              properties:
                container_profiles:
                  type: boolean
                  title: Is Container profiles enabled
                  description: Enable support for customizable container profiles.
                production:
                  type: object
                  properties:
                    legacy_development:
                      type: boolean
                      title: Legacy development sizing
                      description: Enable legacy development sizing for this environment type.
                    max_cpu:
                      type:
                      - number
                      - 'null'
                      format: float
                      title: Maximum CPU units
                      description: Maximum number of allocated CPU units.
                    max_memory:
                      type:
                      - integer
                      - 'null'
                      title: Maximum RAM
                      description: Maximum amount of allocated RAM.
                    max_environments:
                      type:
                      - integer
                      - 'null'
                      title: Maximum environments
                      description: Maximum number of environments
                  required:
                  - legacy_development
                  - max_cpu
                  - max_memory
                  - max_environments
                  additionalProperties: false
                  title: Production resources
                  description: Resources for production environments
                development:
                  type: object
                  properties:
                    legacy_development:
                      type: boolean
                      title: Legacy development sizing
                      description: Enable legacy development sizing for this environment type.
                    max_cpu:
                      type:
                      - number
                      - 'null'
                      format: float
                      title: Maximum CPU units
                      description: Maximum number of allocated CPU units.
                    max_memory:
                      type:
                      - integer
                      - 'null'
                      title: Maximum RAM
                      description: Maximum amount of allocated RAM.
                    max_environments:
                      type:
                      - integer
                      - 'null'
                      title: Maximum environments
                      description: Maximum number of environments
                  required:
                  - legacy_development
                  - max_cpu
                  - max_memory
                  - max_environments
                  additionalProperties: false
                  title: Development resources
                  description: Resources for development environments
              required:
              - container_profiles
              - production
              - development
              additionalProperties: false
              title: Resources limits
              description: Resources limits
            resource_validation_url:
              type: string
              title: Resource validation URL
              description: URL for resources validation
            image_types:
              type: object
              properties:
                only:
                  type: array
                  items:
                    type: string
                  title: Allowed image types
                  description: Image types to be allowed use.
                exclude:
                  type: array
                  items:
                    type: string
                  title: Denied image types
                  description: Image types to be denied use.
              additionalProperties: false
              title: Image type restrictions
              description: Restricted and denied image types
          required:
          - license_uri
          - storage
          - included_users
          - subscription_management_uri
          - restricted
          - suspended
          - user_licenses
          additionalProperties: false
          title: Subscription information
          description: The subscription information of the project
      required:
      - id
      - created_at
      - updated_at
      - attributes
      - title
      - description
      - owner
      - namespace
      - organization
      - default_branch
      - status
      - timezone
      - region
      - repository
      - default_domain
      - subscription
      additionalProperties: false
    AcceptedResponse:
      type: object
      properties:
        status:
          type: string
          title: Status text
          description: The status text of the response
        code:
          type: integer
          title: Status code
          description: The status code of the response
      required:
      - status
      - code
      additionalProperties: false
    ProjectPatch:
      type: object
      properties:
        attributes:
          type: object
          additionalProperties:
            type: string
          title: Arbitrary attributes
          description: Arbitrary attributes attached to this resource
        title:
          type: string
          title: Title
          description: The title of the project
        description:
          type: string
          title: Description
          description: The description of the project
        default_branch:
          type:
          - string
          - 'null'
          title: Default branch
          description: The default branch of the project
        timezone:
          type: string
          title: Timezone
          description: Timezone of the project
        region:
          type: string
          title: Region
          description: The region of the project
        default_domain:
          type:
          - string
          - 'null'
          title: Default domain
          description: The default domain of the project
      additionalProperties: false
    ProjectCapabilities:
      type: object
      properties:
        custom_domains:
          type: object
          properties:
            enabled:
              type: boolean
              title: Enabled
              description: If true, custom domains can be added to the project.
            environments_with_domains_limit:
              type: integer
              title: Domains limit
              description: Limit on the amount of non-production environments that can have domains set
          required:
          - enabled
          - environments_with_domains_limit
          additionalProperties: false
          title: Custom Domains
          description: ''
        source_operations:
          type: object
          properties:
            enabled:
              type: boolean
              title: Enabled
              description: If true, source operations can be triggered.
          required:
          - enabled
          additionalProperties: false
          title: Source Operations
          description: ''
        runtime_operations:
          type: object
          properties:
            enabled:
              type: boolean
              title: Enabled
              description: If true, runtime operations can be triggered.
          required:
          - enabled
          additionalProperties: false
          title: Runtime Operations
          description: ''
        outbound_firewall:
          type: object
          properties:
            enabled:
              type: boolean
              title: Enabled
              description: If true, outbound firewall can be used.
          required:
          - enabled
          additionalProperties: false
          title: Outbound Firewall
          description: ''
        metrics:
          type: object
          properties:
            max_range:
              type: string
              title: Max range
              description: Limit on the maximum time range allowed in metrics retrieval
          required:
          - max_range
          additionalProperties: false
          title: Metrics
          description: ''
        logs_forwarding:
          type: object
          properties:
            max_extra_payload_size:
              type: integer
              title: Max extra payload size
              description: Limit on the maximum size for the custom extra attributes added to the forwarded logs payload
          required:
          - max_extra_payload_size
          additionalProperties: false
          title: Logs Forwarding
          description: ''
        guaranteed_resources:
          type: object
          properties:
            enabled:
              type: boolean
              title: Enabled
              description: If true, guaranteed resources can be used
            instance_limit:
              type: integer
              title: Instance limit
              description: Instance limit for guaranteed resources
          required:
          - enabled
          - instance_limit
          additionalProperties: false
          title: Guaranteed Resources
          description: ''
        images:
          type: object
          additionalProperties:
            type: object
            additionalProperties:
              type: object
              properties:
                available:
                  type: boolean
                  title: Available
                  description: The image is available for deployment
              required:
              - available
              additionalProperties: false
          title: Images
          description: ''
        instance_limit:
          type: integer
          title: Instance limit
          description: Maximum number of instance per service
        build_resources:
          type: object
          properties:
            enabled:
              type: boolean
              title: Enabled
              description: If true, build resources can be modified.
            max_cpu:
              type: number
              format: float
              title: CPU
              description: ''
            max_memory:
              type: integer
              title: Memory
              description: ''
          required:
          - enabled
          - max_cpu
          - max_memory
          additionalProperties: false
          title: Build Resources
          description: ''
        data_retention:
          type: object
          properties:
            enabled:
              type: boolean
              title: Enabled
              description: If true, data retention configuration can be modified.
          required:
          - enabled
          additionalProperties: false
          title: Data Retention
          description: ''
        autoscaling:
          type: object
          properties:
            enabled:
              type: boolean
              title: Enabled
              description: If true, autoscaling can be configured.
          required:
          - enabled
          additionalProperties: false
          title: Autoscaling
          description: ''
        integrations:
          type: object
          properties:
            enabled:
              type: boolean
              title: Enabled
              description: If true, integrations can be used
            config:
              type: object
              properties:
                newrelic:
                  type: object
                  properties:
                    enabled:
                      type: boolean
                      title: Enabled
                      description: The integration is enabled.
                    role:
                      type: string
                      title: Role
                      description: Minimum required role for creating the integration.
                  additionalProperties: false
                  title: New Relic
                  description: New Relic log-forwarding integration configurations
                sumologic:
                  type: object
                  properties:
                    enabled:
                      type: boolean
                      title: Enabled
                      description: The integration is enabled.
                    role:
                      type: string
                      title: Role
                      description: Minimum required role for creating the integration.
                  additionalProperties: false
                  title: Sumo Logic
                  description: Sumo Logic log-forwarding integration configurations
                splunk:
                  type: object
                  properties:
                    enabled:
                      type: boolean
                      title: Enabled
                      description: The integration is enabled.
                    role:
                      type: string
                      title: Role
                      description: Minimum required role for creating the integration.
                  additionalProperties: false
                  title: Splunk
                  description: Splunk log-forwarding integration configurations
                httplog:
                  type: object
                  properties:
                    enabled:
                      type: boolean
                      title: Enabled
                      description: The integration is enabled.
                    role:
                      type: string
                      title: Role
                      description: Minimum required role for creating the integration.
                  additionalProperties: false
                  title: HTTP log-forwarding
                  description: HTTP log-forwarding integration configurations
                syslog:
                  type: object
                  properties:
                    enabled:
                      type: boolean
                      title: Enabled
                      description: The integration is enabled.
                    role:
                      type: string
                      title: Role
                      description: Minimum required role for creating the integration.
                  additionalProperties: false
                  title: Syslog
                  description: Syslog log-forwarding integration configurations
                webhook:
                  type: object
                  properties:
                    enabled:
                      type: boolean
                      title: Enabled
                      description: The integration is enabled.
                    role:
                      type: string
                      title: Role
                      description: Minimum required role for creating the integration.
                  additionalProperties: false
                  title: Webhook
                  description: Webhook integration configurations
                script:
                  type: object
                  properties:
                    enabled:
                      type: boolean
                      title: Enabled
                      description: The integration is enabled.
                    role:
                      type: string
                      title: Role
                      description: Minimum required role for creating the integration.
                  additionalProperties: false
                  title: Script
                  description: Script integration configurations
                github:
                  type: object
                  properties:
                    enabled:
                      type: boolean
                      title: Enabled
                      description: The integration is enabled.
                    role:
                      type: string
                      title: Role
                      description: Minimum required role for creating the integration.
                  additionalProperties: false
                  title: GitHub
                  description: GitHub integration configurations
                gitlab:
                  type: object
                  properties:
                    enabled:
                      type: boolean
                      title: Enabled
                      description: The integration is enabled.
                    role:
                      type: string
                      title: Role
                      description: Minimum required role for creating the integration.
                  additionalProperties: false
                  title: GitLab
                  description: GitLab integration configurations
                bitbucket:
                  type: object
                  properties:
                    enabled:
                      type: boolean
                      title: Enabled
                      description: The integration is enabled.
                    role:
                      type: string
                      title: Role
                      description: Minimum required role for creating the integration.
                  additionalProperties: false
                  title: Bitbucket
                  description: Bitbucket integration configurations
                bitbucket_server:
                  type: object
                  properties:
                    enabled:
                      type: boolean
                      title: Enabled
                      description: The integration is enabled.
                    role:
                      type: string
                      title: Role
                      description: Minimum required role for creating the integration.
                  additionalProperties: false
                  title: Bitbucket Server
                  description: Bitbucket server integration configurations
                health.email:
                  type: object
                  properties:
                    enabled:
                      type: boolean
                      title: Enabled
                      description: The integration is enabled.
                    role:
                      type: string
                      title: Role
                      description: Minimum required role for creating the integration.
                  additionalProperties: false
                  title: Health Email
                  description: Health Email notification integration configurations
                health.webhook:
                  type: object
                  properties:
                    enabled:
                      type: boolean
                      title: Enabled
                      description: The integration is enabled.
                    role:
                      type: string
                      title: Role
                      description: Minimum required role for creating the integration.
                  additionalProperties: false
                  title: Health WebHook
                  description: ''
                health.pagerduty:
                  type: object
                  properties:
                    enabled:
                      type: boolean
                      title: Enabled
                      description: The integration is enabled.
                    role:
                      type: string
                      title: Role
                      description: Minimum required role for creating the integration.
                  additionalProperties: false
                  title: Health PagerDuty
                  description: Health PagerDuty notification integration configurations
                health.slack:
                  type: object
                  properties:
                    enabled:
                      type: boolean
                      title: Enabled
                      description: The integration is enabled.
                    role:
                      type: string
                      title: Role
                      description: Minimum required role for creating the integration.
                  additionalProperties: false
                  title: Health Slack
                  description: Health Slack notification integration configurations
                cdn.fastly:
                  type: object
                  properties:
                    enabled:
                      type: boolean
                      title: Enabled
                      description: The integration is enabled.
                    role:
                      type: string
                      title: Role
                      description: Minimum required role for creating the integration.
                  additionalProperties: false
                  title: Fastly CDN
                  description: Fastly CDN integration configurations
                blackfire:
                  type: object
                  properties:
                    enabled:
                      type: boolean
                      title: Enabled
                      description: The integration is enabled.
                    role:
                      type: string
                      title: Role
                      description: Minimum required role for creating the integration.
                  additionalProperties: false
                  title: Blackfire
                  description: Blackfire integration configurations
                otlplog:
                  type: object
                  properties:
                    enabled:
                      type: boolean
                      title: Enabled
                      description: The integration is enabled.
                    role:
                      type: string
                      title: Role
                      description: Minimum required role for creating the integration.
                  additionalProperties: false
                  title: OpenTelemetry
                  description: OpenTelemetry log-forwarding integration configurations
              additionalProperties: false
              title: Config
              description: ''
            allowed_integrations:
              type: array
              items:
                type: string
              title: Allowed Integrations
              description: List of integrations allowed to be created
          required:
          - enabled
          additionalProperties: false
          title: Integrations
          description: ''
      required:
      - metrics
      - logs_forwarding
      - guaranteed_resources
      - images
      - instance_limit
      - build_resources
      - data_retention
      - autoscaling
      additionalProperties: false
  securitySchemes:
    OAuth2:
      type: oauth2
      flows:
        authorizationCode:
          tokenUrl: https://auth.api.platform.sh/oauth2/token
          refreshUrl: https://auth.api.platform.sh/oauth2/token
          scopes: {}
          authorizationUrl: https://auth.api.platform.sh/oauth2/authorize
      description: ''
    OAuth2Admin:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://auth.api.platform.sh/oauth2/token
          refreshUrl: ''
          scopes:
            admin: administrative operations
      description: ''
x-tagGroups:
- name: Organization Administration
  tags:
  - Organizations
  - Organization Members
  - Organization Invitations
  - Organization Projects
  - Add-ons
- name: Project Administration
  tags:


# --- truncated at 32 KB (32 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/upsun/refs/heads/main/openapi/upsun-project-api-openapi.yml