How AI is applied across API Evangelist and APIs.io. Read my AI disclosure →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

Test Observer API

Test Observer is Canonical's dashboard for tracking test execution across Ubuntu artefacts — snaps, debs, charms and images — through their release stages. The backend publishes an OpenAPI 3.1.0 contract with 64 paths and 91 operations covering artefacts, builds, test executions, results, environments and reviews.

Test Observer API is one of 22 APIs that Canonical publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

Tagged areas include Testing, Quality, and CI. The published artifact set on APIs.io includes an OpenAPI specification.

This API exposes 91 operations across 64 paths, organized into 17 resource areas, and defines 97 schemas. It is described by OpenAPI 3.1.0, at version 0.1.0.

Requests are made against the base URL https://test-observer-api.canonical.com.

91 operations 64 paths 97 schemas 9 DELETE47 GET10 PATCH19 POST6 PUT

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 3.1.0
API Version
0.1.0
Base URL
https://test-observer-api.canonical.com
Resource Areas
17

Paths & Operations 91

Across 64 paths, the API surfaces 91 operations — 9 DELETE, 47 GET, 10 PATCH, 19 POST, 6 PUT. They span 17 resource areas, including Operations, test-executions, artefacts, reports, test-cases, environments, test-plans, issues, and 9 more. Each is listed below with its method, path, parameters, and response codes.

Operations 5
GET
/v1/version
Get Version
get_version_v1_version_get → 200
GET
/health/live
Live
live_health_live_get → 200
GET
/health/ready
Ready
ready_health_ready_get → 200
GET
/
Root
root__get → 200
GET
/sentry-debug
Trigger Error
trigger_error_sentry_debug_get → 200
test-executions 16
PUT
/v1/test-executions/end-test
End Test Execution
end_test_execution_v1_test_executions_end_test_put body → 200422
GET
/v1/test-executions/{id}/test-results
Get Test Results
get_test_results_v1_test_executions__id__test_results_get 1 param → 200422
POST
/v1/test-executions/{id}/test-results
Post Results
post_results_v1_test_executions__id__test_results_post 1 param body → 200422
POST
/v1/test-executions/{id}/links
Post Link
post_link_v1_test_executions__id__links_post 1 param body → 200422
DELETE
/v1/test-executions/{id}/links/{link_id}
Delete Link
delete_link_v1_test_executions__id__links__link_id__delete 2 params → 204422
POST
/v1/test-executions/reruns
Create Rerun Requests
create_rerun_requests_v1_test_executions_reruns_post 1 param body → 200422
GET
/v1/test-executions/reruns
Get Rerun Requests
get_rerun_requests_v1_test_executions_reruns_get 5 params → 200422
DELETE
/v1/test-executions/reruns
Delete Rerun Requests
delete_rerun_requests_v1_test_executions_reruns_delete body → 200422
GET
/v1/test-executions/reruns/details
Get Rerun Details
get_rerun_details_v1_test_executions_reruns_details_get 4 params → 200422
GET
/v1/test-executions/{id}
Get Test Execution
get_test_execution_v1_test_executions__id__get 1 param → 200422
PATCH
/v1/test-executions/{id}
Patch Test Execution
patch_test_execution_v1_test_executions__id__patch 1 param body → 200422
GET
/v1/test-executions
Search Test Executions
search_test_executions_v1_test_executions_get 20 params → 200422
PUT
/v1/test-executions/start-test
Start Test Execution
start_test_execution_v1_test_executions_start_test_put body → 200422
PUT
/v1/test-executions/{id}/status_update
Put Status Update
put_status_update_v1_test_executions__id__status_update_put 1 param body → 200422
GET
/v1/test-executions/{id}/status_update
Get Status Update
get_status_update_v1_test_executions__id__status_update_get 1 param → 200422
POST
/v1/test-executions/{id}/status_update
Post Status Update
post_status_update_v1_test_executions__id__status_update_post 1 param body → 200422
artefacts 10
GET
/v1/artefacts
Get Artefacts
get_artefacts_v1_artefacts_get 1 param → 200422
GET
/v1/artefacts/search
Search Artefacts
search_artefacts_v1_artefacts_search_get 4 params → 200422
GET
/v1/artefacts/history
Get Artefact History
get_artefact_history_v1_artefacts_history_get 6 params → 200422
GET
/v1/artefacts/{artefact_id}
Get Artefact
get_artefact_v1_artefacts__artefact_id__get 1 param → 200422
PATCH
/v1/artefacts/{artefact_id}
Patch Artefact
patch_artefact_v1_artefacts__artefact_id__patch 1 param body → 200422
GET
/v1/artefacts/{artefact_id}/versions
Get Artefact Versions
get_artefact_versions_v1_artefacts__artefact_id__versions_get 1 param → 200422
GET
/v1/artefacts/{artefact_id}/environment-reviews
Get Environment Reviews
get_environment_reviews_v1_artefacts__artefact_id__environment_reviews_get 1 param → 200422
PATCH
/v1/artefacts/{artefact_id}/environment-reviews
Bulk Update Environment Reviews
bulk_update_environment_reviews_v1_artefacts__artefact_id__environment_reviews_patch 1 param body → 200422
PATCH
/v1/artefacts/{artefact_id}/environment-reviews/{review_id}
Update Environment Review
update_environment_review_v1_artefacts__artefact_id__environment_reviews__review_id__patch 2 params body → 200422
GET
/v1/artefacts/{artefact_id}/builds
Get Artefact Builds
get_artefact_builds_v1_artefacts__artefact_id__builds_get 1 param → 200422
reports 2
GET
/v1/reports/test-results
Get Testresults Report
get_testresults_report_v1_reports_test_results_get 2 params → 200422
GET
/v1/reports/test-executions
Get Test Execution Reports
get_test_execution_reports_v1_reports_test_executions_get 2 params → 200422
test-cases 5
GET
/v1/test-cases/reported-issues
Get Reported Issues
get_reported_issues_v1_test_cases_reported_issues_get 2 params → 200422
POST
/v1/test-cases/reported-issues
Create Reported Issue
create_reported_issue_v1_test_cases_reported_issues_post body → 200422
PUT
/v1/test-cases/reported-issues/{issue_id}
Update Reported Issue
update_reported_issue_v1_test_cases_reported_issues__issue_id__put 1 param body → 200422
DELETE
/v1/test-cases/reported-issues/{issue_id}
Delete Reported Issue
delete_reported_issue_v1_test_cases_reported_issues__issue_id__delete 1 param → 200422
GET
/v1/test-cases
Get Test Cases
get_test_cases_v1_test_cases_get 4 params → 200422
environments 5
GET
/v1/environments/reported-issues
Get Reported Issues
get_reported_issues_v1_environments_reported_issues_get 1 param → 200422
POST
/v1/environments/reported-issues
Create Reported Issue
create_reported_issue_v1_environments_reported_issues_post body → 200422
PUT
/v1/environments/reported-issues/{issue_id}
Update Reported Issue
update_reported_issue_v1_environments_reported_issues__issue_id__put 1 param body → 200422
DELETE
/v1/environments/reported-issues/{issue_id}
Delete Reported Issue
delete_reported_issue_v1_environments_reported_issues__issue_id__delete 1 param → 200422
GET
/v1/environments
Get Environments
get_environments_v1_environments_get 4 params → 200422
test-plans 1
GET
/v1/test-plans
Get Test Plans
get_test_plans_v1_test_plans_get 4 params → 200422
issues 9
POST
/v1/issues/{issue_id}/attach
Add Issue Attachments
add_issue_attachments_v1_issues__issue_id__attach_post 1 param body → 200422
POST
/v1/issues/{issue_id}/detach
Remove Issue Attachments
remove_issue_attachments_v1_issues__issue_id__detach_post 1 param body → 200422
POST
/v1/issues/{issue_id}/attachment-rules
Post Attachment Rule
post_attachment_rule_v1_issues__issue_id__attachment_rules_post 1 param body → 200422
PATCH
/v1/issues/{issue_id}/attachment-rules/{attachment_rule_id}
Patch Attachment Rule
patch_attachment_rule_v1_issues__issue_id__attachment_rules__attachment_rule_id__patch 2 params body → 200422
DELETE
/v1/issues/{issue_id}/attachment-rules/{attachment_rule_id}
Delete Attachment Rule
delete_attachment_rule_v1_issues__issue_id__attachment_rules__attachment_rule_id__delete 2 params → 204422
GET
/v1/issues
Get Issues
get_issues_v1_issues_get 7 params → 200422
PUT
/v1/issues
Create Or Update Issue
create_or_update_issue_v1_issues_put body → 200422
GET
/v1/issues/{issue_id}
Get Issue
get_issue_v1_issues__issue_id__get 1 param → 200422
PATCH
/v1/issues/{issue_id}
Patch Issue
patch_issue_v1_issues__issue_id__patch 4 params body → 200422
test-results 1
GET
/v1/test-results
Search Test Results
search_test_results_v1_test_results_get 22 params → 200422
execution-metadata 1
GET
/v1/execution-metadata
Get Execution Metadata
get_execution_metadata_v1_execution_metadata_get → 200
authentication 5
GET
/v1/auth/saml/login
Saml Login
saml_login_v1_auth_saml_login_get 1 param → 200422
GET
/v1/auth/saml/logout
Saml Logout
saml_logout_v1_auth_saml_logout_get 1 param → 200422
POST
/v1/auth/saml/acs
Saml Login Callback
saml_login_callback_v1_auth_saml_acs_post → 200
GET
/v1/auth/saml/sls
Saml Logout Callback
saml_logout_callback_v1_auth_saml_sls_get → 200
POST
/v1/auth/saml/sls
Saml Logout Callback
saml_logout_callback_v1_auth_saml_sls_post → 200
users 5
GET
/v1/users/me
Get Authenticated User
get_authenticated_user_v1_users_me_get → 200
GET
/v1/users
Get Users
get_users_v1_users_get 3 params → 200422
GET
/v1/users/{user_id}
Get User
get_user_v1_users__user_id__get 1 param → 200422
DELETE
/v1/users/{user_id}
Delete User
delete_user_v1_users__user_id__delete 1 param → 204422
PATCH
/v1/users/{user_id}
Update User
update_user_v1_users__user_id__patch 1 param body → 200422
teams 6
GET
/v1/teams
Get Teams
get_teams_v1_teams_get → 200
POST
/v1/teams
Create Team
create_team_v1_teams_post body → 201422
GET
/v1/teams/{team_id}
Get Team
get_team_v1_teams__team_id__get 1 param → 200422
PATCH
/v1/teams/{team_id}
Update Team
update_team_v1_teams__team_id__patch 1 param body → 200422
POST
/v1/teams/{team_id}/members/{user_id}
Add Team Member
add_team_member_v1_teams__team_id__members__user_id__post 2 params → 200422
DELETE
/v1/teams/{team_id}/members/{user_id}
Remove Team Member
remove_team_member_v1_teams__team_id__members__user_id__delete 2 params → 200422
permissions 1
GET
/v1/permissions
Get Permissions
get_permissions_v1_permissions_get → 200
applications 8
GET
/v1/applications
Get Applications
get_applications_v1_applications_get → 200
POST
/v1/applications
Create Application
create_application_v1_applications_post body → 200422
POST
/v1/applications/me/rotate
Rotate Own Api Key
rotate_own_api_key_v1_applications_me_rotate_post → 200
POST
/v1/applications/{application_id}/rotate
Rotate Api Key
rotate_api_key_v1_applications__application_id__rotate_post 1 param → 200422
GET
/v1/applications/me
Get Authenticated Application
get_authenticated_application_v1_applications_me_get → 200
GET
/v1/applications/{application_id}
Get Application
get_application_v1_applications__application_id__get 1 param → 200422
DELETE
/v1/applications/{application_id}
Delete Application
delete_application_v1_applications__application_id__delete 1 param → 204422
PATCH
/v1/applications/{application_id}
Update Application
update_application_v1_applications__application_id__patch 1 param body → 200422
notifications 6
GET
/v1/users/me/notifications
Get Own Notifications
get_own_notifications_v1_users_me_notifications_get 3 params → 200422
GET
/v1/users/me/notifications/count
Get Own Notification Count
get_own_notification_count_v1_users_me_notifications_count_get 1 param → 200422
POST
/v1/users/me/notifications/{notification_id}/dismiss
Mark Own Notification As Read
mark_own_notification_as_read_v1_users_me_notifications__notification_id__dismiss_post 1 param → 200422
GET
/v1/users/{user_id}/notifications
Get Notifications
get_notifications_v1_users__user_id__notifications_get 4 params → 200422
GET
/v1/users/{user_id}/notifications/count
Get Notification Count
get_notification_count_v1_users__user_id__notifications_count_get 2 params → 200422
POST
/v1/users/{user_id}/notifications/{notification_id}/dismiss
Mark Notification As Read
mark_notification_as_read_v1_users__user_id__notifications__notification_id__dismiss_post 2 params → 200422
artefact-matching-rules 5
POST
/v1/artefact-matching-rules
Create Artefact Matching Rule
create_artefact_matching_rule_v1_artefact_matching_rules_post body → 201422
GET
/v1/artefact-matching-rules
Get Artefact Matching Rules
get_artefact_matching_rules_v1_artefact_matching_rules_get 1 param → 200422
GET
/v1/artefact-matching-rules/{rule_id}
Get Artefact Matching Rule
get_artefact_matching_rule_v1_artefact_matching_rules__rule_id__get 1 param → 200422
PATCH
/v1/artefact-matching-rules/{rule_id}
Update Artefact Matching Rule
update_artefact_matching_rule_v1_artefact_matching_rules__rule_id__patch 1 param body → 200422
DELETE
/v1/artefact-matching-rules/{rule_id}
Delete Artefact Matching Rule
delete_artefact_matching_rule_v1_artefact_matching_rules__rule_id__delete 1 param → 204422

Schemas 97

The contract defines 97 schemas that model the data the API accepts and returns. The most detailed are ArtefactResponse (28 properties), TestResultSearchFilters (22 properties), TestExecutionRerunFilters (16 properties), StartImageTestExecutionRequest (16 properties). Each schema is shown below with its type and property counts.

ApplicationPatch
object
1 property
ApplicationPost
object
2 properties 2 required
ApplicationResponse
object
4 properties 4 required
ArtefactBuildEnvironmentReviewDecision
string
ArtefactBuildEnvironmentReviewResponse
object
6 properties 5 required
ArtefactBuildMinimalResponse
object
3 properties 3 required
ArtefactBuildResponse
object
4 properties 4 required
ArtefactHistoryItemResponse
object
5 properties 5 required
ArtefactHistoryResponse
object
2 properties 2 required
ArtefactMatchingRuleBase
object
Base model for artefact matching rule with common fields
11 properties 1 required
ArtefactMatchingRuleInResponse
object
Artefact matching rule fields when included in responses (no relationships)
12 properties 12 required
ArtefactMatchingRulePatch
object
Patch request for artefact matching rule
12 properties
ArtefactMatchingRuleRequest
object
Request to create an artefact matching rule (extends base with teamids)
12 properties 2 required
ArtefactMatchingRuleResponse
object
Artefact matching rule with associated teams
13 properties 13 required
ArtefactPatch
object
10 properties
ArtefactResponse
object
28 properties 28 required
ArtefactSearchResponse
object
4 properties 4 required
ArtefactStatus
string
ArtefactVersionResponse
object
2 properties 2 required
C3TestResult
object
6 properties 5 required
C3TestResultStatus
string
CharmStage
string
DebStage
string
DeleteReruns
object
3 properties
EndTestExecutionRequest
object
4 properties 2 required
EnvironmentReportedIssueRequest
object
4 properties 3 required
EnvironmentReportedIssueResponse
object
7 properties 7 required
EnvironmentResponse
object
3 properties 3 required
EnvironmentReviewPatch
object
3 properties
EnvironmentsResponse
object
Response model for environments endpoint
4 properties 4 required
ExecutionMetadata
object
A mapping of string categories to lists of string values.
ExecutionMetadataGetResponse
object
1 property 1 required
FamilyName
string
HTTPValidationError
object
1 property
ImageStage
string
IssueAttachmentRequest
object
3 properties
IssuePatchRequest
object
3 properties
IssuePutRequest
object
4 properties 1 required
IssueResponse
object
10 properties 9 required
IssueSource
string
IssueStatus
string
IssueTestResultAttachmentRulePatchRequest
object
1 property
IssueTestResultAttachmentRulePostRequest
object
12 properties
IssuesGetResponse
object
4 properties 4 required
MinimalIssueResponse
object
9 properties 7 required
MinimalIssueTestResultAttachmentResponse
object
2 properties 2 required
MinimalIssueTestResultAttachmentRuleResponse
object
13 properties 13 required
NotificationResponse
object
6 properties 6 required
NotificationType
string
NotificationsResponse
object
4 properties 4 required
PendingRerun
object
8 properties 8 required
Permission
string
PreviousTestResult
object
5 properties 5 required
RerunDetail
object
5 properties 5 required
RerunDetailsResponse
object
7 properties 7 required
RerunPrioritySummary
object
2 properties 2 required
RerunRequest
object
4 properties
ReviewerResponse
object
5 properties 4 required
SnapStage
string
SolutionStage
string
StageName
string
StartCharmTestExecutionRequest
object
14 properties 9 required
StartDebTestExecutionRequest
object
14 properties 8 required
StartImageTestExecutionRequest
object
16 properties 3 required
StartSnapTestExecutionRequest
object
15 properties 10 required
StartSolutionTestExecutionRequest
object
12 properties 7 required
StatusUpdateRequest
object
1 property 1 required
TeamCreate
object
3 properties 1 required
TeamMinimal
object
2 properties 2 required
TeamMinimalResponse
object
3 properties 3 required
TeamPatch
object
2 properties
TeamResponse
object
5 properties 5 required
TestCaseInfo
object
2 properties 2 required
TestCasesResponse
object
1 property 1 required
TestEventResponse
object
3 properties 3 required
TestExecutionRelevantLinkCreate
object
2 properties 2 required
TestExecutionRelevantLinkResponse
object
3 properties 3 required
TestExecutionRerunFilters
object
Filter model for rerun create/delete operations. Excludes pagination (limit/offset) and search-only fields (eventnames) that have no meaning in the rerun conte…
16 properties
TestExecutionResponse
object
12 properties 11 required
TestExecutionResponseWithContext
object
15 properties 13 required
TestExecutionSearchResponse
object
4 properties 4 required
TestExecutionStatus
string
TestExecutionsPatchRequest
object
4 properties
TestPlansResponse
object
Response model for test plans endpoint
4 properties 4 required
TestReportedIssueRequest
object
4 properties 2 required
TestReportedIssueResponse
object
7 properties 5 required
TestResultRequest
object
6 properties 2 required
TestResultResponse
object
10 properties 9 required
TestResultResponseWithContext
object
Test result response with artefact and test execution context
4 properties 4 required
TestResultSearchFilters
object
22 properties
TestResultSearchResponseWithContext
object
Response model for test results search endpoint with full context
4 properties 4 required
TestResultStatus
string
UserMinimalResponse
object
5 properties 4 required
UserPatch
object
1 property
UserResponse
object
6 properties 5 required
UsersResponse
object
4 properties 4 required
ValidationError
object
5 properties 3 required

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

canonical-test-observer-api-openapi.json Raw ↑

Other APIs Canonical publishes across the network.

Snap Store API
Charmhub API
snapd REST API
MAAS API
Juju Client / Controller API
Launchpad Web Services API
Ubuntu Pro Client API
Landscape API
Canonical Assertions API
Canonical Search API
Canonical Snaps API
LXD REST API
Where this information came from

This is an independent, third-party profile of Test Observer API, published by API Evangelist. We do not operate, host, resell, or support these APIs, and we are not affiliated with or endorsed by the company unless stated above. Everything here is built from publicly available information — the company's own site, developer portal, documentation, public repositories, and the specifications it publishes for public use. Nothing is obtained by breaching a system, defeating an access control, or using credentials.

The Kin Score and Agent Readiness rating are independently calculated assessments of a company's public API artifacts, scored against a published rubric. They are not certifications, endorsements, security assessments, or audits.

Corrections, re-scores, and removal are free — no partnership or purchase required, and you do not need to justify the request. A removed company is recorded as unrated, never scored zero for having asked. Acknowledgement within one business day; removal within two.

info@apievangelist.com · Read the full data-sourcing policy →
On a security or compliance team? Put security in the subject line and you will get a person, not a form — we will tell you exactly which public URLs this profile was built from.