For the complete documentation index, see llms.txt. This page is also available as Markdown.

Multitudes API

Export data from Multitudes via API

The Multitudes API is a public REST API that lets you interact with the Multitudes app programmatically. You can query chart data, retrieve drilldown data for all metrics in the app, and retrieve metadata about your organization.

All data is returned in a consistent JSON format that makes it easy to combine with other data sources or build custom workflows around your engineering data.

Before you start

All endpoints are served from https://api.multitudes.co. An OpenAPI spec is available without authentication at https://api.multitudes.co/v1/openapi.json.

Authenticate using an organization API key passed as Authorization: Bearer <token>. Keys must have the data:read scope to access metric endpoints. See how to generate an API key here.

Rate limits

Current rate limits are as follows:

  • 6 requests per second

  • 30 requests per minute

  • 150 requests per hour

These limits are per key and are set to ensure API and app performance with the API load we're expecting. We'll be monitoring API usage and revisiting these rate limits over time.

Versioning

All endpoints are versioned, with the current version being v1.

Endpoints

List all teams in the organization.

get
Authorizations
AuthorizationstringRequired

Authorization: Bearer . A raw token in the Authorization header is also accepted for backward compatibility.

Query parameters
includeArchivedbooleanOptional

When true, archived teams are included in the response.

Default: false
Responses
200Success
application/json
get/v1/teams
GET /customer/v1/teams HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200Success
{
  "items": [
    {
      "id": "text",
      "name": "text",
      "status": "active"
    }
  ]
}

List all supported metric types.

get

Returns each metric with a description and the optional query parameters it accepts beyond the standard ones (from, to, timescale, teamIds, teamNames).

Authorizations
AuthorizationstringRequired

Authorization: Bearer . A raw token in the Authorization header is also accepted for backward compatibility.

Responses
200Success
application/json
get/v1/metrics
GET /customer/v1/metrics HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200Success
{
  "items": [
    {
      "type": "leadTime",
      "description": "text",
      "acceptedQueryParams": [
        "repositories",
        "excludeWeekendHours"
      ],
      "drilldown": true
    }
  ]
}

Retrieve chart data for a metric.

get

Returns time-series or aggregate chart data for the specified metric. Use GET /customer/v1/metrics to discover supported metrics and their accepted query parameters.

Authorizations
AuthorizationstringRequired

Authorization: Bearer . A raw token in the Authorization header is also accepted for backward compatibility.

Path parameters
metricTypestring · enumRequired

The metric to retrieve.

Possible values:
Query parameters
fromstringRequired

Start of the date range as an ISO 8601 datetime. Required.

Example: 2025-01-01T00:00:00Z
tostringRequired

End of the date range as an ISO 8601 datetime. Required.

Example: 2025-03-31T23:59:59Z
timescalestring · enumOptional

Timescale for bucketing data points.

Default: weeklyPossible values:
teamIdsstringOptional

Comma-separated team IDs to filter (mutually exclusive with teamNames, max 50).

teamNamesstringOptional

Comma-separated team names to filter (mutually exclusive with teamIds, max 50).

repositoriesstringOptional

Comma-separated repository names to filter (GitHub metrics only).

excludeWeekendHoursbooleanOptional

Exclude weekend hours from calculations. Applies to PR cycle time metrics.

Default: false
includeSelfiePrsbooleanOptional

Include PRs where the author also reviewed. Default false.

Default: false
defaultBranchOnlybooleanOptional

Limit to commits/PRs on default branch only. Applies to githubFeatureVsMaintenance.

Default: false
excludeOrganizationbooleanOptional

Exclude the org-level rollup series from the response. Default false.

Default: false
viewstring · enumOptional

View type for githubFeatureVsMaintenance. Default timeSeries.

Possible values:
groupBystring · enumOptional

How to group chart series. Defaults to team. AI metrics support: jobLevel, timezone, aiTool, nonContributors. PagerDuty metrics support: service, escalationPolicy.

Default: teamPossible values:
individualbooleanOptional

When true, return one series per team member instead of per team. Supported for meeting-hours calendar, PR cycle, and GitHub code review metrics only.

Default: false
countBystring · enumOptional

Unit to count by. For issue tracker metrics (jiraTypeOfWork, jiraFeatureVsMaintenance, linearTypeOfWork, linearFeatureVsMaintenance): issues (default) or storyPoints. For GitHub feedback metrics (feedbackGiven, feedbackReceived, feedbackParticipationGap): comments (default) or reviews. For page disruption metrics (pagerdutyPageDisruptions, pagerdutyPageDisruptionsOoh): pages (default) or disruptedHours.

Possible values:
directionstring · enumOptional

Direction for feedback quality/themes metrics: 'given' (comments the team wrote) or 'received' (comments written on the team's PRs). Default given.

Default: givenPossible values:
prioritiesstringOptional

Comma-separated PagerDuty priority IDs to filter by (PagerDuty metrics only). Use the priority IDs from your PagerDuty configuration.

Example: PY9X4YF,PUA93JS
urgenciesstringOptional

Comma-separated urgency levels to filter by (PagerDuty metrics only). Valid values: high, low.

Example: high,low
Responses
200Success
application/json
metricTypestringRequired

Metric type identifier.

fromstringOptional

Query start date as ISO 8601 timestamp. Absent for aggregate view.

tostringOptional

Query end date as ISO 8601 timestamp. Absent for aggregate view.

timescalestring · enumOptional

Timescale used for data point bucketing. Absent for aggregate view.

Possible values:
unitsone ofRequired

Unit of measurement for this metric's values. A plain string for all metrics except aiIntensityOfUsage, which returns an object keyed by value field (spend, inputTokens, linesChanged) since that metric emits three parallel units per data point.

stringOptional
or
get/v1/charts/{metricType}
GET /customer/v1/charts/{metricType}?from=2025-01-01T00%3A00%3A00Z&to=2025-03-31T23%3A59%3A59Z HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "metricType": "text",
  "from": "text",
  "to": "text",
  "timescale": "daily",
  "options": {
    "repositories": [
      "text"
    ],
    "excludeOrganization": true,
    "excludeWeekendHours": true,
    "includeSelfiePrs": true,
    "defaultBranchOnly": true,
    "view": "timeSeries",
    "direction": "given",
    "groupBy": "team",
    "cohortMetric": "dailyActiveUsage",
    "cohortThreshold": 1,
    "cohortLookbackWeeks": 1,
    "individual": false,
    "countBy": "issues",
    "priorities": [
      "text"
    ],
    "urgencies": [
      "high"
    ]
  },
  "series": [
    {
      "id": "text",
      "name": "text",
      "type": "team",
      "dataPoints": [
        {
          "startDate": "text",
          "endDate": "text",
          "value": 1,
          "p50": 1,
          "p75": 1,
          "p90": 1,
          "p95": 1,
          "count": 1,
          "memberCount": 1,
          "spend": 1,
          "inputTokens": 1,
          "linesChanged": 1,
          "total": 1,
          "label": "text"
        }
      ]
    }
  ],
  "units": "text"
}

Note that the unit of value and percentile fields (p50, p75, p90, p95) is "hours" for the following metrics: leadTime, codingTime, reviewWaitTime, editingTime, and deployTime

List AI super-users.

get

Returns the top AI coding tool users over the last 28 days.

Authorizations
AuthorizationstringRequired

Authorization: Bearer . A raw token in the Authorization header is also accepted for backward compatibility.

Query parameters
teamIdsstringOptional

Comma-separated team IDs to filter (mutually exclusive with teamNames, max 50).

teamNamesstringOptional

Comma-separated team names to filter (mutually exclusive with teamIds, max 50).

Responses
200

Super-user list.

application/json
itemsPublicSuperUserDto[]Optional
get/v1/super-users
GET /customer/v1/super-users HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

Super-user list.

{
  "items": []
}

Models

Last updated

Was this helpful?