API Reference
Connectors

Connectors API

Test a Connection

Validates that the provided credentials have access to the platform and returns basic metadata.

POST /api/connectors/test

Request body (Azure DevOps):

{
  "type": "azure_devops",
  "credentials": {
    "organization_url":       "https://dev.azure.com/yourorg",
    "project":                "YourProject",
    "personal_access_token":  "your-pat"
  }
}

Request body (Jira Cloud):

{
  "type": "jira",
  "credentials": {
    "base_url":    "https://yourorg.atlassian.net",
    "email":       "migration@company.com",
    "api_token":   "your-jira-token",
    "project_key": "PROJ"
  }
}

Response (200 OK):

{
  "success": true,
  "message": "Connection verified",
  "metadata": {
    "organisation": "Your Organisation",
    "project":      "YourProject",
    "itemCount":    5847
  }
}

Response (failure):

{
  "success": false,
  "message": "Authentication failed: PAT does not have Work Items (Read) permission"
}

Run a Scan

Scans an ADO project and returns the full audit report with item counts, iteration tree, area tree, custom fields, and pricing.

POST /api/connectors/scan

Request body:

{
  "type": "azure_devops",
  "credentials": {
    "organization_url":      "https://dev.azure.com/yourorg",
    "project":               "YourProject",
    "personal_access_token": "your-pat"
  }
}

Response (200 OK):

{
  "totalWorkItems": 5847,
  "typeCounts": {
    "Epic":       42,
    "Feature":    87,
    "User Story": 2847,
    "Task":       1634,
    "Bug":        992,
    "Test Case":  245
  },
  "iterationPaths": [
    {
      "path":       "MyProject\\2025\\Q1\\Sprint 1",
      "startDate":  "2025-01-06",
      "endDate":    "2025-01-17",
      "itemCount":  41
    }
  ],
  "areaPaths": [
    {
      "path":      "MyProject\\Backend\\API",
      "depth":     3,
      "itemCount": 44
    }
  ],
  "customFields": [
    {
      "referenceName": "Custom.RegulatoryRef",
      "name":          "Regulatory Reference",
      "type":          "String",
      "itemCount":     247
    }
  ],
  "attachmentTotalGb": 4.2,
  "commentCount":      8302,
  "pricing": {
    "totalItems":         5847,
    "attachmentGb":       4.2,
    "basePrice":          99.00,
    "discountPercent":    5,
    "finalPriceGbp":      94.05,
    "currency":           "GBP"
  }
}

The scan is asynchronous for large projects. For projects over 10,000 items, the response includes a scanId that you can poll:

GET /api/audit/{scanId}