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 codebaseRequest 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 statusPath 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 resultsPath 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 planPath 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 planPath 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
Code | Status | Description |
---|---|---|
200 | OK | The request was successful |
201 | Created | The resource was successfully created |
400 | Bad Request | The request was invalid or malformed |
401 | Unauthorized | Authentication is required or failed |
403 | Forbidden | You don't have permission to access this resource |
404 | Not Found | The requested resource was not found |
429 | Too Many Requests | You've exceeded the rate limit |
500 | Internal Server Error | An error occurred on the server |
API Reference
For a complete API reference, you can download our OpenAPI specification: