openapi: 3.1.1 info: title: Qodana Public API version: 1.48.0-15 paths: /public/organizations/users: get: summary: Returns paginated list of users in the organization. Supports sorting and searching. parameters: - name: offset in: query schema: type: string - name: limit in: query schema: type: string - name: order in: query schema: type: string - name: search in: query schema: type: string responses: "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/APIError" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/APIError" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/APIError" "429": description: Too Many Requests content: text/plain: {} "500": description: Internal Server Error content: text/plain: {} application/json: schema: $ref: "#/components/schemas/APIError" "200": description: "" content: application/json: schema: type: object required: - count - items properties: count: type: integer next: type: - integer - "null" prev: type: - integer - "null" items: type: array items: $ref: "#/components/schemas/OrganizationUser" security: - organization-api-tokens-jwt: [] /public/organizations/inspections: get: summary: Returns the list of all inspections including FlexInspect inspections responses: "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/APIError" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/APIError" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/APIError" "429": description: Too Many Requests content: text/plain: {} "500": description: Internal Server Error content: text/plain: {} application/json: schema: $ref: "#/components/schemas/APIError" "200": description: "" content: application/json: schema: $ref: "#/components/schemas/InspectionsListResponse" security: - organization-api-tokens-jwt: [] /public/organizations/projects: post: summary: Returns the project token for the specified project. If the team or project does not exist, they will be created automatically. Team and project names are matched ignoring case and spaces, so "My Team" and "my-team" refer to the same team. Pass tokenTtlSeconds to get a short-lived token that expires after that many seconds instead of the project's long-lived token. requestBody: content: application/json: schema: $ref: "#/components/schemas/ProjectTokenRequest" responses: "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/APIError" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/APIError" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/APIError" "429": description: Too Many Requests content: text/plain: {} "500": description: Internal Server Error content: text/plain: {} application/json: schema: $ref: "#/components/schemas/APIError" "201": description: "" content: application/json: schema: $ref: "#/components/schemas/ProjectTokenResponse" "200": description: "" content: application/json: schema: $ref: "#/components/schemas/ProjectTokenResponse" security: - organization-api-tokens-jwt: [] get: summary: Get a project with report data by name parameters: - name: projectName in: query schema: type: string responses: "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/APIError" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/APIError" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/APIError" "429": description: Too Many Requests content: text/plain: {} "500": description: Internal Server Error content: text/plain: {} application/json: schema: $ref: "#/components/schemas/APIError" "200": description: "" content: application/json: schema: $ref: "#/components/schemas/ApiGetProjectResponse" security: - organization-api-tokens-jwt: [] /public/organizations/projects/{projectId}: get: summary: Get a project with report data by id parameters: - name: projectId in: path required: true schema: type: string responses: "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/APIError" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/APIError" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/APIError" "429": description: Too Many Requests content: text/plain: {} "500": description: Internal Server Error content: text/plain: {} application/json: schema: $ref: "#/components/schemas/APIError" "200": description: "" content: application/json: schema: $ref: "#/components/schemas/ApiGetProjectResponse" security: - organization-api-tokens-jwt: [] /public/organizations/inspection-insights/query: post: summary: Runs a query for a list of inspection counts at a point in time across projects. requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiQueryInsightsRequest" responses: "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/APIError" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/APIError" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/APIError" "429": description: Too Many Requests content: text/plain: {} "500": description: Internal Server Error content: text/plain: {} application/json: schema: $ref: "#/components/schemas/APIError" "200": description: "" content: application/json: schema: $ref: "#/components/schemas/ApiQueryInspectionInsightsResponse" security: - organization-api-tokens-jwt: [] /public/organizations/project-insights/query: post: summary: Runs a query for a list of projects with scan analysis data at a point in time. requestBody: content: application/json: schema: $ref: "#/components/schemas/ApiQueryInsightsRequest" responses: "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/APIError" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/APIError" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/APIError" "429": description: Too Many Requests content: text/plain: {} "500": description: Internal Server Error content: text/plain: {} application/json: schema: $ref: "#/components/schemas/APIError" "200": description: "" content: application/json: schema: $ref: "#/components/schemas/ApiQueryProjectInsightsResponse" security: - organization-api-tokens-jwt: [] webhooks: {} components: schemas: APIError: type: object title: APIError required: - name - details properties: name: type: string enum: - no_license_agreement - user_deleted - no_credentials_provided - validation_failed - invite_or_membership_request - project_exists - team_exists - license_issuing_failed - license_issuing_timeout - license_not_found - invalid_token - user_not_member - user_invitation_not_accepted - single_organizations_owner - no_auth - teams_missing - no_permission - no_license_plan - feature_not_supported - no_license - no_user - user_exists - license_accepted - no_jba_user - invitation_not_created - organization_role_exists - no_organization - invitation_expired - failed_email_sending - no_team - team_role_exists - no_team_user_exists - no_report - report_unavailable - no_membership_request_exists - probe_repository_failed - no_project - project_contributors_delete_failure - license_already_issued - bad_token - bad_credentials - no_user_token - oauth_refresh_tokens_error - oauth_fetch_managed_customers_error - license_is_already_exists - no_https_or_ssh_url - no_token - no_filter_selection - filter_selection_name_exists - wrong_state - user_not_license_activation_recipient - license_error - one_trial_license_is_allowed_error - no_repository - jba_license_invitation_not_found - license_already_in_use - unknown - no_ssh_key - owner_role_cannot_be_changed - failed_verify_table_signature - broken_signature_format - create_repository_failed - gh_application_jwt_token_generation_failed - external_service_request_failed - ci_integration_not_found - ci_integration_already_exists - vcs_integration_not_found - vcs_probing_not_passed - vcs_integration_already_exists - github_installation_not_exists - unknown_vcs_login_state - setup_action - forbidden_baseline - missing_branch_param - baseline_not_found - invalid_role - no_organization_api_token_exists - organization_api_token_already_exists - project_token_creation_failed - token_already_exists - global_configuration_not_found - public_api_disabled - too_many_projects_for_organization - too_many_problems_for_project details: type: string OrganizationUser: type: object title: OrganizationUser required: - id - displayName - isActive properties: id: type: string email: type: - string - "null" displayName: type: string role: type: - string - "null" enum: - OWNER - ADMIN - EDITOR - VIEWER isActive: type: boolean isSsoManaged: type: boolean invitationId: type: - string - "null" invitationUrl: type: - string - "null" InspectionResponse: type: object title: InspectionResponse required: - id - name properties: id: type: string name: type: string InspectionsListResponse: type: object title: InspectionsListResponse required: - inspections properties: inspections: type: array items: $ref: "#/components/schemas/InspectionResponse" ProjectTokenRequest: type: object title: ProjectTokenRequest properties: teamName: type: - string - "null" isPublicTeam: type: boolean projectName: type: - string - "null" projectQualifiedSlug: type: - string - "null" tokenTtlSeconds: type: - integer - "null" ProjectTokenResponse: type: object title: ProjectTokenResponse required: - projectToken properties: projectToken: type: string expiresAt: type: - string - "null" LicenseAudit: type: object title: LicenseAudit required: - isEnabled properties: isPassed: type: - boolean - "null" isEnabled: type: boolean CodeCoverage: type: object title: CodeCoverage required: - isEnabled properties: percentage: type: - integer - "null" isEnabled: type: boolean ApiGetProjectInspection: type: object title: ApiGetProjectInspection required: - id - name - severity - baseline - actual properties: id: type: string name: type: string severity: type: string enum: - critical - high - moderate - info - low baseline: type: integer actual: type: integer ApiGetProjectReport: type: object title: ApiGetProjectReport required: - id - timestamp - licenseAudit - codeCoverage - inspections properties: id: type: string timestamp: type: string licenseAudit: $ref: "#/components/schemas/LicenseAudit" codeCoverage: $ref: "#/components/schemas/CodeCoverage" inspections: type: array items: $ref: "#/components/schemas/ApiGetProjectInspection" ApiGetProjectResponse: type: object title: ApiGetProjectResponse required: - id - name - teamId - teamName properties: id: type: string name: type: string teamId: type: string teamName: type: string defaultBranchName: type: - string - "null" latestFullScanReport: oneOf: - $ref: "#/components/schemas/ApiGetProjectReport" - type: "null" publicKey: type: - string - "null" TimeRange: type: object title: TimeRange required: - start - end properties: start: type: string end: type: string ApiQueryInsightsRequest: type: object title: ApiQueryInsightsRequest properties: includeProjectIds: type: - array - "null" items: type: string includeInspectionIds: type: - array - "null" items: type: string includeTeamIds: type: - array - "null" items: type: string timeRange: oneOf: - $ref: "#/components/schemas/TimeRange" - type: "null" ApiQueryInspectionResult: type: object title: ApiQueryInspectionResult required: - id - name - severity - baseline - actual - timestamp properties: id: type: string name: type: string severity: type: string enum: - critical - high - moderate - info - low baseline: type: integer actual: type: integer timestamp: type: string ApiQueryInspectionInsightsResponse: type: object title: ApiQueryInspectionInsightsResponse required: - inspections properties: inspections: type: array items: $ref: "#/components/schemas/ApiQueryInspectionResult" ProblemsBySeverity: type: object title: ProblemsBySeverity required: - info - low - moderate - high - critical - total properties: info: type: integer low: type: integer moderate: type: integer high: type: integer critical: type: integer total: type: integer ApiQueryProject: type: object title: ApiQueryProject required: - id - name - teamId - teamName - codeCoverage - licenseAudit - severityToActualProblems - severityToBaselineProblems - timestamp properties: id: type: string name: type: string teamId: type: string teamName: type: string codeCoverage: $ref: "#/components/schemas/CodeCoverage" licenseAudit: $ref: "#/components/schemas/LicenseAudit" severityToActualProblems: $ref: "#/components/schemas/ProblemsBySeverity" severityToBaselineProblems: $ref: "#/components/schemas/ProblemsBySeverity" timestamp: type: string ApiQueryProjectInsightsResponse: type: object title: ApiQueryProjectInsightsResponse required: - projects properties: projects: type: array items: $ref: "#/components/schemas/ApiQueryProject" securitySchemes: organization-api-tokens-jwt: scheme: bearer bearerFormat: JWT description: JWT Bearer Authentication type: http