Port Action Runs API

The Action Runs API from Port — 6 operation(s) for action runs.

Operations 8

POST /v1/actions/{action_identifier}/runs Execute a self-service action
PATCH /v1/actions/runs/{run_id} Update an action run
GET /v1/actions/runs/{run_id} Get an action run's details
PATCH /v1/actions/runs/{run_id}/approval Approve an action run
GET /v1/actions/runs Get all action runs
POST /v1/actions/runs/{run_id}/logs Add a log to an action run
GET /v1/actions/runs/{run_id}/logs Get an action's run logs
GET /v1/actions/runs/{run_id}/approvers Get an action run's approvers

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/port-action-runs-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

port-action-runs-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Port Action Runs API
  version: '1.0'
servers:
- url: https://api.getport.io
  description: Base URL declared by the provider in apis.yml (roadmap#122).
tags:
- name: Action Runs
paths:
  /v1/actions/{action_identifier}/runs:
    post:
      summary: Execute a self-service action
      tags:
      - Action Runs
      description: This route allows you to execute a self-service action, thus creating an action run.<br/><br/>To learn more about action runs, check out the [documentation](https://docs.port.io/create-self-service-experiences/reflect-action-progress/).
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                properties:
                  type: object
                  description: The action's user inputs, in `"key"`:`"value"` pairs, where the key is the input's identifier and the value is the input's value.
                entity:
                  type: string
                  description: The identifier of the entity that the action will be executed on, if relevant.
              additionalProperties: false
              required:
              - properties
        required: true
      parameters:
      - schema:
          type: string
          format: email
        in: query
        name: run_as
        required: false
        description: The executing user of the action. If not provided, the action will be run on behalf of the user/machine who initiated the action (identified by the bearer token used to execute this route).
      - schema:
          type: string
          minLength: 1
        in: path
        name: action_identifier
        required: true
        description: The identifier of the action/automation you want to operate on.
      security:
      - bearer: []
      responses:
        '202':
          description: OK
          content:
            application/json:
              schema:
                properties:
                  ok:
                    enum:
                    - true
                  run:
                    type: object
                    properties:
                      id:
                        type: string
                      blueprint:
                        type: object
                        properties:
                          identifier:
                            type: string
                          title:
                            type:
                            - string
                            - 'null'
                          icon:
                            type:
                            - string
                            - 'null'
                          deleted:
                            type: boolean
                        required:
                        - identifier
                      entity:
                        type: object
                        properties:
                          identifier:
                            type: string
                          title:
                            type:
                            - string
                            - 'null'
                          icon:
                            type:
                            - string
                            - 'null'
                          deleted:
                            type: boolean
                        required:
                        - identifier
                      action:
                        type: object
                        properties:
                          identifier:
                            type: string
                          title:
                            type:
                            - string
                            - 'null'
                          icon:
                            type:
                            - string
                            - 'null'
                          deleted:
                            type: boolean
                        required:
                        - identifier
                      properties:
                        type: object
                      rawProperties:
                        type: object
                      endedAt:
                        type: string
                        format: date-time
                      source:
                        type:
                        - string
                        - object
                      requiredApproval:
                        type:
                        - boolean
                        - object
                        properties:
                          type:
                            type: string
                            enum:
                            - ALL
                            - ANY
                        required:
                        - type
                      status:
                        type: string
                      statusLabel:
                        type:
                        - string
                        - 'null'
                      link:
                        type:
                        - array
                        - string
                        items:
                          type: string
                      summary:
                        type: string
                      approval:
                        type:
                        - object
                        - 'null'
                        properties:
                          description:
                            type: string
                          userId:
                            type:
                            - string
                            - 'null'
                          impersonatedUserId:
                            type:
                            - string
                            - 'null'
                          state:
                            type: string
                      payload:
                        type:
                        - object
                        - 'null'
                        properties:
                          type:
                            type: string
                          url:
                            type: string
                            format: uri
                          agent:
                            type: boolean
                          synchronized:
                            type: boolean
                          method:
                            type: string
                          headers:
                            type: object
                            properties:
                              RUN_ID:
                                type: string
                          body:
                            type: object
                            properties:
                              port_context:
                                type: object
                                properties:
                                  runId:
                                    type: string
                      response:
                        type:
                        - string
                        - array
                        - object
                        items: {}
                      pendingExecution:
                        type: boolean
                      claimedUntil:
                        type: string
                        format: date-time
                      installationId:
                        type: string
                      createdBy:
                        type: string
                      impersonatedBy:
                        type: string
                      impersonatedUserId:
                        type: string
                      updatedBy:
                        type: string
                      createdAt:
                        type: string
                        format: date-time
                      updatedAt:
                        type: string
                        format: date-time
                    required:
                    - id
                    - action
                    - properties
                    - requiredApproval
                    - source
                    - status
                required:
                - ok
                additionalProperties: false
                description: OK
        '401':
          description: Default Response
          content:
            application/json:
              schema:
                properties:
                  ok:
                    const: false
                  error:
                    type: string
                  message:
                    type: string
                required:
                - ok
                - error
                additionalProperties: false
        '404':
          description: A resource with the provided identifier was not found
          content:
            application/json:
              schema:
                properties:
                  ok:
                    const: false
                  error:
                    type: string
                  message:
                    type: string
                required:
                - ok
                - error
                - message
                additionalProperties: false
                description: A resource with the provided identifier was not found
        '413':
          description: Request body is too large (limit is 1MiB)
          content:
            application/json:
              schema:
                properties:
                  ok:
                    const: false
                  error:
                    type: string
                  message:
                    type: string
                required:
                - ok
                - error
                additionalProperties: false
                description: Request body is too large (limit is 1MiB)
        '422':
          description: The json provided does not match the route's schema
          content:
            application/json:
              schema:
                properties:
                  ok:
                    const: false
                  error:
                    type: string
                  message:
                    type: string
                required:
                - ok
                - error
                - message
                additionalProperties: false
                description: The json provided does not match the route's schema
  /v1/actions/runs/{run_id}:
    patch:
      summary: Update an action run
      tags:
      - Action Runs
      description: This route allows you to update an action run's details. This can be used to update the run's status & label, and add links to it (e.g. external logs of the job runner).<br/><br/>To learn more about action runs, check out the [documentation](https://docs.port.io/create-self-service-experiences/reflect-action-progress/).
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                status:
                  type: string
                  enum:
                  - SUCCESS
                  - FAILURE
                statusLabel:
                  type: string
                  description: A label to describe the status of the action run.
                link:
                  description: One or more links to be displayed in the run's page in Port. For example, a link to the external logs of the job runner.
                  oneOf:
                  - type: string
                    title: string
                  - type: array
                    title: array
                    items:
                      type: string
                message:
                  type: object
                  deprecated: true
                summary:
                  type: string
                  description: A summary of the action run, which will be displayed in the run's page in Port.
                externalRunId:
                  type: string
                  description: The run id of your backend, for example the id that GitHub gives the workflow. This can be used to identify the action run instead of the `run_id`.
              additionalProperties: false
      parameters:
      - schema:
          type: string
          enum:
          - v1
          - v2
        in: query
        name: version
        required: false
        description: Specifies the API version to use. Please use `v2` for the latest version of the API.
      - schema:
          type: string
        in: path
        name: run_id
        required: true
        description: The identifier of the action run.
      security:
      - bearer: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                properties:
                  ok:
                    enum:
                    - true
                  run:
                    type: object
                    properties:
                      id:
                        type: string
                      blueprint:
                        type: object
                        properties:
                          identifier:
                            type: string
                          title:
                            type:
                            - string
                            - 'null'
                          icon:
                            type:
                            - string
                            - 'null'
                          deleted:
                            type: boolean
                        required:
                        - identifier
                      entity:
                        type: object
                        properties:
                          identifier:
                            type: string
                          title:
                            type:
                            - string
                            - 'null'
                          icon:
                            type:
                            - string
                            - 'null'
                          deleted:
                            type: boolean
                        required:
                        - identifier
                      action:
                        type: object
                        properties:
                          identifier:
                            type: string
                          title:
                            type:
                            - string
                            - 'null'
                          icon:
                            type:
                            - string
                            - 'null'
                          deleted:
                            type: boolean
                        required:
                        - identifier
                      properties:
                        type: object
                      rawProperties:
                        type: object
                      endedAt:
                        type: string
                        format: date-time
                      source:
                        type:
                        - string
                        - object
                      requiredApproval:
                        type:
                        - boolean
                        - object
                        properties:
                          type:
                            type: string
                            enum:
                            - ALL
                            - ANY
                        required:
                        - type
                      status:
                        type: string
                      statusLabel:
                        type:
                        - string
                        - 'null'
                      link:
                        type:
                        - array
                        - string
                        items:
                          type: string
                      summary:
                        type: string
                      approval:
                        type:
                        - object
                        - 'null'
                        properties:
                          description:
                            type: string
                          userId:
                            type:
                            - string
                            - 'null'
                          impersonatedUserId:
                            type:
                            - string
                            - 'null'
                          state:
                            type: string
                      payload:
                        type:
                        - object
                        - 'null'
                        properties:
                          type:
                            type: string
                          url:
                            type: string
                            format: uri
                          agent:
                            type: boolean
                          synchronized:
                            type: boolean
                          method:
                            type: string
                          headers:
                            type: object
                            properties:
                              RUN_ID:
                                type: string
                          body:
                            type: object
                            properties:
                              port_context:
                                type: object
                                properties:
                                  runId:
                                    type: string
                      response:
                        type:
                        - string
                        - array
                        - object
                        items: {}
                      pendingExecution:
                        type: boolean
                      claimedUntil:
                        type: string
                        format: date-time
                      installationId:
                        type: string
                      createdBy:
                        type: string
                      impersonatedBy:
                        type: string
                      impersonatedUserId:
                        type: string
                      updatedBy:
                        type: string
                      createdAt:
                        type: string
                        format: date-time
                      updatedAt:
                        type: string
                        format: date-time
                    required:
                    - id
                    - action
                    - properties
                    - requiredApproval
                    - source
                    - status
                required:
                - ok
                additionalProperties: false
                description: OK
        '401':
          description: Default Response
          content:
            application/json:
              schema:
                properties:
                  ok:
                    const: false
                  error:
                    type: string
                  message:
                    type: string
                required:
                - ok
                - error
                additionalProperties: false
        '404':
          description: A resource with the provided identifier was not found
          content:
            application/json:
              schema:
                properties:
                  ok:
                    const: false
                  error:
                    type: string
                  message:
                    type: string
                required:
                - ok
                - error
                - message
                additionalProperties: false
                description: A resource with the provided identifier was not found
        '413':
          description: Request body is too large (limit is 1MiB)
          content:
            application/json:
              schema:
                properties:
                  ok:
                    const: false
                  error:
                    type: string
                  message:
                    type: string
                required:
                - ok
                - error
                additionalProperties: false
                description: Request body is too large (limit is 1MiB)
        '422':
          description: The json provided does not match the route's schema
          content:
            application/json:
              schema:
                properties:
                  ok:
                    const: false
                  error:
                    type: string
                  message:
                    type: string
                required:
                - ok
                - error
                - message
                additionalProperties: false
                description: The json provided does not match the route's schema
    get:
      summary: Get an action run's details
      tags:
      - Action Runs
      description: 'This route allows you to fetch the details of an action run.<br/><br/>To learn more about action runs, check out the [documentation](https://docs.port.io/create-self-service-experiences/reflect-action-progress/).<br/><br/>:::info Version parameter<br/>Set the `version` parameter to `v2` for the latest version of the API.<br/>:::'
      parameters:
      - schema:
          type: string
          enum:
          - v1
          - v2
        in: query
        name: version
        required: false
        description: Specifies the API version to use. Please use `v2` for the latest version of the API.
      - schema:
          type: string
        in: path
        name: run_id
        required: true
        description: The identifier of the action run.
      security:
      - bearer:
        - read:runs
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                properties:
                  ok:
                    enum:
                    - true
                  run:
                    type: object
                    properties:
                      id:
                        type: string
                      blueprint:
                        type: object
                        properties:
                          identifier:
                            type: string
                          title:
                            type:
                            - string
                            - 'null'
                          icon:
                            type:
                            - string
                            - 'null'
                          deleted:
                            type: boolean
                        required:
                        - identifier
                      entity:
                        type: object
                        properties:
                          identifier:
                            type: string
                          title:
                            type:
                            - string
                            - 'null'
                          icon:
                            type:
                            - string
                            - 'null'
                          deleted:
                            type: boolean
                        required:
                        - identifier
                      action:
                        type: object
                        properties:
                          identifier:
                            type: string
                          title:
                            type:
                            - string
                            - 'null'
                          icon:
                            type:
                            - string
                            - 'null'
                          deleted:
                            type: boolean
                        required:
                        - identifier
                      properties:
                        type: object
                      rawProperties:
                        type: object
                      endedAt:
                        type: string
                        format: date-time
                      source:
                        type:
                        - string
                        - object
                      requiredApproval:
                        type:
                        - boolean
                        - object
                        properties:
                          type:
                            type: string
                            enum:
                            - ALL
                            - ANY
                        required:
                        - type
                      status:
                        type: string
                      statusLabel:
                        type:
                        - string
                        - 'null'
                      link:
                        type:
                        - array
                        - string
                        items:
                          type: string
                      summary:
                        type: string
                      approval:
                        type:
                        - object
                        - 'null'
                        properties:
                          description:
                            type: string
                          userId:
                            type:
                            - string
                            - 'null'
                          impersonatedUserId:
                            type:
                            - string
                            - 'null'
                          state:
                            type: string
                      payload:
                        type:
                        - object
                        - 'null'
                        properties:
                          type:
                            type: string
                          url:
                            type: string
                            format: uri
                          agent:
                            type: boolean
                          synchronized:
                            type: boolean
                          method:
                            type: string
                          headers:
                            type: object
                            properties:
                              RUN_ID:
                                type: string
                          body:
                            type: object
                            properties:
                              port_context:
                                type: object
                                properties:
                                  runId:
                                    type: string
                      response:
                        type:
                        - string
                        - array
                        - object
                        items: {}
                      pendingExecution:
                        type: boolean
                      claimedUntil:
                        type: string
                        format: date-time
                      installationId:
                        type: string
                      createdBy:
                        type: string
                      impersonatedBy:
                        type: string
                      impersonatedUserId:
                        type: string
                      updatedBy:
                        type: string
                      createdAt:
                        type: string
                        format: date-time
                      updatedAt:
                        type: string
                        format: date-time
                    required:
                    - id
                    - action
                    - properties
                    - requiredApproval
                    - source
                    - status
                required:
                - ok
                additionalProperties: false
                description: OK
        '401':
          description: Default Response
          content:
            application/json:
              schema:
                properties:
                  ok:
                    const: false
                  error:
                    type: string
                  message:
                    type: string
                required:
                - ok
                - error
                additionalProperties: false
        '404':
          description: A resource with the provided identifier was not found
          content:
            application/json:
              schema:
                properties:
                  ok:
                    const: false
                  error:
                    type: string
                  message:
                    type: string
                required:
                - ok
                - error
                - message
                additionalProperties: false
                description: A resource with the provided identifier was not found
  /v1/actions/runs/{run_id}/approval:
    patch:
      summary: Approve an action run
      tags:
      - Action Runs
      description: 'This route allows you to approve or decline a request to execute an action that requires approval.<br/><br/>To learn more about manual approval for actions, check out the [documentation](https://docs.port.io/create-self-service-experiences/set-self-service-actions-rbac/#configure-manual-approval-for-actions).<br/><br/>:::info Version parameter value<br/>Set the `version` parameter to `v2` for the latest version of the API.<br/>:::'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                status:
                  type: string
                  enum:
                  - DECLINE
                  - APPROVE
                description:
                  type: string
                  description: A description and/or reason for the given status.
              additionalProperties: false
              required:
              - status
        required: true
      parameters:
      - schema:
          type: string
          enum:
          - v1
          - v2
        in: query
        name: version
        required: false
        description: Specifies the API version to use. Please use `v2` for the latest version of the API.
      - schema:
          type: string
        in: path
        name: run_id
        required: true
        description: The identifier of the action run.
      security:
      - bearer: []
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                properties:
                  ok:
                    enum:
                    - true
                  run:
                    type: object
                    properties:
                      id:
                        type: string
                      blueprint:
                        type: object
                        properties:
                          identifier:
                            type: string
                          title:
                            type:
                            - string
                            - 'null'
                          icon:
                            type:
                            - string
                            - 'null'
                          deleted:
                            type: boolean
                        required:
                        - identifier
                      entity:
                        type: object
                        properties:
                          identifier:
                            type: string
                          title:
                            type:
                            - string
              

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