LogoLogo
  • Getting started
    • Welcome
    • Introduction to Multitudes
    • How Multitudes Works
  • Configuration & Setup
    • Setup: Integration Permissions
    • Permissions and roles
    • Adding Users & Teams
    • Configuring your Team
    • User Linking
    • Configuring Working Hours
    • Customize Work Categories
    • Alerts Configuration
    • Customize Targets
  • Metrics & Definitions
    • Multitudes Insights
    • Our Approach to Metrics
    • Process Metrics
      • Flow of Work
        • Change Lead Time
        • Coding Time
        • Review Wait Time
        • Editing Time
        • Deploy Time
        • PR Size
        • Focus Time
      • Value Delivery
        • Deployment Frequency
        • Merge Frequency
        • Types of Work
        • Feature vs Maintenance Work
      • Quality of Work
        • Change Failure Rate
        • Mean Time to Recovery
        • Mean Time to Acknowledge
        • Number of Pages
        • Deployment Failure Rate
    • People Metrics
      • Wellbeing
        • Out-of-Hours Work
        • Page Disruptions
        • Meeting Load
      • Collaboration
        • PR Participation Gap
        • PR Feedback Given
        • PR Feedback Received
        • Feedback Flows
    • Deployment Metrics
  • Integrations
    • Deployments API
    • GitHub Actions
    • Google Calendar
    • Outlook Calendar
    • Jira
    • Linear
    • Opsgenie
    • PagerDuty
    • Slack
  • Knowledge base
    • Annotations
    • Exporting your data
    • Types of Alerts
      • Daily Blocked PRs alert
      • Trend Summary alert
      • Multitudes AI Coach
      • 1:1 Prompts
      • Annotations alert
    • Troubleshooting Missing Commits
    • Bot Activity
    • Collaborative PRs & All PRs Toggles
  • Account Management
    • Billing & Payments
    • Security & Privacy
Powered by GitBook

© Multitudes 2025

On this page
  • Deployments API Benefits
  • How it works
  • Deployments
  • Authentication
  • POST a deployment
  • Path
  • Body parameters
  • Sending a Test deployment
  • Responses
  • Examples
  • curl
  • Retrieving deployment data
  • Path
  • Query parameters
  • Responses
  • Examples
  • curl
  • GitHub Actions
  • Learn more about Deployments Metrics here

Was this helpful?

  1. Integrations

Deployments API

How to use Multitudes' API endpoints to track deployments and integrate with your CI/CD pipeline.

PreviousDeployment MetricsNextGitHub Actions

Last updated 2 months ago

Was this helpful?

Deployments API Benefits

Use our API to get more flexibility and control over how you track your devOps activity.

  • See - how long code takes to get deployed once a PR has been merged and include Deploy Time in calculations

  • See how often code is successfully deployed to Production with ()

  • Keep track of

You can use either our Deployments API or our to provide us with data about deployments. If you already have our GitHub Actions integration configured, generating a token to connect to our Deployments API will override the data from GitHub Actions.

How it works

on how data received via API is used to calculate Deployment metrics in Multitudes.

Deployments

Send us information about your deployments from any CI/CD tool. We’ll use this to calculate metrics such as Change Lead Time through to deployment and Deployment Frequency (more info on ).

Our data pipeline runs every 6 hours so you may need to wait to see data after you start sending.

Authentication

  1. On the resulting modal, click “Generate Token”.

  2. After the token has been generated, click "Copy Token" and use it in your API calls (see Step 2 below). You will only see this token once!

When you close out of the modal, the Deployments API card will now have a “Configure” button instead of “Connect” (see screenshot at left below). Clicking it will give you options to revoke your token or regenerate a new one, should you need it (see screenshot at right below).

POST a deployment

To tell us about a deployment, make an HTTP POST request to our endpoint with the generated authentication token in the header and required parameters.

You should make one POST per repository being deployed and include the commit SHAs of the merge commit for each PR being deployed. This is particularly important if you are deploying multiple PRs at once or if your PRs are being merged via an intermediary branch.

Path

https://api.developer.multitudes.co/deployments 

Body parameters

  • commitSha string or string[] Required

If a deployment only has commits authored by bots, these will be included in the grey Organization line only.

  • environmentName string Required‍

If you send us deployments with the same commits and environment name, we will dedupe by taking the latest received deployment.

  • deployedAt UTC datetime in ISO8601 format

The time of the deployment. Default: the timestamp that the POST request was received by our API

  • title string

‍A title to give your deployment for easy identification on our drilldown tables. Default: the commit message of the matched commit with the most recent commit timestamp

  • tags string

A custom field for you to add labels (e.g., ["is_fix", "is_failure", "sev1", "product_launch"]). In the future, we plan to support filtering on these labels. Default: none

Sending a Test deployment

When you set up the Deployments API, you can send us a Test Deployment to ensure its working.

To do so, add the following Body parameter: isTest boolean true/false

Any deployments that include the isTest parameter will be excluded from any data analysis. Default: false

Responses

Below is formatted as code, response text, description

  • 201, Created successfully , Deploy registered successfully.

  • 400, Invalid request , The data is not in the expected format, the response will provide a list of fields that have an issue.

  • 401, Unauthorized , API key not valid.

  • 403, Forbidden, API key does not have the correct scopes or organisation for this request or has been revoked.

  • 500, Internal server error. Please contact support@multitudes.com for more information. An unknown error has occurred, please contact support with the returned request ID for us to investigate.

Examples

curl

--fail-with-body flag to ensure cURL will exit with code 22 on an HTTP failure status code (>=400). Otherwise, you can look for a non-20x status code to detect a failure.

curl --request POST \
  --fail-with-body \
  --url "https://api.developer.multitudes.co/deployments" \
  --header "Content-Type: application/json" \
  --header "Authorization: $MULTITUDES_ACCESS_TOKEN" \
  --data '{"commitSha": "$COMMIT_SHA", "environmentName":"$ENVIRONMENT"}'

With a list of commit SHAs:

curl --request POST \
  --fail-with-body \
  --url "https://api.developer.multitudes.co/deployments" \
  --header "Content-Type: application/json" \
  --header "Authorization: $MULTITUDES_ACCESS_TOKEN" \
  --data '{
   "commitSha": [
       "8750d79cce5f2d137c3f4a34cdd4c9da76c26cfb",
       "561b41361698b579e40f0f9a68491a0e64f48849"
   ],
   "environmentName": "test"
}'

With a list of all SHAs since the last commit to this branch:

This is especially useful if your feature branches are merged to a develop/staging/test branch and then that branch is eventually merged into a "production" branch for deployment.

PREV_DEPLOY=HEAD^1
CURRENT_DEPLOY=HEAD
# get the commit sha's of all commits after the previous deploy to the current deploy
REV_LIST=`git rev-list --ancestry-path $PREV_DEPLOY..$CURRENT_DEPLOY`
# make the rev_list into json
REV_LIST=[\"${REV_LIST//[^a-f0-9]/\", \"}\"]
# post the deployment info with curl
curl --request POST \
  --fail-with-body \
  --url "https://api.developer.multitudes.co/deployments" \
  --header "Content-Type: application/json" \
  --header "Authorization: $MULTITUDES_ACCESS_TOKEN" \
  --data '{
   "commitSha": $REV_LIST,
   "environmentName": "$ENVIRONMENT"
}'

Sending a test deployment:

curl --request POST \
  --fail-with-body \
  --url "https://api.developer.multitudes.co/deployments" \
  --header "Content-Type: application/json" \
  --header "Authorization: $MULTITUDES_ACCESS_TOKEN" \
  --data '{
   "commitSha": "8750d79cce5f2d137c3f4a34cdd4c9da76c26cfb",
   "environmentName": "test",
   "isTest": true
}'

Retrieving deployment data

After sending a deployment through the API, you can verify the transmitted data using our GET endpoint with the generated authentication token in the header.

Path

https://api.developer.multitudes.co/deployments 

Query parameters

  • page number

The page number of of the deployments. Default: 1

  • pageSize number

The number of deployments to show per page. Maximum is 100. Default: 20

  • includeTests boolean true/false

Whether to include deployments with isTest set to true in the response. Default: false E.g. pageSize 20, page 2, would return deployments 21-40.

Responses

Below is formatted as code, response text, description

  • 200, OK , Retrieved deploys successfully.

  • 401, Unauthorized , API key not valid.

  • 403, Forbidden, API key does not have the correct scopes or organisation for this request or has been revoked.

  • 500, Internal server error. Please contact support@multitudes.com for more information. An unknown error has occurred, please contact support for us to investigate.

Examples

curl

--fail-with-body flag to ensure cURL will exit with code 22 on an HTTP failure status code (>=400). Otherwise, you can look for a non-20x status code to detect a failure.

curl --request GET \
  --fail-with-body \
  --url "https://api.developer.multitudes.co/deployments" \
  --header "Content-Type: application/json" \
  --header "Authorization: $MULTITUDES_ACCESS_TOKEN"

Including test deployments:

curl --request GET \
  --fail-with-body \
  --url "https://api.developer.multitudes.co/deployments?includeTests=true" \
  --header "Content-Type: application/json" \
  --header "Authorization: $MULTITUDES_ACCESS_TOKEN"

With different page and page size:

curl --request GET \
  --fail-with-body \
  --url "https://api.developer.multitudes.co/deployments?page=2&pageSize=25" \
  --header "Content-Type: application/json" \
  --header "Authorization: $MULTITUDES_ACCESS_TOKEN"

GitHub Actions

Example with a single commit SHA:

jobs:
  log-deployment:
    runs-on: ubuntu-latest
    needs: [ <DEPLOYMENT_JOB> ]
    environment: ${{ inputs.environment }}
    steps:
      - run: |
          curl --request POST \
            --fail-with-body \
            --url "https://api.developer.multitudes.co/deployments" \
            --header "Content-Type: application/json" \
            --header "Authorization: ${{ secrets.MULTITUDES_ACCESS_TOKEN }}" \
            --data '{"commitSha": "${{github.sha}}","environmentName": "${{inputs.environment}}"}'

Example collecting all SHAs since the last commit to this branch:

jobs:
  log-deployment:
    runs-on: ubuntu-latest
    needs: [ <DEPLOYMENT_JOB> ]
    environment: ${{ inputs.environment }}
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0
      - run: |
          PREV_DEPLOY=HEAD^1
          CURRENT_DEPLOY=HEAD
          # get the commit sha's of all commits after the previous deploy to the current deploy
          REV_LIST=`git rev-list --ancestry-path $PREV_DEPLOY..$CURRENT_DEPLOY`
          # make the rev_list into json
          REV_LIST=[\"${REV_LIST//[^a-f0-9]/\", \"}\"]
          # post the deploy details        
          curl --request POST \
            --fail-with-body \
            --url "https://api.developer.multitudes.co/deployments" \
            --header "Content-Type: application/json" \
            --header "Authorization: ${{ secrets.MULTITUDES_ACCESS_TOKEN }}" \
            --data "{\"commitSha\": $REV_LIST, \"environmentName\": \"${{inputs.environment}}\"}"

In the Multitudes app, go to and click on the “Connect” button in the Deployments API card.

Screenshot
Screenshot

Note that we include each deployment we receive a POST for in our metric calculations. You may want to only POST deployments to your production environment. See more details .

The SHA-1 value(s) of the commit(s) being deployed. Each value should have a minimum of 7 characters. While this is likely fine for most organizations, you may wish to send us a longer SHA if you’d like more assurance that they will be matched to the correct commit and PR data ().

Commits should all be from the same repository. This will determine how the our repositories filter interacts with charts like . If there are commits from different repos in the commit_sha field, we will assume the repository of the first commit in the list.

Commits that are authored by users who are not a in Multitudes will be filtered out of results. If a deployment has no commits authored by Multitudes contributors, the whole deployment will be filtered out of results as we won't be able to attribute it to a Multitudes contributor nor their team.

The environment that this is deploying to. We recommend only sending us deployments to your main production environment for an accurate indicator of . We don't filter on environmentName. ‍ If you send us deployments to multiple environments for the same commits, we will take the time of the latest deploy to calculate the Deploy Time (and therefore Change Lead Time) of a matched PR. This is because we assume the PR hasn't been fully released until it has been deployed to all environments.

Learn more about Deployments Metrics

Deploy Time
Change Lead Time
Deployment Frequency
a key DORA metric
Deployment Failure Rate
GitHub Actions integration
See here for details
Metrics & Definitions
Settings > Integrations
here
see here for more information on the uniqueness of short SHA-1 values
Deployment Frequency
Contributor
Deployment Frequency
here