openapi: 3.2.0 info: title: APImetrics Organization Roles API description: API for the APImetrics platform termsOfService: http://apimetrics.io/tos/ contact: name: APIContext Support url: https://apicontext.io/ email: support@apicontext.com license: name: Apache 2.0 url: https://www.apache.org/licenses/LICENSE-2.0.html version: v2026-09-02 tags: - name: Organization Roles description: Manage role-based access grants across an organization's projects. paths: /api/2/organizations/{org_id}/roles/: get: tags: - Organization Roles summary: List-Org-Roles description: List all roles defined for an organization. operationId: list-org-roles security: - OAuth2: [] - ApiKey: [] parameters: - name: org_id in: path required: true schema: type: string pattern: ^[a-z0-9]{3,400}$ title: Organization ID - name: cursor in: query required: false schema: anyOf: - type: string - type: 'null' title: Cursor - name: limit in: query required: false schema: type: integer default: 25 title: Limit responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/OrgRoleListResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' post: tags: - Organization Roles summary: Create-Org-Role description: Create a new role for an organization. operationId: create-org-role security: - OAuth2: [] - ApiKey: [] parameters: - name: org_id in: path required: true schema: type: string pattern: ^[a-z0-9]{3,400}$ title: Organization ID requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateOrgRoleBody' responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/OrgRoleResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/2/organizations/{org_id}/roles/{role_id}/: delete: tags: - Organization Roles summary: Delete-Org-Role description: Delete a role from an organization. operationId: delete-org-role security: - OAuth2: [] - ApiKey: [] parameters: - name: role_id in: path required: true schema: type: string minLength: 1 maxLength: 400 title: Role Id - name: org_id in: path required: true schema: type: string pattern: ^[a-z0-9]{3,400}$ title: Organization ID responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/DeleteOrgRoleResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/2/organizations/{org_id}/roles/access: get: tags: - Organization Roles summary: List-Project-Roles-By-Org description: List all project roles across an organization's projects. operationId: list-project-roles-by-org security: - OAuth2: [] - ApiKey: [] parameters: - name: org_id in: path required: true schema: type: string pattern: ^[a-z0-9]{3,400}$ title: Organization ID - name: cursor in: query required: false schema: anyOf: - type: string - type: 'null' title: Cursor - name: limit in: query required: false schema: type: integer default: 25 title: Limit responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ProjectRoleListResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' components: schemas: ProjectRoleResponse: properties: id: type: string title: Id role_id: type: string title: Role Id project: $ref: '#/components/schemas/ProjectResponse' access_level: type: string title: Access Level last_update: type: string format: date-time title: Last Update created: type: string format: date-time title: Created type: object required: - id - role_id - project - access_level - last_update - created title: ProjectRoleResponse examples: - access_level: EDITOR created: '2026-06-25T10:13:37.546136Z' id: ahFkZXZ-YXBpbWV0cmljcy1xY3IVCxIOQWNjb3VudFByb2plY3QYq0IM last_update: '2026-06-25T10:13:37.597335Z' project: created: '2026-06-19T09:06:47.046143Z' id: ahFkZXZ-YXBpbWV0cmljcy1xY3ILCxIEVXNlchieQgw last_update: '2026-06-19T09:06:47.046170Z' name: Project 1 org_id: apicontext tags: [] role_id: SRE DeleteOrgRoleResponse: properties: status: type: string title: Status type: object required: - status title: DeleteOrgRoleResponse OrgRoleResponse: properties: id: type: string title: Id org_id: type: string title: Org Id description: type: string title: Description last_update: type: string format: date-time title: Last Update created: type: string format: date-time title: Created type: object required: - id - org_id - description - last_update - created title: OrgRoleResponse OrgRoleListMeta: properties: next_cursor: anyOf: - type: string - type: 'null' title: Next Cursor more: type: boolean title: More type: object required: - more title: OrgRoleListMeta CreateOrgRoleBody: properties: id: type: string maxLength: 400 minLength: 3 title: Id description: anyOf: - type: string - type: 'null' title: Description additionalProperties: false type: object required: - id title: CreateOrgRoleBody ProjectRoleListMeta: properties: next_cursor: anyOf: - type: integer - type: string - type: 'null' title: Next Cursor more: type: boolean title: More project_id: anyOf: - type: string - type: 'null' title: Project Id type: object required: - next_cursor - more title: ProjectRoleListMeta ProjectRoleListResponse: properties: meta: $ref: '#/components/schemas/ProjectRoleListMeta' results: items: $ref: '#/components/schemas/ProjectRoleResponse' type: array title: Results type: object required: - meta - results title: ProjectRoleListResponse examples: - meta: more: false results: - access_level: EDITOR created: '2026-06-25T10:13:37.546136Z' id: ahFkZXZ-YXBpbWV0cmljcy1xY3IVCxIOQWNjb3VudFByb2plY3QYq0IM last_update: '2026-06-25T10:13:37.597335Z' project: created: '2026-06-19T09:06:47.046143Z' id: ahFkZXZ-YXBpbWV0cmljcy1xY3ILCxIEVXNlchieQgw last_update: '2026-06-19T09:06:47.046170Z' name: Project 1 org_id: apicontext tags: [] role_id: SRE HTTPValidationError: properties: detail: items: $ref: '#/components/schemas/ValidationError' type: array title: Detail type: object title: HTTPValidationError OrgRoleListResponse: properties: meta: $ref: '#/components/schemas/OrgRoleListMeta' results: items: $ref: '#/components/schemas/OrgRoleResponse' type: array title: Results type: object required: - meta - results title: OrgRoleListResponse ValidationError: properties: loc: items: anyOf: - type: string - type: integer type: array title: Location msg: type: string title: Message type: type: string title: Error Type input: title: Input ctx: type: object title: Context type: object required: - loc - msg - type title: ValidationError ProjectResponse: properties: id: type: string title: Id name: type: string title: Name org_id: type: string title: Org Id tags: items: type: string type: array title: Tags system_tags: items: type: string type: array title: System Tags last_update: anyOf: - type: string format: date-time - type: 'null' title: Last Update created: anyOf: - type: string format: date-time - type: 'null' title: Created security_profile: anyOf: - type: string - type: 'null' title: Security Profile email: anyOf: - type: string - type: 'null' title: Email sub_info: anyOf: - additionalProperties: true type: object - type: 'null' title: Sub Info type: object required: - id - name - org_id - tags - system_tags - last_update - created - security_profile title: ProjectResponse examples: - created: '2026-06-19T09:06:47.046143Z' id: ahFkZXZ-YXBpbWV0cmljcy1xY3ILCxIEVXNlchieQgw last_update: '2026-06-19T09:06:47.046170Z' name: Project 1 org_id: apicontext sub_info: counts: org_test_run_count: 0 public_report_count: 0 scheduled_test_count: 288 test_setup_count: 4 user_test_run_count: 0 month_progress: 0.814 quotas: public_report_quota: 10 test_run_quota: 1000000 test_setup_quota: 1000 sub: backend: azure level: CONTRACT name: Enterprise org_id: apicontext plan: enterprise tags: [] securitySchemes: OAuth2: type: oauth2 flows: authorizationCode: scopes: openid: OpenID Connect identity profile: User profile email: User email address authorizationUrl: https://auth.apimetrics.io/authorize?audience=https://client.apimetrics.io tokenUrl: https://auth.apimetrics.io/oauth/token ApiKey: type: apiKey in: header name: X-Api-Key