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.
To access Swagger docs in Oobeya directly, go to
{OOBEYA_BASE_URL}/apis/docs/swagger-ui/index.html2. Base URL
{OOBEYA_BASE_URL}Example:
https://mycompany.oobeya.io
https://oobeya.mycompany.com3. Authentication
Oobeya supports two authentication mechanisms:
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
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
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
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.
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
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
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)
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
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
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
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
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?