API Documentation

Powerful APIs forDocument Processing

Integrate document restoration, torn repair, ink bleed removal, and image inpainting with a premium developer experience.

17+ endpoints
Bearer auth
Production ready

Base URL

recovoly.com

Version

v2

Format

JSON

Availability

24/7

Secure Auth

Clean bearer-token authentication flow.

Fast Integration

Developer-friendly examples and request formats.

Multiple Services

Everything stays grouped and easy to browse.

Detailed Controls

Keep all your existing parameters and options.

Authentication

All API requests require authentication using Bearer tokens. Include your API key in the Authorization header of every request.

Header example
Authorization: Bearer YOUR_API_KEY
1

Log into your dashboard

2

Go to Settings → API Keys

3

Create a new key

4

Copy and store it safely

Rate Limiting

Free Plan

100

Requests per hour

Pro Plan

500

Requests per hour

Enterprise

2000+

Custom limits

Rate Limit Headers

X-RateLimit-Limit — Maximum requests per hour
X-RateLimit-Remaining — Remaining requests in current window
X-RateLimit-Reset — Reset timestamp

Point System

Service Base Costs

Document Restoration5
Torn Document Repair8
Ink Bleed Removal6
Image Inpainting5

Quality Multipliers

Fast1.0x
Standard1.5x
Enhanced2.0x

• Each enhancement option adds 1–3 points

• Larger brush sizes can add multipliers

• Higher inference steps may increase cost

Client Libraries

Installation
pip install requests
Example Usage
import requests
import base64

API_KEY = "your_api_key_here"
BASE_URL = "https://recovoly.com"

headers = {
    "Authorization": f"Bearer {API_KEY}",
    "Content-Type": "application/json"
}

# Document Restoration Example
with open("old-document.jpg", "rb") as image_file:
    image_base64 = base64.b64encode(image_file.read()).decode('utf-8')

payload = {
    "imageBase64": image_base64,
    "fileName": "old-document.jpg",
    "fileSize": 3145728,
    "fileType": "image/jpeg",
    "qualityLevel": "enhanced",
    "enhanceTextClarity": True,
    "restoreFadedText": True,
    "removeStainsSpots": True
}

response = requests.post(
    f"{BASE_URL}/api/v2/document/restore",
    headers=headers,
    json=payload
)

if response.status_code == 200:
    data = response.json()
    print(f"Restoration ID: {data['data']['restoration_id']}")
    print(f"Processing time: {data['data']['processing_time']}ms")
    print(f"Points used: {data['data']['points_used']}")
    
    # Save the restored image
    with open("restored-document.png", "wb") as f:
        f.write(base64.b64decode(data['data']['restored_image']))
else:
    print(f"Error: {response.json().get('error', 'Unknown error')}")

API Endpoints

All your original endpoints stay here — only redesigned.

POST/api/v2/document/restorerestore:documentsBase cost: 5

Document Restoration

Restore and enhance damaged or faded documents using AI. Remove stains, fix faded text, and improve scan quality.

Quality Multipliers

fast

1x

standard

1.5x

enhanced

2x

Parameters

NameTypeRequiredDescription
imageBase64stringYesBase64 encoded image data of the document to restore
fileNamestringNoOriginal filename of the document
fileSizenumberNoSize of the original file in bytes
fileTypestringNoMIME type of the original file
qualityLevelstringNoRestoration quality level (higher quality costs more points)
enhanceTextClaritybooleanNoEnhance text clarity and sharpness
restoreFadedTextbooleanNoRestore faded and missing text
removeStainsSpotsbooleanNoRemove stains, spots, and watermarks
removeFoxingAgeSpotsbooleanNoRemove foxing and age-related spots
cleanBackgroundArtifactsbooleanNoClean background and remove artifacts
restoreFadedInkbooleanNoRestore faded ink and improve contrast
reduceNoiseGrainbooleanNoReduce noise and grain from scan
improveScanReadabilitybooleanNoImprove overall scan readability
sharpenDocumentDetailsbooleanNoSharpen document details and edges
Request Example
{
  "imageBase64": "/9j/4AAQSkZJRgABAQEAYABgAAD...",
  "fileName": "old-document.jpg",
  "fileSize": 3145728,
  "fileType": "image/jpeg",
  "qualityLevel": "enhanced",
  "enhanceTextClarity": true,
  "restoreFadedText": true,
  "removeStainsSpots": true,
  "removeFoxingAgeSpots": true,
  "cleanBackgroundArtifacts": true,
  "restoreFadedInk": true,
  "reduceNoiseGrain": true,
  "improveScanReadability": true,
  "sharpenDocumentDetails": true
}
Response Example
{
  "success": true,
  "data": {
    "restored_image": "base64_encoded_restored_image_data...",
    "restoration_id": "65f1a2b3c4d5e6f7a8b9c0d1",
    "file_name": "document-1709123456789-1234-restored.png",
    "processing_time": 3456,
    "points_used": 12,
    "remaining_points": 88,
    "quality_level": "enhanced",
    "enhancements_applied": {
      "enhanceTextClarity": true,
      "restoreFadedText": true,
      "removeStainsSpots": true,
      "removeFoxingAgeSpots": true,
      "cleanBackgroundArtifacts": true,
      "restoreFadedInk": true,
      "reduceNoiseGrain": true,
      "improveScanReadability": true,
      "sharpenDocumentDetails": true
    },
    "extracted_text": "This is any text extracted from the document...",
    "metadata": {
      "original_file_name": "old-document.jpg",
      "original_file_size": 3145728,
      "restored_file_size": 2456789,
      "timestamp": "2024-01-15T10:30:00Z"
    }
  }
}
GET/api/v2/document/restore/{id}read:documents

Get Restoration Record

Retrieve a specific document restoration record by ID.

Parameters

NameTypeRequiredDescription
idstringYesRestoration ID from the create response
Request Example
GET /api/v2/document/restore/65f1a2b3c4d5e6f7a8b9c0d1
Response Example
{
  "success": true,
  "data": {
    "restoration_id": "65f1a2b3c4d5e6f7a8b9c0d1",
    "status": "completed",
    "quality_level": "enhanced",
    "enhancements": {
      "enhanceTextClarity": true,
      "restoreFadedText": true,
      "removeStainsSpots": true
    },
    "original_file": {
      "name": "old-document.jpg",
      "size": 3145728,
      "type": "image/jpeg",
      "url": "https://cdn.example.com/original-12345.jpg"
    },
    "restored_file": {
      "name": "document-1709123456789-1234-restored.png",
      "size": 2456789,
      "url": "https://cdn.example.com/restored-12345.png"
    },
    "processing_time": 3456,
    "points_used": 12,
    "created_at": "2024-01-15T10:30:00Z",
    "completed_at": "2024-01-15T10:30:03Z"
  }
}
GET/api/v2/document/restorationsread:documents

List Restorations

List all document restoration records with pagination and filtering.

Parameters

NameTypeRequiredDescription
pagenumberNoPage number for pagination
limitnumberNoItems per page
statusstringNoFilter by status
sortstringNoSort order by creation date
Request Example
GET /api/v2/document/restorations?page=1&limit=10&status=completed&sort=desc
Response Example
{
  "success": true,
  "data": {
    "restorations": [
      {
        "restoration_id": "65f1a2b3c4d5e6f7a8b9c0d1",
        "status": "completed",
        "quality_level": "enhanced",
        "original_file": {
          "name": "old-document.jpg",
          "size": 3145728
        },
        "processing_time": 3456,
        "points_used": 12,
        "created_at": "2024-01-15T10:30:00Z"
      }
    ],
    "pagination": {
      "page": 1,
      "limit": 10,
      "total": 45,
      "pages": 5,
      "has_next": true,
      "has_previous": false
    }
  }
}
POST/api/v2/torn/repairrepair:tornBase cost: 8

Torn Document Repair

Repair torn and damaged documents by combining pieces and reconstructing missing areas.

Quality Multipliers

fast

1x

standard

1.5x

enhanced

2x

Parameters

NameTypeRequiredDescription
imageBase64stringYesBase64 encoded image data of the torn document
fileNamestringNoOriginal filename
fileSizenumberNoFile size in bytes
fileTypestringNoMIME type
qualityLevelstringNoRepair quality level
detectTornEdgesbooleanNoDetect and identify all torn edges accurately
alignTornPiecesbooleanNoAlign torn pieces to their correct positions
reconstructMissingAreasbooleanNoReconstruct missing areas based on surrounding content
restoreTextAcrossTearsbooleanNoRestore text continuity across tear lines
fillGapsSeamlesslybooleanNoFill gaps seamlessly without visible seams
smoothRepairBoundariesbooleanNoSmooth repair boundaries for natural appearance
keepOriginalStylebooleanNoMaintain the original document style and appearance
keepMarksAsIsbooleanNoPreserve existing marks, stamps, and annotations
Request Example
{
  "imageBase64": "/9j/4AAQSkZJRgABAQEAYABgAAD...",
  "fileName": "torn-letter.jpg",
  "fileSize": 4194304,
  "fileType": "image/jpeg",
  "qualityLevel": "enhanced",
  "detectTornEdges": true,
  "alignTornPieces": true,
  "reconstructMissingAreas": true,
  "restoreTextAcrossTears": true,
  "fillGapsSeamlessly": true,
  "smoothRepairBoundaries": true,
  "keepOriginalStyle": true,
  "keepMarksAsIs": false
}
Response Example
{
  "success": true,
  "data": {
    "repaired_image": "base64_encoded_repaired_image_data...",
    "repair_id": "65f1a2b3c4d5e6f7a8b9c0d2",
    "file_name": "torn-1709123456789-1234-repaired.png",
    "processing_time": 4567,
    "points_used": 18,
    "remaining_points": 82,
    "quality_level": "enhanced",
    "repair_options_applied": {
      "detectTornEdges": true,
      "alignTornPieces": true,
      "reconstructMissingAreas": true,
      "restoreTextAcrossTears": true,
      "fillGapsSeamlessly": true,
      "smoothRepairBoundaries": true
    },
    "document_style_preserved": {
      "keepOriginalStyle": true,
      "keepMarksAsIs": false
    },
    "metadata": {
      "original_file_name": "torn-letter.jpg",
      "original_file_size": 4194304,
      "repaired_file_size": 3567890,
      "timestamp": "2024-01-15T11:45:00Z"
    }
  }
}
GET/api/v2/torn/repair/{id}read:documents

Get Repair Record

Retrieve a specific torn document repair record by ID.

Parameters

NameTypeRequiredDescription
idstringYesRepair ID from the create response
Request Example
GET /api/v2/torn/repair/65f1a2b3c4d5e6f7a8b9c0d2
Response Example
{
  "success": true,
  "data": {
    "repair_id": "65f1a2b3c4d5e6f7a8b9c0d2",
    "status": "completed",
    "quality_level": "enhanced",
    "repair_options": {
      "detectTornEdges": true,
      "alignTornPieces": true,
      "reconstructMissingAreas": true
    },
    "document_style": {
      "keepOriginalStyle": true,
      "keepMarksAsIs": false
    },
    "original_file": {
      "name": "torn-letter.jpg",
      "size": 4194304,
      "url": "https://cdn.example.com/torn-12345.jpg"
    },
    "repaired_file": {
      "name": "torn-1709123456789-1234-repaired.png",
      "size": 3567890,
      "url": "https://cdn.example.com/repaired-12345.png"
    },
    "processing_time": 4567,
    "points_used": 18,
    "created_at": "2024-01-15T11:45:00Z",
    "completed_at": "2024-01-15T11:45:04Z"
  }
}
GET/api/v2/torn/repairsread:documents

List Repairs

List all torn document repair records with pagination and filtering.

Parameters

NameTypeRequiredDescription
pagenumberNoPage number
limitnumberNoItems per page
statusstringNoFilter by status
qualitystringNoFilter by quality level
sortstringNoSort order
Request Example
GET /api/v2/torn/repairs?page=1&limit=10&status=completed&quality=enhanced&sort=desc
Response Example
{
  "success": true,
  "data": {
    "repairs": [
      {
        "repair_id": "65f1a2b3c4d5e6f7a8b9c0d2",
        "status": "completed",
        "quality_level": "enhanced",
        "original_file": {
          "name": "torn-letter.jpg",
          "size": 4194304
        },
        "processing_time": 4567,
        "points_used": 18,
        "created_at": "2024-01-15T11:45:00Z"
      }
    ],
    "pagination": {
      "page": 1,
      "limit": 10,
      "total": 23,
      "pages": 3,
      "has_next": true,
      "has_previous": false
    },
    "filters": {
      "status": "completed",
      "quality": "enhanced",
      "sort": "desc"
    }
  }
}
GET/api/v2/torn/repair/statsread:documents

Repair Statistics

Get usage statistics for torn document repairs.

Request Example
GET /api/v2/torn/repair/stats
Response Example
{
  "success": true,
  "data": {
    "total_repairs": 23,
    "completed_repairs": 20,
    "failed_repairs": 2,
    "processing_repairs": 1,
    "success_rate": "86.96",
    "total_points_used": 360,
    "average_processing_time_ms": 4321,
    "average_processing_time_seconds": "4.32",
    "quality_breakdown": {
      "fast": 5,
      "standard": 8,
      "enhanced": 7
    },
    "most_used_quality": "standard"
  }
}
POST/api/v2/inkbleed/removeremove:inkbleedBase cost: 6

Ink Bleed Removal

Remove ink bleed-through from documents while preserving original text and style.

Quality Multipliers

fast

1x

standard

1.5x

enhanced

2x

Parameters

NameTypeRequiredDescription
imageBase64stringYesBase64 encoded image data of the document with ink bleed
fileNamestringNoOriginal filename
fileSizenumberNoFile size in bytes
fileTypestringNoMIME type
qualityLevelstringNoProcessing quality level
detectBacksideInkbooleanNoDetect backside ink showing through the paper
suppressBleedThroughbooleanNoSuppress ink bleed-through from the opposite side
balanceInkContrastbooleanNoBalance ink contrast for readability
preventOverCleaningbooleanNoPrevent over-cleaning - preserve legitimate text
preserveDocumentStylebooleanNoPreserve original document style and paper texture
enhanceTextVisibilitybooleanNoEnhance text visibility by removing bleed interference
Request Example
{
  "imageBase64": "/9j/4AAQSkZJRgABAQEAYABgAAD...",
  "fileName": "inkbleed-document.jpg",
  "fileSize": 5242880,
  "fileType": "image/jpeg",
  "qualityLevel": "enhanced",
  "detectBacksideInk": true,
  "suppressBleedThrough": true,
  "balanceInkContrast": true,
  "preventOverCleaning": true,
  "preserveDocumentStyle": true,
  "enhanceTextVisibility": true
}
Response Example
{
  "success": true,
  "data": {
    "cleaned_image": "base64_encoded_cleaned_image_data...",
    "removal_id": "65f1a2b3c4d5e6f7a8b9c0d3",
    "file_name": "inkbleed-1709123456789-1234-cleaned.png",
    "processing_time": 5678,
    "points_used": 12,
    "remaining_points": 88,
    "quality_level": "enhanced",
    "ink_bleed_options_applied": {
      "detectBacksideInk": true,
      "suppressBleedThrough": true,
      "balanceInkContrast": true,
      "preventOverCleaning": true,
      "preserveDocumentStyle": true,
      "enhanceTextVisibility": true
    },
    "metadata": {
      "original_file_name": "inkbleed-document.jpg",
      "original_file_size": 5242880,
      "cleaned_file_size": 4678901,
      "timestamp": "2024-01-15T14:20:00Z"
    }
  }
}
GET/api/v2/inkbleed/remove/{id}read:documents

Get Removal Record

Retrieve a specific ink bleed removal record by ID.

Parameters

NameTypeRequiredDescription
idstringYesRemoval ID from the create response
Request Example
GET /api/v2/inkbleed/remove/65f1a2b3c4d5e6f7a8b9c0d3
Response Example
{
  "success": true,
  "data": {
    "removal_id": "65f1a2b3c4d5e6f7a8b9c0d3",
    "status": "completed",
    "quality_level": "enhanced",
    "ink_bleed_settings": {
      "detectBacksideInk": true,
      "suppressBleedThrough": true,
      "balanceInkContrast": true
    },
    "original_file": {
      "name": "inkbleed-document.jpg",
      "size": 5242880,
      "url": "https://cdn.example.com/inkbleed-12345.jpg"
    },
    "cleaned_file": {
      "name": "inkbleed-1709123456789-1234-cleaned.png",
      "size": 4678901,
      "url": "https://cdn.example.com/cleaned-12345.png"
    },
    "processing_time": 5678,
    "points_used": 12,
    "created_at": "2024-01-15T14:20:00Z",
    "completed_at": "2024-01-15T14:20:05Z"
  }
}
GET/api/v2/inkbleed/removalsread:documents

List Removals

List all ink bleed removal records with pagination and filtering.

Parameters

NameTypeRequiredDescription
pagenumberNoPage number
limitnumberNoItems per page
statusstringNoFilter by status
qualitystringNoFilter by quality level
Request Example
GET /api/v2/inkbleed/removals?page=1&limit=10&status=completed&quality=enhanced
Response Example
{
  "success": true,
  "data": {
    "removals": [
      {
        "removal_id": "65f1a2b3c4d5e6f7a8b9c0d3",
        "status": "completed",
        "quality_level": "enhanced",
        "original_file": {
          "name": "inkbleed-document.jpg",
          "size": 5242880
        },
        "processing_time": 5678,
        "points_used": 12,
        "created_at": "2024-01-15T14:20:00Z"
      }
    ],
    "pagination": {
      "page": 1,
      "limit": 10,
      "total": 18,
      "pages": 2,
      "has_next": true,
      "has_previous": false
    }
  }
}
GET/api/v2/inkbleed/remove/statsread:documents

Removal Statistics

Get usage statistics for ink bleed removals.

Request Example
GET /api/v2/inkbleed/remove/stats
Response Example
{
  "success": true,
  "data": {
    "total_removals": 18,
    "completed_removals": 16,
    "failed_removals": 1,
    "processing_removals": 1,
    "success_rate": "88.89",
    "total_points_used": 192,
    "average_processing_time_ms": 5432,
    "average_processing_time_seconds": "5.43",
    "quality_breakdown": {
      "fast": 4,
      "standard": 6,
      "enhanced": 6
    },
    "most_used_quality": "standard",
    "settings_popularity": {
      "detectBacksideInk": 94,
      "suppressBleedThrough": 88,
      "balanceInkContrast": 81,
      "preventOverCleaning": 75,
      "preserveDocumentStyle": 69,
      "enhanceTextVisibility": 63
    }
  }
}
POST/api/v2/inkbleed/remove/previewremove:inkbleed

Preview Points

Calculate points needed for ink bleed removal without processing the image.

Parameters

NameTypeRequiredDescription
qualityLevelstringNoQuality level to preview
detectBacksideInkbooleanNoPreview with this option enabled
suppressBleedThroughbooleanNoPreview with this option enabled
balanceInkContrastbooleanNoPreview with this option enabled
preventOverCleaningbooleanNoPreview with this option enabled
preserveDocumentStylebooleanNoPreview with this option enabled
enhanceTextVisibilitybooleanNoPreview with this option enabled
Request Example
{
  "qualityLevel": "enhanced",
  "detectBacksideInk": true,
  "suppressBleedThrough": true,
  "balanceInkContrast": true,
  "preventOverCleaning": true,
  "preserveDocumentStyle": true,
  "enhanceTextVisibility": true
}
Response Example
{
  "success": true,
  "data": {
    "points_required": 12,
    "points_breakdown": {
      "base_cost": 6,
      "options_total": 6,
      "quality_multiplier": 2,
      "quality_level": "enhanced"
    },
    "settings_summary": {
      "total_options_selected": 6,
      "quality_level": "enhanced"
    }
  }
}
POST/api/v2/inpaint/processprocess:inpaintBase cost: 5

Image Inpainting

Remove unwanted objects or imperfections from images using AI inpainting.

Quality Multipliers

fast

1x

standard

1.5x

enhanced

2x

Parameters

NameTypeRequiredDescription
imageUrlstringYesURL of the image to inpaint
maskUrlstringYesURL of the mask image (white areas indicate regions to inpaint)
fileNamestringNoOriginal filename
fileSizenumberNoFile size in bytes
fileTypestringNoMIME type
brushSizenumberNoBrush size used for mask creation (affects point calculation)
qualityLevelstringNoProcessing quality level
guidanceScalenumberNoGuidance scale for diffusion models (7.5-15.0)
numInferenceStepsnumberNoNumber of inference steps (higher = better quality, slower)
seednumberNoRandom seed for reproducibility
Request Example
{
  "imageUrl": "https://your-storage.com/images/example.jpg",
  "maskUrl": "https://your-storage.com/masks/mask.png",
  "fileName": "example.jpg",
  "fileSize": 3145728,
  "fileType": "image/jpeg",
  "brushSize": 25,
  "qualityLevel": "enhanced",
  "guidanceScale": 7.5,
  "numInferenceSteps": 75,
  "seed": 42
}
Response Example
{
  "success": true,
  "data": {
    "restored_image": "https://cdn.example.com/inpaint-1709123456789-1234-restored.png",
    "inpaint_id": "65f1a2b3c4d5e6f7a8b9c0d4",
    "file_name": "inpaint-1709123456789-1234-restored.png",
    "processing_time": 3456,
    "points_used": 15,
    "remaining_points": 85,
    "quality_level": "enhanced",
    "brush_size": 25,
    "metadata": {
      "original_file_name": "example.jpg",
      "original_file_size": 3145728,
      "timestamp": "2024-01-15T16:10:00Z"
    }
  }
}
GET/api/v2/inpaint/process/{id}read:inpaint

Get Inpainting Record

Retrieve a specific inpainting record by ID.

Parameters

NameTypeRequiredDescription
idstringYesInpainting ID from the process response
Request Example
GET /api/v2/inpaint/process/65f1a2b3c4d5e6f7a8b9c0d4
Response Example
{
  "success": true,
  "data": {
    "inpaint_id": "65f1a2b3c4d5e6f7a8b9c0d4",
    "status": "completed",
    "quality_level": "enhanced",
    "brush_size": 25,
    "processing_steps": 75,
    "original_file": {
      "name": "example.jpg",
      "size": 3145728,
      "url": "https://cdn.example.com/original-12345.jpg"
    },
    "restored_file": {
      "name": "inpaint-1709123456789-1234-restored.png",
      "size": 2345678,
      "url": "https://cdn.example.com/restored-12345.png"
    },
    "mask_file": {
      "url": "https://cdn.example.com/mask-12345.png"
    },
    "processing_time": 3456,
    "points_used": 15,
    "created_at": "2024-01-15T16:10:00Z",
    "completed_at": "2024-01-15T16:10:03Z"
  }
}
GET/api/v2/inpaint/processesread:inpaint

List Inpaintings

List all inpainting records with pagination and filtering.

Parameters

NameTypeRequiredDescription
pagenumberNoPage number
limitnumberNoItems per page
statusstringNoFilter by status
qualitystringNoFilter by quality level
Request Example
GET /api/v2/inpaint/processes?page=1&limit=10&status=completed&quality=enhanced
Response Example
{
  "success": true,
  "data": {
    "inpainting": [
      {
        "inpaint_id": "65f1a2b3c4d5e6f7a8b9c0d4",
        "status": "completed",
        "quality_level": "enhanced",
        "brush_size": 25,
        "original_file": {
          "name": "example.jpg",
          "size": 3145728
        },
        "processing_time": 3456,
        "points_used": 15,
        "created_at": "2024-01-15T16:10:00Z"
      }
    ],
    "pagination": {
      "page": 1,
      "limit": 10,
      "total": 32,
      "pages": 4,
      "has_next": true,
      "has_previous": false
    }
  }
}
GET/api/v2/inpaint/process/statsread:inpaint

Inpainting Statistics

Get usage statistics for inpainting.

Request Example
GET /api/v2/inpaint/process/stats
Response Example
{
  "success": true,
  "data": {
    "total_inpaintings": 32,
    "completed_inpaintings": 30,
    "failed_inpaintings": 1,
    "processing_inpaintings": 1,
    "success_rate": "93.75",
    "total_points_used": 450,
    "average_processing_time_ms": 3210,
    "average_processing_time_seconds": "3.21",
    "quality_breakdown": {
      "fast": 8,
      "standard": 12,
      "enhanced": 10
    },
    "most_used_quality": "standard",
    "brush_statistics": {
      "average_brush_size": 28,
      "min_brush_size": 5,
      "max_brush_size": 75,
      "most_common_category": "medium"
    },
    "total_images_processed": 30
  }
}
POST/api/v2/inpaint/process/previewprocess:inpaint

Preview Points

Calculate points needed for inpainting without processing the image.

Parameters

NameTypeRequiredDescription
qualityLevelstringNoQuality level to preview
brushSizenumberNoBrush size for point calculation
numInferenceStepsnumberNoNumber of inference steps
Request Example
{
  "qualityLevel": "enhanced",
  "brushSize": 30,
  "numInferenceSteps": 75
}
Response Example
{
  "success": true,
  "data": {
    "points_required": 18,
    "points_breakdown": {
      "base_cost": 5,
      "brush_multiplier": 1.2,
      "step_cost": 0.5,
      "quality_multiplier": 2,
      "quality_level": "enhanced"
    },
    "settings_summary": {
      "quality_level": "enhanced",
      "brush_size": 30,
      "brush_category": "medium",
      "inference_steps": 75
    }
  }
}

Ready to integrate?

Keep your full API content and examples exactly as they are, with a cleaner premium docs UI.