RefineAI Logo
0
%

API Endpoints

Comprehensive documentation of RefineAI's API endpoints, including request parameters, response formats, and example usage.

Base URL

https://api.refine-ai.tech/v1

All API requests should be made to this base URL, followed by the specific endpoint path.

Analysis Endpoints

POST/analyze
Analyze a codebase

Request Parameters

{
  "repository": "string",  // GitHub repository URL or path to local repository
  "branch": "string",      // Optional: Branch to analyze (defaults to main/master)
  "include": ["string"],   // Optional: File patterns to include (e.g., "src/**/*.js")
  "exclude": ["string"],   // Optional: File patterns to exclude (e.g., "**/*.test.js")
  "options": {
    "performance": boolean,  // Optional: Enable performance analysis (default: true)
    "security": boolean,     // Optional: Enable security analysis (default: true)
    "quality": boolean,      // Optional: Enable code quality analysis (default: true)
    "depth": "string"        // Optional: Analysis depth - "basic", "standard", or "deep" (default: "standard")
  }
}

Response

{
  "analysisId": "string",  // Unique identifier for this analysis
  "status": "string",      // "queued", "in-progress", "completed", or "failed"
  "progress": number,      // Analysis progress percentage (0-100)
  "estimatedTime": number, // Estimated time to completion in seconds
  "createdAt": "string",   // ISO timestamp of when the analysis was created
  "updatedAt": "string"    // ISO timestamp of when the analysis was last updated
}

Example Request

curl -X POST https://api.refine-ai.tech/v1/analyze \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "repository": "https://github.com/username/repo",
    "branch": "main",
    "include": ["src/**/*.js", "src/**/*.ts"],
    "exclude": ["**/*.test.js", "**/*.spec.ts"],
    "options": {
      "performance": true,
      "security": true,
      "quality": true,
      "depth": "standard"
    }
  }'
GET/analyze/{analysisId}
Get analysis status

Path Parameters

{
  "analysisId": "string"  // Required: The ID of the analysis to retrieve
}

Response

{
  "analysisId": "string",  // Unique identifier for this analysis
  "status": "string",      // "queued", "in-progress", "completed", or "failed"
  "progress": number,      // Analysis progress percentage (0-100)
  "estimatedTime": number, // Estimated time to completion in seconds
  "createdAt": "string",   // ISO timestamp of when the analysis was created
  "updatedAt": "string",   // ISO timestamp of when the analysis was last updated
  "results": {             // Only present when status is "completed"
    "summary": {
      "issuesFound": number,
      "criticalIssues": number,
      "highIssues": number,
      "mediumIssues": number,
      "lowIssues": number,
      "estimatedImprovements": {
        "performance": string,  // e.g., "30-40%"
        "security": string,     // e.g., "15-20%"
        "quality": string       // e.g., "25-35%"
      }
    }
  },
  "error": {               // Only present when status is "failed"
    "code": "string",
    "message": "string"
  }
}

Example Request

curl -X GET https://api.refine-ai.tech/v1/analyze/a1b2c3d4-e5f6-7890-abcd-1234567890ab \
  -H "Authorization: Bearer YOUR_API_KEY"
GET/analyze/{analysisId}/results
Get detailed analysis results

Path Parameters

{
  "analysisId": "string"  // Required: The ID of the analysis to retrieve results for
}

Query Parameters

{
  "category": "string",  // Optional: Filter results by category ("performance", "security", "quality")
  "severity": "string",  // Optional: Filter results by severity ("critical", "high", "medium", "low")
  "limit": number,       // Optional: Limit the number of results (default: 100)
  "offset": number       // Optional: Offset for pagination (default: 0)
}

Response

{
  "analysisId": "string",
  "total": number,
  "limit": number,
  "offset": number,
  "results": [
    {
      "id": "string",
      "category": "string",      // "performance", "security", or "quality"
      "severity": "string",      // "critical", "high", "medium", or "low"
      "title": "string",
      "description": "string",
      "file": "string",          // File path
      "lineStart": number,
      "lineEnd": number,
      "code": "string",          // The problematic code snippet
      "recommendation": "string", // Recommended fix
      "optimizedCode": "string",  // Suggested optimized code
      "impact": {
        "performance": number,    // Estimated performance improvement (0-100%)
        "security": number,       // Estimated security improvement (0-100%)
        "quality": number         // Estimated quality improvement (0-100%)
      }
    }
  ]
}

Optimization Endpoints

POST/optimize/{analysisId}
Create optimization plan

Path Parameters

{
  "analysisId": "string"  // Required: The ID of the analysis to create an optimization plan for
}

Request Parameters

{
  "issues": ["string"],   // Optional: Array of issue IDs to include in the optimization plan
                          // If not provided, all issues will be considered
  "categories": ["string"], // Optional: Categories to include ("performance", "security", "quality")
  "severities": ["string"], // Optional: Severities to include ("critical", "high", "medium", "low")
  "strategy": "string",   // Optional: Optimization strategy ("safe", "balanced", "aggressive")
                          // Default: "balanced"
  "outputFormat": "string" // Optional: Output format ("pr", "patch", "inline")
                           // Default: "pr"
}

Response

{
  "optimizationId": "string",  // Unique identifier for this optimization plan
  "analysisId": "string",      // The ID of the associated analysis
  "status": "string",          // "created", "in-progress", "completed", or "failed"
  "issuesCount": number,       // Number of issues included in the plan
  "estimatedTime": number,     // Estimated time to implement in seconds
  "createdAt": "string",       // ISO timestamp of when the plan was created
  "strategy": "string"         // The selected optimization strategy
}
POST/optimize/{optimizationId}/implement
Implement optimization plan

Path Parameters

{
  "optimizationId": "string"  // Required: The ID of the optimization plan to implement
}

Request Parameters

{
  "targetBranch": "string",  // Optional: Target branch for PR (default: "refine-ai/optimize")
  "commitMessage": "string", // Optional: Custom commit message
  "prTitle": "string",       // Optional: Custom PR title
  "prDescription": "string"  // Optional: Custom PR description
}

Response

{
  "implementationId": "string",  // Unique identifier for this implementation
  "optimizationId": "string",    // The ID of the associated optimization plan
  "status": "string",            // "queued", "in-progress", "completed", or "failed"
  "progress": number,            // Implementation progress percentage (0-100)
  "createdAt": "string",         // ISO timestamp of when the implementation was created
  "updatedAt": "string",         // ISO timestamp of when the implementation was last updated
  "results": {                   // Only present when status is "completed"
    "prUrl": "string",           // URL to the created pull request (if outputFormat was "pr")
    "patchUrl": "string",        // URL to download the patch file (if outputFormat was "patch")
    "changedFiles": number,      // Number of files changed
    "additions": number,         // Number of lines added
    "deletions": number          // Number of lines deleted
  },
  "error": {                     // Only present when status is "failed"
    "code": "string",
    "message": "string"
  }
}

Response Codes

CodeStatusDescription
200OKThe request was successful
201CreatedThe resource was successfully created
400Bad RequestThe request was invalid or malformed
401UnauthorizedAuthentication is required or failed
403ForbiddenYou don't have permission to access this resource
404Not FoundThe requested resource was not found
429Too Many RequestsYou've exceeded the rate limit
500Internal Server ErrorAn error occurred on the server

API Reference

For a complete API reference, you can download our OpenAPI specification: