Oobeya REST API

Enable secure, programmatic access to your Software Engineering Intelligence Platform. Automate analyses, synchronize integrations, and retrieve metrics.

Oobeya provides a secure REST API that allows you to programmatically access and manage data across your Software Engineering Intelligence Platform. You can automate processes, synchronize integrations, trigger analyses, and extract metrics for custom dashboards or reporting.


1. Overview

The Oobeya REST API v1 exposes endpoints to manage organizations, users, teams, analyses, deployments, reports, and more.

Each endpoint follows REST principles and returns data in JSON format.

All requests must be made over HTTPS. Your API key or bearer token must be included in the header for every request.

To access Swagger docs in Oobeya directly, go to

{OOBEYA_BASE_URL}/apis/docs/swagger-ui/index.html

2. Base URL

{OOBEYA_BASE_URL}

Example:

https://mycompany.oobeya.io
https://oobeya.mycompany.com

3. Authentication

Oobeya supports two authentication mechanisms:

Method
Header
Description

API Key

Oobeya-API-Key: <your_api_key>

Used for integrations and service-to-service access

Bearer Token

Authorization: Bearer <your_jwt_token>

Used for authenticated user sessions

Example:

curl -X GET "{OOBEYA_BASE_URL}/apis/v1/users" \
  -H "Oobeya-API-Key: <your_api_key>"

4. Endpoint Groups

4.1. Organization Level

Method
Endpoint
Description

GET

/apis/v1/organization-level

Retrieve organization levels

POST

/apis/v1/organization-level

Create a new organization level

PUT

/apis/v1/organization-level/{id}

Update an existing organization level

Example:

curl -X POST "{OOBEYA_BASE_URL}/apis/v1/organization-level" \
  -H "Oobeya-API-Key: <your_api_key>" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Division",
    "level": 2,
    "leadRoles": [
      { "key": "ENG_LEAD", "label": "Engineering Lead" }
    ]
  }'

4.2. Users

Method
Endpoint
Description

GET

/apis/v1/users

List users with pagination

POST

/apis/v1/users

Create a new user

PUT

/apis/v1/users

Update user information

GET

/apis/v1/users/{id}

Retrieve a specific user

DELETE

/apis/v1/users/{id}

Delete a user

Example: Create a User

curl -X POST "{OOBEYA_BASE_URL}/apis/v1/users" \
  -H "Oobeya-API-Key: <your_api_key>" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Josh",
    "surname": "Long",
    "username": "josh.long",
    "email": "[email protected]",
    "userType": "DB",
    "companyRole": "DEVELOPER",
    "hireDate": "2024-08-17T00:00:00+03:00"
  }'

4.3. Teams

Method
Endpoint
Description

GET

/apis/v1/teams

List all teams with pagination

POST

/apis/v1/teams

Create a new team

PUT

/apis/v1/teams

Update an existing team

PATCH

/apis/v1/teams/{team-id-or-name}

Partially update a team

GET

/apis/v1/teams/all

Retrieve all teams

POST

/apis/v1/teams/trigger-analysis

Trigger Git & DORA analysis for selected teams

Example: Trigger Analysis

curl -X POST "{OOBEYA_BASE_URL}/apis/v1/teams/trigger-analysis" \
  -H "Oobeya-API-Key: <your_api_key>" \
  -H "Content-Type: application/json" \
  -d '{
    "teamIds": ["team-123"],
    "trigger": { "git": true, "pullRequest": true, "deployment": true }
  }'

4.4. Git Analysis

Track repository data, pull requests, and DORA metrics.

Method
Endpoint
Description

GET

/apis/v1/analysis

List Git analyses

POST

/apis/v1/analysis

Create a new analysis

DELETE

/apis/v1/analysis/{analysisId}

Delete an analysis

POST

/apis/v1/analysis/trigger-all-dora-analyses

Trigger bulk DORA analyses

GET

/apis/v1/analysis/dora-summary-metrics

Retrieve aggregated DORA metrics summary

Example: Get DORA Summary

curl -X GET "{OOBEYA_BASE_URL}/apis/v1/analysis/dora-summary-metrics?widgets=DORA_METRICS_SUMMARY&teamId=team-123" \
  -H "Oobeya-API-Key: <your_api_key>"

Sample Response

{
  "leadTimeForChanges": { "formattedValue": "2.3 days" },
  "deploymentFrequency": { "formattedValue": "3 per week" },
  "changeFailureRate": { "formattedValue": "5%" },
  "timeToRestore": { "formattedValue": "4h 30m" }
}

4.5. Deployments

Method
Endpoint
Description

GET

/apis/v1/deployments

Retrieve deployments with pagination

POST

/apis/v1/deployments

Create new deployment record

DELETE

/apis/v1/deployments/{id}

Delete deployment


4.6. Reports

Method
Endpoint
Description

GET

/apis/v1/reports/team/{teamId}/commits

Get team-based commit metrics

GET

/apis/v1/reports/team/{teamId}/pull-requests

Get team-based PR metrics

GET

/apis/v1/reports/team/{teamId}/qualities

Get team-based quality metrics

GET

/apis/v1/reports/member/{memberId}/commits

Get member-based commit metrics

GET

/apis/v1/reports/member/{memberId}/pull-requests

Get member-based PR metrics

Example: Get Team Pull Request Metrics

curl -X GET "{OOBEYA_BASE_URL}/apis/v1/reports/team/team-123/pull-requests?startDate=2025-01-01&endDate=2025-01-31" \
  -H "Oobeya-API-Key: <your_api_key>"

4.7. Qwiser (SonarQube Integration)

Method
Endpoint
Description

POST

/apis/v1/qwiser/analysis

Start a new Qwiser analysis

POST

/apis/v1/qwiser/analysis/list

List existing analyses

PUT

/apis/v1/qwiser/analysis/{analysisId}/teams

Update associated teams


4.8. External Test Metrics

Method
Endpoint
Description

POST

/apis/v1/test/external/execution

Create execution record

POST

/apis/v1/test/external/defect

Create defect record

POST

/apis/v1/test/external/coverage

Create coverage record

POST

/apis/v1/test/external/bug

Create bug record

Example: Create Test Execution

curl -X POST "{OOBEYA_BASE_URL}/apis/v1/test/external/execution" \
  -H "Oobeya-API-Key: <your_api_key>" \
  -H "Content-Type: application/json" \
  -d '{
    "executionId": "exec-12345",
    "status": "PASS",
    "executionTime": 120000,
    "executionStartDate": "2025-09-11T08:47:40.740Z",
    "executionEndDate": "2025-09-11T08:49:40.740Z",
    "applicationId": "app-98765",
    "scenarioId": "scn-4567",
    "scenarioName": "Login Test",
    "environment": "staging",
    "team": "QA-Team"
  }'

4.9. Bulk Operations

Method
Endpoint
Description

POST

/apis/v1/bulk/analyses

Prepare bulk Git analyses

PUT

/apis/v1/bulk/analyses/sync

Synchronize analyses

POST

/apis/v1/bulk/analyses/analysis

Import new Git analysis file


4.10. API Keys

Method
Endpoint
Description

GET

/apis/v1/api-keys

List all API keys

POST

/apis/v1/api-keys

Create a new API key

DELETE

/apis/v1/api-keys/{id}

Delete an API key


4.11. System

Method
Endpoint
Description

GET

/apis/v1/systems/logs

Retrieve system logs

DELETE

/apis/v1/systems/clear-git-analyses

Clear analyses older than 2 years


5. Best Practices

  • Use API keys for automation, and JWT tokens for user-based integrations.

  • Implement retry logic with exponential backoff for network errors.

  • Cache frequent GET responses to optimize performance.

  • Regularly rotate API keys for security.

  • Use bulk operations when importing or syncing large datasets.


Support Contact: [email protected]

Last updated

Was this helpful?