SonarQube · JSON Structure

Sonarqube Web Api Structure

JSON structure documentation for the SonarQube Web API core data entities

Type: Properties: 0
Code QualityDevOpsSecurityStatic Analysis

SonarQube Web API Structure is a JSON Structure definition published by SonarQube.

Meta-schema:

JSON Structure

Raw ↑
{
  "name": "SonarQube Web API Structure",
  "description": "JSON structure documentation for the SonarQube Web API core data entities",
  "resources": [
    {
      "name": "Project",
      "description": "A SonarQube project representing an analyzed codebase",
      "fields": [
        { "name": "key", "type": "string", "required": true, "description": "Unique project key" },
        { "name": "name", "type": "string", "required": true, "description": "Display name" },
        { "name": "qualifier", "type": "string", "enum": ["TRK", "APP", "VW"], "required": false },
        { "name": "visibility", "type": "string", "enum": ["public", "private"], "required": false },
        { "name": "lastAnalysisDate", "type": "string", "format": "date-time", "required": false },
        { "name": "revision", "type": "string", "required": false, "description": "SCM commit hash" },
        { "name": "managed", "type": "boolean", "required": false }
      ]
    },
    {
      "name": "Issue",
      "description": "A code issue (bug, vulnerability, code smell, security hotspot)",
      "fields": [
        { "name": "key", "type": "string", "required": true, "description": "Unique issue key" },
        { "name": "rule", "type": "string", "required": true, "description": "Rule key (e.g., java:S1234)" },
        { "name": "severity", "type": "string", "enum": ["INFO", "MINOR", "MAJOR", "CRITICAL", "BLOCKER"], "required": false },
        { "name": "type", "type": "string", "enum": ["CODE_SMELL", "BUG", "VULNERABILITY", "SECURITY_HOTSPOT"], "required": true },
        { "name": "component", "type": "string", "required": false, "description": "File component key" },
        { "name": "project", "type": "string", "required": false },
        { "name": "line", "type": "integer", "required": false },
        { "name": "textRange", "type": "object", "required": false },
        { "name": "status", "type": "string", "enum": ["OPEN", "CONFIRMED", "REOPENED", "RESOLVED", "CLOSED"], "required": true },
        { "name": "resolution", "type": "string", "enum": ["FIXED", "FALSE-POSITIVE", "WONTFIX", "REMOVED"], "required": false },
        { "name": "message", "type": "string", "required": false },
        { "name": "author", "type": "string", "required": false },
        { "name": "assignee", "type": "string", "required": false },
        { "name": "creationDate", "type": "string", "format": "date-time", "required": false },
        { "name": "effort", "type": "string", "required": false },
        { "name": "tags", "type": "array", "items": "string", "required": false }
      ]
    },
    {
      "name": "QualityGate",
      "description": "Quality criteria a project must meet for production readiness",
      "fields": [
        { "name": "id", "type": "string", "required": true },
        { "name": "name", "type": "string", "required": true },
        { "name": "isDefault", "type": "boolean", "required": false },
        { "name": "isBuiltIn", "type": "boolean", "required": false },
        { "name": "conditions", "type": "array", "items": "QualityGateCondition", "required": false }
      ]
    },
    {
      "name": "QualityGateCondition",
      "description": "A single metric threshold condition in a quality gate",
      "fields": [
        { "name": "id", "type": "string", "required": false },
        { "name": "metric", "type": "string", "required": false, "description": "Metric key" },
        { "name": "op", "type": "string", "enum": ["LT", "GT"], "required": false },
        { "name": "error", "type": "string", "required": false, "description": "Error threshold value" }
      ]
    },
    {
      "name": "Measure",
      "description": "A metric value for a component",
      "fields": [
        { "name": "metric", "type": "string", "required": false, "description": "Metric key (e.g., coverage, bugs)" },
        { "name": "value", "type": "string", "required": false },
        { "name": "bestValue", "type": "boolean", "required": false },
        { "name": "period", "type": "object", "required": false, "description": "New code period value" }
      ]
    },
    {
      "name": "Rule",
      "description": "An analysis rule defining a code quality or security check",
      "fields": [
        { "name": "key", "type": "string", "required": false, "description": "Rule key (e.g., java:S1234)" },
        { "name": "name", "type": "string", "required": false },
        { "name": "status", "type": "string", "enum": ["BETA", "DEPRECATED", "READY", "REMOVED"], "required": false },
        { "name": "lang", "type": "string", "required": false },
        { "name": "type", "type": "string", "enum": ["CODE_SMELL", "BUG", "VULNERABILITY", "SECURITY_HOTSPOT"], "required": false },
        { "name": "severity", "type": "string", "enum": ["INFO", "MINOR", "MAJOR", "CRITICAL", "BLOCKER"], "required": false },
        { "name": "htmlDesc", "type": "string", "required": false },
        { "name": "tags", "type": "array", "items": "string", "required": false },
        { "name": "repo", "type": "string", "required": false, "description": "Rule repository" }
      ]
    },
    {
      "name": "User",
      "description": "A SonarQube user account",
      "fields": [
        { "name": "login", "type": "string", "required": false, "description": "Unique user login" },
        { "name": "name", "type": "string", "required": false },
        { "name": "active", "type": "boolean", "required": false },
        { "name": "email", "type": "string", "required": false },
        { "name": "local", "type": "boolean", "required": false },
        { "name": "externalProvider", "type": "string", "required": false },
        { "name": "groups", "type": "array", "items": "string", "required": false }
      ]
    },
    {
      "name": "Paging",
      "description": "Pagination metadata for list responses",
      "fields": [
        { "name": "pageIndex", "type": "integer", "required": false },
        { "name": "pageSize", "type": "integer", "required": false },
        { "name": "total", "type": "integer", "required": false }
      ]
    }
  ]
}