mirror of
https://github.com/snapotter-hq/SnapOtter.git
synced 2026-08-03 07:46:42 +02:00
Close generic settings authorization bypasses and enforce per-setting authority, validation, redaction, transactional config import, and route-local write rate limiting.
21811 lines
756 KiB
YAML
21811 lines
756 KiB
YAML
openapi: 3.1.0
|
|
info:
|
|
title: SnapOtter API
|
|
version: 2.0.0
|
|
description: |
|
|
SnapOtter के लिए REST API, एक सेल्फ-होस्टेड फ़ाइल-प्रोसेसिंग इन्फ़्रास्ट्रक्चर जिसमें image, video, audio, PDF और दस्तावेज़ों के लिए 200+ टूल हैं।
|
|
|
|
## प्रमाणीकरण
|
|
|
|
अधिकांश एंडपॉइंट को दो में से किसी एक तरीके से प्रमाणीकरण की आवश्यकता होती है:
|
|
|
|
1. **सेशन कुकी** - उपयोगकर्ता नाम और पासवर्ड के साथ `POST /api/auth/login` को कॉल करें। प्रतिक्रिया में एक `token` फ़ील्ड शामिल होती है। बाद के अनुरोधों में इसे `Authorization: Bearer <token>` के रूप में पास करें।
|
|
|
|
2. **API कुंजी** - सेटिंग्स UI या `POST /api/v1/api-keys` के माध्यम से एक कुंजी जनरेट करें। कुंजियों में `si_` उपसर्ग लगा होता है। इसे `Authorization: Bearer si_...` के रूप में पास करें।
|
|
|
|
ताला आइकन से चिह्नित एंडपॉइंट को प्रमाणीकरण की आवश्यकता होती है। केवल व्यवस्थापक वाले एंडपॉइंट उनके विवरण में नोट किए गए हैं।
|
|
license:
|
|
name: AGPL-3.0
|
|
url: https://github.com/snapotter-hq/snapotter/blob/main/LICENSE
|
|
servers:
|
|
- url: /
|
|
description: Current instance
|
|
tags:
|
|
- name: Tools
|
|
description: image, video, audio, PDF, और files में फैले फ़ाइल प्रोसेसिंग tools। प्रत्येक एक multipart file upload स्वीकार करता है और एक download URL लौटाता है।
|
|
- name: Batch
|
|
description: एक ही request में एक tool के जरिए कई फ़ाइलें प्रोसेस करें।
|
|
- name: Pipelines
|
|
description: 'कई tools को पुन: प्रयोज्य workflows में चेन करें।'
|
|
- name: Files
|
|
description: प्रोसेस की गई फ़ाइलें upload, download, और प्रबंधित करें।
|
|
- name: Auth
|
|
description: Login, logout, session प्रबंधन, और user प्रशासन।
|
|
- name: API Keys
|
|
description: प्रोग्रामेटिक एक्सेस के लिए API keys बनाएं और प्रबंधित करें।
|
|
- name: Settings
|
|
description: सिस्टम-व्यापी configuration (writes के लिए केवल admin)।
|
|
- name: Teams
|
|
description: users को teams में व्यवस्थित करें।
|
|
- name: Roles
|
|
description: बारीक permissions के साथ कस्टम role प्रबंधन।
|
|
- name: Audit
|
|
description: प्रशासनिक कार्रवाइयों को ट्रैक करने के लिए audit log।
|
|
- name: Analytics
|
|
description: Analytics configuration और user सहमति।
|
|
- name: Features
|
|
description: AI feature bundle इंस्टॉलेशन और प्रबंधन।
|
|
- name: Admin
|
|
description: प्रशासनिक स्वास्थ्य निदान।
|
|
- name: System
|
|
description: स्वास्थ्य जाँच, configuration, और job प्रगति।
|
|
- name: Enterprise
|
|
description: License-आधारित enterprise प्रशासन, अनुपालन, SCIM, और integration APIs।
|
|
components:
|
|
securitySchemes:
|
|
bearerAuth:
|
|
type: http
|
|
scheme: bearer
|
|
description: Session token from login or API key (prefixed with si_)
|
|
responses:
|
|
RateLimited:
|
|
description: Too many requests. The client has exceeded the rate limit.
|
|
headers:
|
|
Retry-After:
|
|
schema:
|
|
type: integer
|
|
description: Seconds until the rate limit window resets
|
|
X-RateLimit-Limit:
|
|
schema:
|
|
type: integer
|
|
description: Maximum requests per time window
|
|
X-RateLimit-Remaining:
|
|
schema:
|
|
type: integer
|
|
description: Remaining requests in current window
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
error:
|
|
type: string
|
|
example: Rate limit exceeded
|
|
schemas:
|
|
Error:
|
|
type: object
|
|
required:
|
|
- error
|
|
properties:
|
|
error:
|
|
type: string
|
|
example: Invalid image format
|
|
details:
|
|
type: string
|
|
description: Additional error details (e.g. Zod validation errors)
|
|
ToolResponse:
|
|
type: object
|
|
properties:
|
|
jobId:
|
|
type: string
|
|
description: Unique job identifier
|
|
downloadUrl:
|
|
type: string
|
|
description: URL to download the processed image
|
|
example: /api/v1/download/abc123/output.png
|
|
originalSize:
|
|
type: integer
|
|
description: Original file size in bytes
|
|
processedSize:
|
|
type: integer
|
|
description: Processed file size in bytes
|
|
previewUrl:
|
|
type: string
|
|
description: URL to a WebP preview (present when output is not browser-previewable, e.g. TIFF, HEIF)
|
|
savedFileId:
|
|
type: string
|
|
description: ID of the auto-saved file in the library (present when fileId was provided in the request)
|
|
UnauthorizedError:
|
|
type: object
|
|
properties:
|
|
statusCode:
|
|
type: integer
|
|
example: 401
|
|
error:
|
|
type: string
|
|
example: Unauthorized
|
|
message:
|
|
type: string
|
|
example: Authentication required
|
|
ForbiddenError:
|
|
type: object
|
|
properties:
|
|
statusCode:
|
|
type: integer
|
|
example: 403
|
|
error:
|
|
type: string
|
|
example: Forbidden
|
|
message:
|
|
type: string
|
|
example: Insufficient permissions
|
|
ConflictError:
|
|
type: object
|
|
properties:
|
|
statusCode:
|
|
type: integer
|
|
example: 409
|
|
error:
|
|
type: string
|
|
example: Conflict
|
|
message:
|
|
type: string
|
|
example: Resource already exists
|
|
FeatureNotInstalledError:
|
|
type: object
|
|
properties:
|
|
error:
|
|
type: string
|
|
example: Feature not installed
|
|
code:
|
|
type: string
|
|
enum:
|
|
- FEATURE_NOT_INSTALLED
|
|
- FEATURE_INCOMPATIBLE
|
|
example: FEATURE_NOT_INSTALLED
|
|
feature:
|
|
type: string
|
|
description: Feature bundle identifier
|
|
featureName:
|
|
type: string
|
|
description: Human-readable feature name
|
|
estimatedSize:
|
|
type: string
|
|
description: Estimated download size
|
|
requestedQuality:
|
|
type: string
|
|
enum:
|
|
- fast
|
|
- balanced
|
|
- best
|
|
description: OCR tier that could not be honored; Fast is reported when Korean is explicitly requested with Fast or the legacy Tesseract alias
|
|
compatibilityReason:
|
|
type: string
|
|
description: Machine-readable runtime compatibility reason, when available
|
|
guidance:
|
|
type: string
|
|
description: Actionable recovery guidance, when available
|
|
HealthResponse:
|
|
type: object
|
|
properties:
|
|
status:
|
|
type: string
|
|
enum:
|
|
- healthy
|
|
- unhealthy
|
|
version:
|
|
type: string
|
|
AdminHealthResponse:
|
|
type: object
|
|
properties:
|
|
status:
|
|
type: string
|
|
enum:
|
|
- healthy
|
|
- degraded
|
|
version:
|
|
type: string
|
|
uptime:
|
|
type: string
|
|
storage:
|
|
type: object
|
|
properties:
|
|
mode:
|
|
type: string
|
|
available:
|
|
type: string
|
|
database:
|
|
type: string
|
|
enum:
|
|
- ok
|
|
- error
|
|
queue:
|
|
type: object
|
|
properties:
|
|
active:
|
|
type: integer
|
|
pending:
|
|
type: integer
|
|
ai:
|
|
type: object
|
|
properties:
|
|
gpu:
|
|
type: boolean
|
|
security:
|
|
- bearerAuth: []
|
|
paths:
|
|
/api/v1/health:
|
|
get:
|
|
operationId: healthCheck
|
|
tags:
|
|
- System
|
|
summary: स्वास्थ्य जाँच
|
|
description: सर्वर स्वास्थ्य स्थिति लौटाता है। Docker HEALTHCHECK द्वारा उपयोग किया जाता है। सार्वजनिक endpoint।
|
|
security: []
|
|
responses:
|
|
'200':
|
|
description: Server health
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HealthResponse'
|
|
'503':
|
|
description: Database unavailable
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HealthResponse'
|
|
/api/v1/tools/image/resize:
|
|
post:
|
|
operationId: resizeImage
|
|
tags:
|
|
- Tools
|
|
summary: इमेज रीसाइज़
|
|
description: एक image का आकार विशिष्ट आयामों में या प्रतिशत के अनुसार बदलें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Image file to process
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `width` (number, optional) - Target width in pixels
|
|
- `height` (number, optional) - Target height in pixels
|
|
- `fit` (string, default "contain") - One of: contain, cover, fill, inside, outside
|
|
- `withoutEnlargement` (boolean, default false) - Prevent upscaling
|
|
- `percentage` (number, optional) - Scale by percentage instead of fixed dimensions
|
|
responses:
|
|
'200':
|
|
description: Processed image
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/image/content-aware-resize:
|
|
post:
|
|
operationId: contentAwareResize
|
|
tags:
|
|
- Tools
|
|
summary: कंटेंट-अवेयर रीसाइज़
|
|
description: महत्वपूर्ण विशेषताओं को संरक्षित करते हुए बुद्धिमानी से कंटेंट हटाने या जोड़ने के लिए seam carving का उपयोग करके एक image का आकार बदलें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Image file to process
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `width` (number, optional) - Target width in pixels
|
|
- `height` (number, optional) - Target height in pixels
|
|
- `protectFaces` (boolean, default false) - Detect and protect faces from distortion
|
|
- `blurRadius` (number 0-20, default 4) - Blur radius for energy map
|
|
- `sobelThreshold` (number 1-20, default 2) - Edge detection threshold
|
|
- `square` (boolean, default false) - Crop to square aspect ratio
|
|
|
|
At least one of `width`, `height`, or `square` must be provided.
|
|
responses:
|
|
'200':
|
|
description: Processed image
|
|
content:
|
|
application/json:
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/components/schemas/ToolResponse'
|
|
- type: object
|
|
properties:
|
|
width:
|
|
type: integer
|
|
height:
|
|
type: integer
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/image/crop:
|
|
post:
|
|
operationId: cropImage
|
|
tags:
|
|
- Tools
|
|
summary: इमेज क्रॉप
|
|
description: एक image को किसी विशिष्ट क्षेत्र तक क्रॉप करें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Image file to process
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `left` (number, required) - Left offset in pixels (min 0)
|
|
- `top` (number, required) - Top offset in pixels (min 0)
|
|
- `width` (number, required) - Width of crop region in pixels
|
|
- `height` (number, required) - Height of crop region in pixels
|
|
- `unit` (string, optional) - One of: px, percent
|
|
responses:
|
|
'200':
|
|
description: Processed image
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/image/rotate:
|
|
post:
|
|
operationId: rotateImage
|
|
tags:
|
|
- Tools
|
|
summary: इमेज रोटेट और फ्लिप
|
|
description: एक image को कोण के अनुसार घुमाएं या क्षैतिज/लंबवत फ़्लिप करें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Image file to process
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `angle` (number, default 0) - Rotation angle in degrees
|
|
- `horizontal` (boolean, default false) - Flip horizontally
|
|
- `vertical` (boolean, default false) - Flip vertically
|
|
responses:
|
|
'200':
|
|
description: Processed image
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/image/convert:
|
|
post:
|
|
operationId: convertFormat
|
|
tags:
|
|
- Tools
|
|
summary: इमेज कन्वर्ट
|
|
description: एक image को किसी भिन्न format में बदलें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Image file to process
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `format` (string, required) - One of: jpg, png, webp, avif, tiff, gif, heic, heif, jxl, bmp, ico, jp2, qoi, psd
|
|
- `quality` (number 1-100, optional) - Output quality
|
|
responses:
|
|
'200':
|
|
description: Processed image
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/image/compress:
|
|
post:
|
|
operationId: compressImage
|
|
tags:
|
|
- Tools
|
|
summary: इमेज कंप्रेस
|
|
description: गुणवत्ता स्तर या लक्ष्य आकार के अनुसार image फ़ाइल आकार कम करें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Image file to process
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `mode` (string, default "quality") - One of: quality, targetSize
|
|
- `quality` (number 1-100, optional) - Compression quality level
|
|
- `targetSizeKb` (number, optional) - Target file size in kilobytes
|
|
responses:
|
|
'200':
|
|
description: Processed image
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/image/strip-metadata:
|
|
post:
|
|
operationId: stripMetadata
|
|
tags:
|
|
- Tools
|
|
summary: इमेज मेटाडेटा हटाएं
|
|
description: एक image से EXIF, GPS, ICC, या XMP metadata हटाएं।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Image file to process
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `stripExif` (boolean, default false) - Remove EXIF data
|
|
- `stripGps` (boolean, default false) - Remove GPS data
|
|
- `stripIcc` (boolean, default false) - Remove ICC profile
|
|
- `stripXmp` (boolean, default false) - Remove XMP data
|
|
- `stripAll` (boolean, default true) - Remove all metadata
|
|
responses:
|
|
'200':
|
|
description: Processed image
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/image/border:
|
|
post:
|
|
operationId: addBorder
|
|
tags:
|
|
- Tools
|
|
summary: बॉर्डर और फ़्रेम
|
|
description: एक image में बॉर्डर, गोल कोने, पैडिंग, या छाया जोड़ें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Image file to process
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `borderWidth` (number 0-2000, default 10) - Border thickness in pixels
|
|
- `borderColor` (hex string, default "#000000") - Border color
|
|
- `padding` (number 0-200, default 0) - Inner padding in pixels
|
|
- `paddingColor` (hex string, default "#FFFFFF") - Padding fill color
|
|
- `cornerRadius` (number 0-2000, default 0) - Corner rounding radius
|
|
- `shadow` (boolean, default false) - Enable drop shadow
|
|
- `shadowBlur` (number 1-200, default 15) - Drop shadow blur radius
|
|
- `shadowOffsetX` (number -50 to 50, default 0) - Shadow horizontal offset
|
|
- `shadowOffsetY` (number -50 to 50, default 5) - Shadow vertical offset
|
|
- `shadowColor` (hex string, default "#000000") - Drop shadow color
|
|
- `shadowOpacity` (number 0-100, default 40) - Shadow opacity percentage
|
|
responses:
|
|
'200':
|
|
description: Processed image
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/image/beautify:
|
|
post:
|
|
operationId: beautifyScreenshot
|
|
tags:
|
|
- Tools
|
|
summary: स्क्रीनशॉट सुशोभित करें
|
|
description: |
|
|
स्क्रीनशॉट में ग्रेडिएंट बैकग्राउंड, डिवाइस फ़्रेम, छायाएं, वॉटरमार्क, और सोशल
|
|
मीडिया साइज़िंग जोड़ें। solid, linear-gradient, radial-gradient,
|
|
image, और transparent बैकग्राउंड का समर्थन करता है। macOS, Windows, browser, iPhone,
|
|
MacBook, और iPad डिवाइस फ़्रेम शामिल हैं। Twitter, LinkedIn,
|
|
Instagram, Facebook, और Product Hunt के लिए सोशल मीडिया प्रीसेट।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Screenshot or image file to beautify
|
|
backgroundImage:
|
|
type: string
|
|
format: binary
|
|
description: Optional image for image backgrounds (used when backgroundType is "image")
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `backgroundType` (string, default "linear-gradient") -- One of: solid, linear-gradient, radial-gradient, image, transparent
|
|
- `backgroundColor` (hex string, default "#667eea") -- Background color (for solid backgrounds)
|
|
- `gradientStops` (array, default [{color:"#667eea",position:0},{color:"#764ba2",position:100}]) -- Array of {color, position} objects for gradient backgrounds
|
|
- `gradientAngle` (number 0-360, default 135) -- Gradient angle in degrees
|
|
- `padding` (number 0-256, default 64) -- Space between screenshot and canvas edge in pixels
|
|
- `borderRadius` (number 0-64, default 12) -- Corner rounding radius for the screenshot
|
|
- `shadowPreset` (string, default "subtle") -- One of: none, subtle, medium, dramatic, custom
|
|
- `shadowBlur` (number 0-100, default 20) -- Shadow blur radius (used with custom shadow preset)
|
|
- `shadowOffsetX` (number -50 to 50, default 0) -- Shadow horizontal offset
|
|
- `shadowOffsetY` (number -50 to 50, default 10) -- Shadow vertical offset
|
|
- `shadowColor` (hex string, default "#000000") -- Shadow color
|
|
- `shadowOpacity` (number 0-100, default 30) -- Shadow opacity percentage
|
|
- `frame` (string, default "none") -- One of: none, macos-light, macos-dark, windows-light, windows-dark, browser-light, browser-dark, iphone, iphone-dark, macbook, macbook-dark, ipad, ipad-dark
|
|
- `frameTitle` (string, optional) -- Title text shown in window title bars
|
|
- `socialPreset` (string, default "none") -- One of: none, twitter, linkedin, instagram-square, instagram-story, facebook, producthunt
|
|
- `watermarkText` (string, optional) -- Watermark text to overlay
|
|
- `watermarkPosition` (string, default "bottom-right") -- One of: top-left, top-right, bottom-left, bottom-right, center
|
|
- `watermarkOpacity` (number 0-100, default 50) -- Watermark opacity percentage
|
|
- `outputFormat` (string, default "png") -- One of: png, jpeg, webp
|
|
responses:
|
|
'200':
|
|
description: Beautified image
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/image/adjust-colors:
|
|
post:
|
|
operationId: adjustColors
|
|
tags:
|
|
- Tools
|
|
summary: रंग समायोजन
|
|
description: |
|
|
समेकित रंग समायोजन tool। एक ही पास में चमक, कंट्रास्ट, एक्सपोज़र, संतृप्ति, तापमान, टिंट, ह्यू, तीक्ष्णता, रंग चैनल, और प्रभावों को समायोजित करता है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Image file to process
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `brightness` (number -100 to 100, default 0) - Brightness adjustment
|
|
- `contrast` (number -100 to 100, default 0) - Contrast adjustment
|
|
- `exposure` (number -100 to 100, default 0) - Exposure adjustment (gamma)
|
|
- `saturation` (number -100 to 100, default 0) - Color saturation
|
|
- `temperature` (number -100 to 100, default 0) - Color temperature (cool to warm)
|
|
- `tint` (number -100 to 100, default 0) - Tint shift (green to magenta)
|
|
- `hue` (number -180 to 180, default 0) - Hue rotation in degrees
|
|
- `sharpness` (number 0 to 100, default 0) - Sharpness enhancement
|
|
- `red` (number 0-200, default 100) - Red channel multiplier
|
|
- `green` (number 0-200, default 100) - Green channel multiplier
|
|
- `blue` (number 0-200, default 100) - Blue channel multiplier
|
|
- `effect` (string, default "none") - One of: none, grayscale, sepia, invert
|
|
responses:
|
|
'200':
|
|
description: Processed image
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/image/sharpening:
|
|
post:
|
|
operationId: sharpenImage
|
|
tags:
|
|
- Tools
|
|
summary: इमेज शार्पन
|
|
description: वैकल्पिक शोर कमी के साथ adaptive, unsharp mask, या high-pass विधियों का उपयोग करके एक image को तीक्ष्ण करें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Image file to process
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `method` (string, default "adaptive") - One of: adaptive, unsharp-mask, high-pass
|
|
- `sigma` (number 0.5-10, default 1.0) - Gaussian sigma (adaptive)
|
|
- `m1` (number 0-10, default 1.0) - Flat area sharpening (adaptive)
|
|
- `m2` (number 0-20, default 3.0) - Jagged area sharpening (adaptive)
|
|
- `x1` (number 0-10, default 2.0) - Flat/jagged threshold (adaptive)
|
|
- `y2` (number 0-50, default 12) - Maximum brightening (adaptive)
|
|
- `y3` (number 0-50, default 20) - Maximum darkening (adaptive)
|
|
- `amount` (number 0-1000, default 100) - Sharpen amount (unsharp-mask)
|
|
- `radius` (number 0.1-5, default 1.0) - Blur radius (unsharp-mask)
|
|
- `threshold` (number 0-255, default 0) - Luminance threshold (unsharp-mask)
|
|
- `strength` (number 0-100, default 50) - Blend strength (high-pass)
|
|
- `kernelSize` (integer, default 3) - One of: 3, 5 (high-pass)
|
|
- `denoise` (string, default "off") - One of: off, light, medium, strong
|
|
responses:
|
|
'200':
|
|
description: Processed image
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/image/optimize-for-web:
|
|
post:
|
|
operationId: optimizeForWeb
|
|
tags:
|
|
- Tools
|
|
summary: वेब के लिए अनुकूलित करें
|
|
description: आधुनिक formats में बदलकर, गुणवत्ता समायोजित करके, और वैकल्पिक रूप से आकार बदलकर वेब डिलीवरी के लिए एक image को अनुकूलित करें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Image file to process
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `format` (string, default "webp") - One of: webp, jpeg, avif, png, jxl
|
|
- `quality` (number 1-100, default 80) - Output quality
|
|
- `maxWidth` (number, optional) - Maximum width in pixels
|
|
- `maxHeight` (number, optional) - Maximum height in pixels
|
|
- `progressive` (boolean, default true) - Enable progressive encoding
|
|
- `stripMetadata` (boolean, default true) - Remove metadata
|
|
responses:
|
|
'200':
|
|
description: Processed image
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/image/optimize-for-web/preview:
|
|
post:
|
|
operationId: optimizeForWebPreview
|
|
tags:
|
|
- Tools
|
|
summary: वेब के लिए अनुकूलित करें (preview)
|
|
description: |
|
|
लाइव पैरामीटर ट्यूनिंग के लिए हल्का preview endpoint।
|
|
अनुकूलित image binary सीधे लौटाता है (JSON नहीं)। आकार जानकारी
|
|
response headers में होती है। कोई workspace नहीं बनाता या परिणाम स्थायी नहीं करता।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Image file to preview
|
|
settings:
|
|
type: string
|
|
description: Same settings as the main optimize-for-web endpoint
|
|
responses:
|
|
'200':
|
|
description: Optimized image binary
|
|
headers:
|
|
X-Original-Size:
|
|
schema:
|
|
type: string
|
|
description: Original file size in bytes
|
|
X-Processed-Size:
|
|
schema:
|
|
type: string
|
|
description: Processed file size in bytes
|
|
X-Output-Filename:
|
|
schema:
|
|
type: string
|
|
description: Suggested output filename
|
|
content:
|
|
image/*:
|
|
schema:
|
|
type: string
|
|
format: binary
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/image/image-enhancement:
|
|
post:
|
|
operationId: enhanceImage
|
|
tags:
|
|
- Tools
|
|
summary: image संवर्द्धन
|
|
description: |
|
|
AI-संचालित स्वचालित image संवर्द्धन। image का विश्लेषण करता है और चयनित
|
|
दृश्य मोड के आधार पर एक्सपोज़र, कंट्रास्ट, व्हाइट बैलेंस, संतृप्ति, तीक्ष्णता,
|
|
और शोर के लिए सुधार लागू करता है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Image file to process
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `mode` (string, default "auto") - One of: auto, portrait, landscape, low-light, food, document
|
|
- `intensity` (number 0-100, default 50) - Overall enhancement intensity
|
|
- `corrections` (object, optional) - Toggle individual corrections:
|
|
- `exposure` (boolean, default true)
|
|
- `contrast` (boolean, default true)
|
|
- `whiteBalance` (boolean, default true)
|
|
- `saturation` (boolean, default true)
|
|
- `sharpness` (boolean, default true)
|
|
- `denoise` (boolean, default true)
|
|
- `deepEnhance` (boolean, default false) - Use AI noise removal for deeper enhancement (requires noise-removal feature)
|
|
responses:
|
|
'200':
|
|
description: Processed image
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/image/image-enhancement/analyze:
|
|
post:
|
|
operationId: analyzeImageEnhancement
|
|
tags:
|
|
- Tools
|
|
summary: संवर्द्धन के लिए image विश्लेषण करें
|
|
description: |
|
|
एक image का विश्लेषण करें और सुझाए गए सुधार लागू किए बिना लौटाएं।
|
|
यह पूर्वावलोकन के लिए उपयोगी है कि कौन से संवर्द्धन किए जाएंगे।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Image file to analyze
|
|
responses:
|
|
'200':
|
|
description: Image analysis with suggested corrections
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
corrections:
|
|
type: object
|
|
description: Suggested correction values
|
|
metrics:
|
|
type: object
|
|
description: Image quality metrics
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'422':
|
|
description: Analysis failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/image/noise-removal:
|
|
post:
|
|
operationId: removeNoise
|
|
tags:
|
|
- Tools
|
|
summary: शोर हटाना
|
|
description: |
|
|
Python sidecar का उपयोग करके AI-संचालित शोर हटाना। त्वरित preview से
|
|
अधिकतम गुणवत्ता तक कई गुणवत्ता स्तरों का समर्थन करता है। इसके लिए
|
|
noise-removal feature bundle इंस्टॉल होना आवश्यक है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Image file to process
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `tier` (string, default "balanced") - One of: quick, balanced, quality, maximum
|
|
- `strength` (number, default 50) - Denoising strength
|
|
- `detailPreservation` (number, default 50) - Detail preservation level
|
|
- `colorNoise` (number, default 30) - Color noise reduction
|
|
- `format` (string, default "original") - One of: original, png, jpeg, webp, avif, jxl
|
|
- `quality` (number, default 90) - Output quality (1-100)
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'202':
|
|
description: Accepted for async processing. Track progress via SSE at /api/v1/jobs/{jobId}/progress.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
jobId:
|
|
type: string
|
|
async:
|
|
type: boolean
|
|
example: true
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'501':
|
|
description: Feature not installed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/FeatureNotInstalledError'
|
|
/api/v1/tools/image/red-eye-removal:
|
|
post:
|
|
operationId: removeRedEye
|
|
tags:
|
|
- Tools
|
|
summary: रेड-आई हटाना
|
|
description: |
|
|
AI-संचालित रेड-आई डिटेक्शन और हटाना। चेहरों का पता लगाता है और तस्वीरों में
|
|
रेड-आई आर्टिफ़ैक्ट्स को ठीक करता है। इसके लिए red-eye-removal feature
|
|
bundle इंस्टॉल होना आवश्यक है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Image file to process
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `sensitivity` (number 0-100, default 50) - Detection sensitivity
|
|
- `strength` (number 0-100, default 70) - Correction strength
|
|
- `format` (string, optional) - Output format
|
|
- `quality` (number 1-100, default 90) - Output quality
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'202':
|
|
description: Accepted for async processing. Track progress via SSE at /api/v1/jobs/{jobId}/progress.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
jobId:
|
|
type: string
|
|
async:
|
|
type: boolean
|
|
example: true
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'501':
|
|
description: Feature not installed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/FeatureNotInstalledError'
|
|
/api/v1/tools/image/restore-photo:
|
|
post:
|
|
operationId: restorePhoto
|
|
tags:
|
|
- Tools
|
|
summary: फ़ोटो पुनर्स्थापना
|
|
description: |
|
|
AI-संचालित फ़ोटो पुनर्स्थापना pipeline। खरोंचों की मरम्मत करता है, चेहरों को बेहतर बनाता है,
|
|
शोर कम करता है, और वैकल्पिक रूप से पुरानी या क्षतिग्रस्त तस्वीरों को रंगीन करता है। इसके लिए
|
|
photo-restoration feature bundle इंस्टॉल होना आवश्यक है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Image file to process
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `scratchRemoval` (boolean, default true) - Enable scratch repair
|
|
- `faceEnhancement` (boolean, default true) - Enhance detected faces
|
|
- `fidelity` (number 0-1, default 0.7) - Face enhancement fidelity
|
|
- `denoise` (boolean, default true) - Enable denoising
|
|
- `denoiseStrength` (number 0-100, default 25) - Denoising strength
|
|
- `colorize` (boolean, default false) - Colorize grayscale photos
|
|
- `colorizeStrength` (number 0-100, default 85) - Colorization strength
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'202':
|
|
description: Accepted for async processing. Track progress via SSE at /api/v1/jobs/{jobId}/progress.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
jobId:
|
|
type: string
|
|
async:
|
|
type: boolean
|
|
example: true
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'501':
|
|
description: Feature not installed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/FeatureNotInstalledError'
|
|
/api/v1/tools/image/passport-photo/analyze:
|
|
post:
|
|
operationId: analyzePassportPhoto
|
|
tags:
|
|
- Tools
|
|
summary: पासपोर्ट फ़ोटो - विश्लेषण
|
|
description: |
|
|
पासपोर्ट फ़ोटो जनरेशन का चरण 1। चेहरे के लैंडमार्क का पता लगाता है और
|
|
बैकग्राउंड हटाता है। generate चरण में उपयोग के लिए client को लैंडमार्क डेटा और
|
|
एक base64-एन्कोडेड preview लौटाता है। इसके लिए passport-photo
|
|
feature bundle इंस्टॉल होना आवश्यक है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Photo with a clear, front-facing face
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'200':
|
|
description: Face analysis and background removal result
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
jobId:
|
|
type: string
|
|
description: Job ID to pass to the generate endpoint
|
|
filename:
|
|
type: string
|
|
preview:
|
|
type: string
|
|
description: Base64-encoded PNG preview of the background-removed image
|
|
previewWidth:
|
|
type: integer
|
|
previewHeight:
|
|
type: integer
|
|
landmarks:
|
|
type: object
|
|
description: Normalized face landmark coordinates (0-1)
|
|
properties:
|
|
leftEye:
|
|
type: object
|
|
properties:
|
|
x:
|
|
type: number
|
|
'y':
|
|
type: number
|
|
rightEye:
|
|
type: object
|
|
properties:
|
|
x:
|
|
type: number
|
|
'y':
|
|
type: number
|
|
eyeCenter:
|
|
type: object
|
|
properties:
|
|
x:
|
|
type: number
|
|
'y':
|
|
type: number
|
|
chin:
|
|
type: object
|
|
properties:
|
|
x:
|
|
type: number
|
|
'y':
|
|
type: number
|
|
forehead:
|
|
type: object
|
|
properties:
|
|
x:
|
|
type: number
|
|
'y':
|
|
type: number
|
|
crown:
|
|
type: object
|
|
properties:
|
|
x:
|
|
type: number
|
|
'y':
|
|
type: number
|
|
nose:
|
|
type: object
|
|
properties:
|
|
x:
|
|
type: number
|
|
'y':
|
|
type: number
|
|
faceCenterX:
|
|
type: number
|
|
imageWidth:
|
|
type: integer
|
|
imageHeight:
|
|
type: integer
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: No face detected or analysis failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'501':
|
|
description: Feature not installed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/FeatureNotInstalledError'
|
|
/api/v1/tools/image/passport-photo/generate:
|
|
post:
|
|
operationId: generatePassportPhoto
|
|
tags:
|
|
- Tools
|
|
summary: पासपोर्ट फ़ोटो - जनरेट करें
|
|
description: |
|
|
पासपोर्ट फ़ोटो जनरेशन का चरण 2। फ़ोटो को निर्दिष्ट
|
|
देश/दस्तावेज़ विनिर्देश के अनुसार क्रॉप, आकार बदलने, और टाइल करने के लिए analyze चरण से jobId और लैंडमार्क का उपयोग करता है। तेज़ response (कोई AI पुन: रन नहीं)।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- jobId
|
|
- filename
|
|
- countryCode
|
|
- landmarks
|
|
- imageWidth
|
|
- imageHeight
|
|
properties:
|
|
jobId:
|
|
type: string
|
|
description: Job ID from the analyze phase
|
|
filename:
|
|
type: string
|
|
description: Original filename from analyze phase
|
|
countryCode:
|
|
type: string
|
|
description: ISO country code for passport specification
|
|
documentType:
|
|
type: string
|
|
default: passport
|
|
description: Document type (passport, visa, etc.)
|
|
bgColor:
|
|
type: string
|
|
default: '#FFFFFF'
|
|
description: Background color (hex)
|
|
printLayout:
|
|
type: string
|
|
default: none
|
|
description: Print sheet layout (none, 4x6, A4, letter)
|
|
maxFileSizeKb:
|
|
type: number
|
|
default: 0
|
|
description: Max file size in KB (0 = no limit)
|
|
dpi:
|
|
type: number
|
|
minimum: 72
|
|
maximum: 1200
|
|
default: 300
|
|
description: Output DPI
|
|
customWidthMm:
|
|
type: number
|
|
description: Custom photo width in mm (overrides country spec)
|
|
customHeightMm:
|
|
type: number
|
|
description: Custom photo height in mm (overrides country spec)
|
|
zoom:
|
|
type: number
|
|
minimum: 0.5
|
|
maximum: 3
|
|
default: 1
|
|
description: Zoom level (>1 = tighter crop)
|
|
adjustX:
|
|
type: number
|
|
default: 0
|
|
description: Horizontal position adjustment
|
|
adjustY:
|
|
type: number
|
|
default: 0
|
|
description: Vertical position adjustment
|
|
landmarks:
|
|
type: object
|
|
description: Face landmarks from analyze phase
|
|
imageWidth:
|
|
type: integer
|
|
description: Original image width from analyze phase
|
|
imageHeight:
|
|
type: integer
|
|
description: Original image height from analyze phase
|
|
responses:
|
|
'200':
|
|
description: Generated passport photo
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
jobId:
|
|
type: string
|
|
downloadUrl:
|
|
type: string
|
|
dimensions:
|
|
type: object
|
|
properties:
|
|
widthMm:
|
|
type: number
|
|
heightMm:
|
|
type: number
|
|
widthPx:
|
|
type: integer
|
|
heightPx:
|
|
type: integer
|
|
dpi:
|
|
type: integer
|
|
spec:
|
|
type: object
|
|
properties:
|
|
country:
|
|
type: string
|
|
countryCode:
|
|
type: string
|
|
documentType:
|
|
type: string
|
|
documentLabel:
|
|
type: string
|
|
printDownloadUrl:
|
|
type: string
|
|
description: URL for print sheet download (if printLayout was specified)
|
|
'400':
|
|
description: Invalid settings or unknown country code
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Generation failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/image/colorize:
|
|
post:
|
|
operationId: colorizeImage
|
|
tags:
|
|
- Tools
|
|
summary: रंगीन करें
|
|
description: |
|
|
AI-संचालित फ़ोटो रंगीनीकरण। OpenCV DNN fallback के साथ DDColor का उपयोग करके
|
|
ब्लैक-एंड-व्हाइट या ग्रेस्केल तस्वीरों को पूर्ण रंग में बदलता है। इसके लिए
|
|
colorize feature bundle इंस्टॉल होना आवश्यक है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Grayscale or B&W image file
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `intensity` (number 0-1, default 1.0) - Colorization intensity
|
|
- `model` (string, default "auto") - One of: auto, ddcolor, opencv
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'202':
|
|
description: Accepted for async processing. Track progress via SSE at /api/v1/jobs/{jobId}/progress.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
jobId:
|
|
type: string
|
|
async:
|
|
type: boolean
|
|
example: true
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'501':
|
|
description: Feature not installed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/FeatureNotInstalledError'
|
|
/api/v1/tools/image/enhance-faces:
|
|
post:
|
|
operationId: enhanceFaces
|
|
tags:
|
|
- Tools
|
|
summary: चेहरा संवर्द्धन
|
|
description: |
|
|
GFPGAN या CodeFormer का उपयोग करके AI-संचालित चेहरा संवर्द्धन। image में चेहरों
|
|
का पता लगाता है और चेहरे के विवरण, त्वचा की बनावट, और स्पष्टता को बेहतर बनाता है।
|
|
इसके लिए enhance-faces feature bundle इंस्टॉल होना आवश्यक है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Image file containing faces
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `model` (string, default "auto") - One of: auto, gfpgan, codeformer
|
|
- `strength` (number 0-1, default 0.8) - Enhancement strength
|
|
- `onlyCenterFace` (boolean, default false) - Only enhance the center face
|
|
- `sensitivity` (number 0-1, default 0.5) - Face detection sensitivity
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'202':
|
|
description: Accepted for async processing. Track progress via SSE at /api/v1/jobs/{jobId}/progress.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
jobId:
|
|
type: string
|
|
async:
|
|
type: boolean
|
|
example: true
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'501':
|
|
description: Feature not installed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/FeatureNotInstalledError'
|
|
/api/v1/tools/image/image-to-base64:
|
|
post:
|
|
operationId: imageToBase64
|
|
tags:
|
|
- Tools
|
|
summary: Image to Base64
|
|
description: |
|
|
एक या अधिक images को data URIs के साथ Base64-एन्कोडेड strings में बदलें।
|
|
वैकल्पिक format रूपांतरण और आकार बदलने का समर्थन करता है। प्रत्येक फ़ाइल के लिए raw
|
|
Base64 string और उपयोग-के-लिए-तैयार data URI दोनों लौटाता है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: array
|
|
items:
|
|
type: string
|
|
format: binary
|
|
description: One or more image files to convert
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `outputFormat` (string, default "original") - One of: original, jpeg, png, webp, avif, jxl
|
|
- `quality` (integer 1-100, default 80) - Output quality for lossy formats
|
|
- `maxWidth` (integer, default 0) - Max width in pixels (0 = no limit)
|
|
- `maxHeight` (integer, default 0) - Max height in pixels (0 = no limit)
|
|
responses:
|
|
'200':
|
|
description: Base64-encoded results
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
results:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
filename:
|
|
type: string
|
|
mimeType:
|
|
type: string
|
|
width:
|
|
type: integer
|
|
height:
|
|
type: integer
|
|
originalSize:
|
|
type: integer
|
|
description: Original file size in bytes
|
|
encodedSize:
|
|
type: integer
|
|
description: Base64 string size in bytes
|
|
overheadPercent:
|
|
type: number
|
|
description: Size overhead of Base64 encoding
|
|
base64:
|
|
type: string
|
|
description: Raw Base64-encoded image data
|
|
dataUri:
|
|
type: string
|
|
description: Complete data URI (data:mime;base64,...)
|
|
errors:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
filename:
|
|
type: string
|
|
error:
|
|
type: string
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/image/watermark-text:
|
|
post:
|
|
operationId: addTextWatermark
|
|
tags:
|
|
- Tools
|
|
summary: टेक्स्ट वॉटरमार्क
|
|
description: एक image में टेक्स्ट वॉटरमार्क जोड़ें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Image file to process
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `text` (string 1-500, required) - Watermark text
|
|
- `fontSize` (number 8-1000, default 48) - Font size in pixels
|
|
- `color` (hex string, default "#000000") - Text color
|
|
- `opacity` (number 0-100, default 50) - Opacity percentage
|
|
- `position` (string, default "center") - One of: center, top-left, top-right, bottom-left, bottom-right, tiled
|
|
- `rotation` (number -360 to 360, default 0) - Text rotation angle
|
|
responses:
|
|
'200':
|
|
description: Processed image
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/image/text-overlay:
|
|
post:
|
|
operationId: addTextOverlay
|
|
tags:
|
|
- Tools
|
|
summary: टेक्स्ट ओवरले
|
|
description: वैकल्पिक बैकग्राउंड बॉक्स के साथ स्टाइल किया गया टेक्स्ट ओवरले जोड़ें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Image file to process
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `text` (string 1-500, required) - Overlay text
|
|
- `fontSize` (number 8-200, default 48) - Font size in pixels
|
|
- `color` (hex string, default "#FFFFFF") - Text color
|
|
- `position` (string, default "bottom") - One of: top, center, bottom
|
|
- `backgroundBox` (boolean, default false) - Show background box behind text
|
|
- `backgroundColor` (hex string, default "#000000") - Background box color
|
|
- `shadow` (boolean, default true) - Add text shadow
|
|
responses:
|
|
'200':
|
|
description: Processed image
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/image/replace-color:
|
|
post:
|
|
operationId: replaceColor
|
|
tags:
|
|
- Tools
|
|
summary: रंग बदलें
|
|
description: एक image में किसी विशिष्ट रंग को अन्य रंग या पारदर्शिता से बदलें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Image file to process
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `sourceColor` (hex string, default "#FF0000") - Color to replace
|
|
- `targetColor` (hex string, default "#00FF00") - Replacement color
|
|
- `makeTransparent` (boolean, default false) - Make matched pixels transparent instead
|
|
- `tolerance` (number 0-255, default 30) - Color matching tolerance
|
|
responses:
|
|
'200':
|
|
description: Processed image
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/image/color-blindness:
|
|
post:
|
|
operationId: simulateColorBlindness
|
|
tags:
|
|
- Tools
|
|
summary: वर्णांधता सिमुलेशन
|
|
description: सिमुलेट करें कि विभिन्न प्रकार की रंग दृष्टि कमी वाले लोगों को एक image कैसी दिखती है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Image file to process
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `simulationType` (enum, default "deuteranomaly") -- Type of color vision deficiency to simulate. One of: protanopia, deuteranopia, tritanopia, protanomaly, deuteranomaly, tritanomaly, achromatopsia, blueConeMonochromacy
|
|
responses:
|
|
'200':
|
|
description: Processed image
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/image/gif-tools:
|
|
post:
|
|
operationId: processGif
|
|
tags:
|
|
- Tools
|
|
summary: GIF tools
|
|
description: एनिमेटेड GIFs का आकार बदलें, अनुकूलित करें, गति समायोजित करें, उलटें, फ़्रेम निकालें, या घुमाएं।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: GIF file to process
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `mode` (string, default "resize") - One of: resize, optimize, speed, reverse, extract, rotate
|
|
- `width` (number 1-16384, optional) - Target width in pixels (resize mode)
|
|
- `height` (number 1-16384, optional) - Target height in pixels (resize mode)
|
|
- `percentage` (number 1-500, optional) - Scale by percentage (resize mode)
|
|
- `colors` (number 2-256, default 256) - Color palette size (optimize mode)
|
|
- `dither` (number 0-1, default 1.0) - Dither amount (optimize mode)
|
|
- `effort` (number 1-10, default 7) - Compression effort (optimize mode)
|
|
- `speedFactor` (number 0.1-10, default 1.0) - Speed multiplier (speed mode)
|
|
- `extractMode` (string, default "single") - One of: single, range, all (extract mode)
|
|
- `frameNumber` (number, default 0) - Frame index to extract (extract/single mode)
|
|
- `frameStart` (number, default 0) - Start frame index (extract/range mode)
|
|
- `frameEnd` (number, optional) - End frame index (extract/range mode)
|
|
- `extractFormat` (string, default "png") - One of: png, webp (extract mode)
|
|
- `angle` (number, optional) - Rotation angle, one of: 90, 180, 270 (rotate mode)
|
|
- `flipH` (boolean, default false) - Flip horizontally (rotate mode)
|
|
- `flipV` (boolean, default false) - Flip vertically (rotate mode)
|
|
- `loop` (number 0-100, default 0) - Loop count, 0 = infinite
|
|
responses:
|
|
'200':
|
|
description: Processed image
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/image/gif-tools/info:
|
|
post:
|
|
operationId: getGifInfo
|
|
tags:
|
|
- Tools
|
|
summary: GIF जानकारी
|
|
description: आयाम, फ़्रेम संख्या, विलंब, और अवधि सहित एक एनिमेटेड GIF के बारे में metadata प्राप्त करें।
|
|
security: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: GIF file to inspect
|
|
responses:
|
|
'200':
|
|
description: GIF metadata
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
width:
|
|
type: integer
|
|
height:
|
|
type: integer
|
|
pages:
|
|
type: integer
|
|
description: Number of frames
|
|
delay:
|
|
type: array
|
|
items:
|
|
type: integer
|
|
description: Per-frame delay in milliseconds
|
|
loop:
|
|
type: integer
|
|
description: Loop count (0 = infinite)
|
|
fileSize:
|
|
type: integer
|
|
duration:
|
|
type: integer
|
|
description: Total duration in milliseconds
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/image/smart-crop:
|
|
post:
|
|
operationId: smartCrop
|
|
tags:
|
|
- Tools
|
|
summary: स्मार्ट क्रॉप
|
|
description: तीन मोड के साथ स्मार्ट क्रॉप - विषय फ़ोकस, चेहरा फ़ोकस, या ऑटो ट्रिम।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Image file to process
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `mode` (string, default "subject") - One of: subject, face, trim, attention (alias for subject), content (alias for trim)
|
|
- `strategy` (string, default "attention") - One of: attention, entropy (subject mode)
|
|
- `width` (integer, optional) - Target width in pixels
|
|
- `height` (integer, optional) - Target height in pixels
|
|
- `padding` (integer 0-50, default 0) - Padding percentage around focus area
|
|
- `facePreset` (string, default "head-shoulders") - One of: closeup, head-shoulders, upper-body, half-body (face mode)
|
|
- `sensitivity` (number 0-1, default 0.5) - Face detection sensitivity (face mode)
|
|
- `threshold` (integer 0-255, default 30) - Trim tolerance (trim mode)
|
|
- `padToSquare` (boolean, default false) - Pad to square after trimming (trim mode)
|
|
- `padColor` (string, default "#ffffff") - Hex color for padding (trim mode)
|
|
- `targetSize` (integer, optional) - Target size for padded output (trim mode)
|
|
- `quality` (integer 1-100, optional) - Output quality
|
|
responses:
|
|
'200':
|
|
description: Processed image
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/image/vectorize:
|
|
post:
|
|
operationId: vectorizeImage
|
|
tags:
|
|
- Tools
|
|
summary: Image to SVG
|
|
description: potrace (B&W) या VTracer (color) का उपयोग करके एक रास्टर image को SVG वेक्टर format में बदलें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Image file to process
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `colorMode` (string, default "bw") - One of: bw, color
|
|
- `threshold` (number 0-255, default 128) - B&W binarization threshold
|
|
- `colorPrecision` (number 1-16, default 6) - Color bits per channel
|
|
- `layerDifference` (number 1-128, default 6) - Color gradient step
|
|
- `filterSpeckle` (number 1-256, default 4) - Noise filter size
|
|
- `pathMode` (string, default "spline") - One of: none, polygon, spline
|
|
- `cornerThreshold` (number 0-180, default 60) - Corner detection angle
|
|
- `invert` (boolean, default false) - Invert colors before tracing
|
|
responses:
|
|
'200':
|
|
description: Processed image (downloadUrl points to .svg file)
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/image/svg-to-raster:
|
|
post:
|
|
operationId: svgToRaster
|
|
tags:
|
|
- Tools
|
|
summary: SVG to raster
|
|
description: कस्टम स्केल और DPI पर एक SVG फ़ाइल को रास्टर image format में बदलें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: SVG file to convert
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `width` (number 1-65536, optional) - Output width in pixels
|
|
- `height` (number 1-65536, optional) - Output height in pixels
|
|
- `dpi` (number 36-2400, default 300) - Render density for SVG rasterization
|
|
- `quality` (number 1-100, default 90) - Output quality for lossy formats
|
|
- `backgroundColor` (hex string, default "#00000000") - Background color
|
|
- `outputFormat` (string, default "png") - One of: png, jpg, webp, avif, tiff, gif, heif, jxl
|
|
responses:
|
|
'200':
|
|
description: Processed image
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/image/svg-to-raster/batch:
|
|
post:
|
|
operationId: svgToRasterBatch
|
|
tags:
|
|
- Tools
|
|
summary: SVG to raster (batch)
|
|
description: कई SVG फ़ाइलों को रास्टर images में बदलें। एक ZIP archive लौटाता है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: array
|
|
items:
|
|
type: string
|
|
format: binary
|
|
description: SVG files to convert
|
|
settings:
|
|
type: string
|
|
description: Same settings as single-file endpoint
|
|
clientJobId:
|
|
type: string
|
|
description: Optional client-generated job ID for progress tracking
|
|
responses:
|
|
'200':
|
|
description: ZIP archive containing processed images
|
|
content:
|
|
application/zip:
|
|
schema:
|
|
type: string
|
|
format: binary
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: All files failed processing
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/image/image-to-pdf:
|
|
post:
|
|
operationId: imageToPdf
|
|
tags:
|
|
- Tools
|
|
summary: Image to PDF
|
|
description: एक या अधिक images को एक PDF दस्तावेज़ में बदलें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: array
|
|
items:
|
|
type: string
|
|
format: binary
|
|
description: One or more image files to include in the PDF
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `pageSize` (string, default "A4") - One of: A4, Letter, A3, A5
|
|
- `orientation` (string, default "portrait") - One of: portrait, landscape
|
|
- `margin` (number 0-500, default 20) - Page margin in points
|
|
- `targetSize` (object, optional) - Target output file size
|
|
- `value` (number, required) - Positive number (decimals allowed)
|
|
- `unit` (string, required) - One of: KB, MB
|
|
Minimum effective target is 50KB. When set, images are compressed as JPEG with quality auto-tuned to meet the target.
|
|
- `collate` (boolean, default true) - When true, all images go into one PDF. When false, each image becomes a separate PDF and the result is a ZIP.
|
|
responses:
|
|
'200':
|
|
description: Generated PDF (downloadUrl points to .pdf file)
|
|
content:
|
|
application/json:
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/components/schemas/ToolResponse'
|
|
- type: object
|
|
properties:
|
|
pages:
|
|
type: integer
|
|
description: Number of images/pages in the PDF
|
|
compression:
|
|
type: object
|
|
description: Present only when targetSize was specified
|
|
properties:
|
|
targetRequested:
|
|
type: integer
|
|
description: Target size in bytes
|
|
targetMet:
|
|
type: boolean
|
|
description: Whether the target was achieved
|
|
jpegQuality:
|
|
type: integer
|
|
description: Final JPEG quality used (10-95)
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/pdf/pdf-to-image:
|
|
post:
|
|
operationId: pdfToImage
|
|
tags:
|
|
- Tools
|
|
summary: PDF to image
|
|
description: PDF पृष्ठों को images में बदलें। अलग-अलग पृष्ठ downloads और सभी पृष्ठों का एक ZIP लौटाता है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: PDF file to convert
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `format` (string, default "png") - Output format: png, jpg, webp, avif, tiff, gif, heic, heif, jxl
|
|
- `dpi` (number 36-2400, default 150) - Resolution in dots per inch
|
|
- `quality` (number 1-100, default 85) - Output quality
|
|
- `colorMode` (string, default "color") - One of: color, grayscale, bw
|
|
- `pages` (string, default "all") - Page selection, e.g. "all", "1-3", "1,3,5"
|
|
responses:
|
|
'200':
|
|
description: Converted pages
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
jobId:
|
|
type: string
|
|
pageCount:
|
|
type: integer
|
|
description: Total pages in the PDF
|
|
selectedPages:
|
|
type: array
|
|
items:
|
|
type: integer
|
|
format:
|
|
type: string
|
|
pages:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
page:
|
|
type: integer
|
|
downloadUrl:
|
|
type: string
|
|
size:
|
|
type: integer
|
|
zipUrl:
|
|
type: string
|
|
description: URL to download all pages as ZIP
|
|
zipSize:
|
|
type: integer
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/pdf/pdf-to-image/info:
|
|
post:
|
|
operationId: getPdfInfo
|
|
tags:
|
|
- Tools
|
|
summary: PDF पृष्ठ संख्या
|
|
description: एक PDF फ़ाइल में पृष्ठों की संख्या प्राप्त करें।
|
|
security: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: PDF file to inspect
|
|
responses:
|
|
'200':
|
|
description: PDF info
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
pageCount:
|
|
type: integer
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/pdf/pdf-to-image/preview:
|
|
post:
|
|
operationId: previewPdfPages
|
|
tags:
|
|
- Tools
|
|
summary: PDF पृष्ठ थंबनेल
|
|
description: एक PDF में प्रत्येक पृष्ठ के लिए थंबनेल preview जनरेट करें (अधिकतम 200 पृष्ठ, JPEG 300px चौड़ा)।
|
|
security: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: PDF file to preview
|
|
responses:
|
|
'200':
|
|
description: Page thumbnails
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
pageCount:
|
|
type: integer
|
|
thumbnails:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
page:
|
|
type: integer
|
|
dataUrl:
|
|
type: string
|
|
description: Base64-encoded JPEG data URL
|
|
width:
|
|
type: integer
|
|
height:
|
|
type: integer
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/image/split:
|
|
post:
|
|
operationId: splitImage
|
|
tags:
|
|
- Tools
|
|
summary: इमेज स्प्लिट
|
|
description: एक image को टाइलों के ग्रिड में विभाजित करें। एक ZIP फ़ाइल लौटाता है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Image file to split
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `columns` (number 1-100, default 3) - Number of columns
|
|
- `rows` (number 1-100, default 3) - Number of rows
|
|
- `tileWidth` (number, min 10, optional) - Fixed tile width in pixels
|
|
- `tileHeight` (number, min 10, optional) - Fixed tile height in pixels
|
|
- `outputFormat` (string, default "original") - One of: original, png, jpg, webp, avif, jxl
|
|
- `quality` (number 1-100, default 90) - Output quality
|
|
responses:
|
|
'200':
|
|
description: ZIP archive with results
|
|
content:
|
|
application/zip:
|
|
schema:
|
|
type: string
|
|
format: binary
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/image/bulk-rename:
|
|
post:
|
|
operationId: bulkRename
|
|
tags:
|
|
- Tools
|
|
summary: बल्क नाम बदलें
|
|
description: एक पैटर्न टेम्पलेट का उपयोग करके कई images का नाम बदलें। {{index}}, {{padded}}, और {{original}} टोकन का समर्थन करता है। एक ZIP फ़ाइल लौटाता है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: array
|
|
items:
|
|
type: string
|
|
format: binary
|
|
description: Multiple image files to rename
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `pattern` (string 1-1000, default "image-{{index}}") - Naming pattern template
|
|
- `startIndex` (number, default 1) - Starting index number
|
|
responses:
|
|
'200':
|
|
description: ZIP archive with results
|
|
content:
|
|
application/zip:
|
|
schema:
|
|
type: string
|
|
format: binary
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/image/favicon:
|
|
post:
|
|
operationId: generateFavicon
|
|
tags:
|
|
- Tools
|
|
summary: Favicon जनरेटर
|
|
description: एक image से एक पूर्ण favicon सेट (16px से 512px PNGs, ICO, और manifest.json) जनरेट करें। एक ZIP फ़ाइल लौटाता है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Image file to use as favicon source
|
|
responses:
|
|
'200':
|
|
description: ZIP archive with results
|
|
content:
|
|
application/zip:
|
|
schema:
|
|
type: string
|
|
format: binary
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/image/watermark-image:
|
|
post:
|
|
operationId: addImageWatermark
|
|
tags:
|
|
- Tools
|
|
summary: image वॉटरमार्क
|
|
description: एक image वॉटरमार्क ओवरले जोड़ें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
- watermark
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Main image file
|
|
watermark:
|
|
type: string
|
|
format: binary
|
|
description: Watermark overlay image
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `position` (string, default "bottom-right") - One of: center, top-left, top-right, bottom-left, bottom-right
|
|
- `opacity` (number 0-100, default 50) - Watermark opacity percentage
|
|
- `scale` (number 1-100, default 25) - Watermark size as percentage of base image
|
|
responses:
|
|
'200':
|
|
description: Processed image
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/image/compose:
|
|
post:
|
|
operationId: composeImages
|
|
tags:
|
|
- Tools
|
|
summary: image कंपोज़िशन
|
|
description: blend modes के साथ एक बेस image पर एक ओवरले image कंपोज़िट करें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
- overlay
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Base image file
|
|
overlay:
|
|
type: string
|
|
format: binary
|
|
description: Overlay image file
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `x` (number, default 0) - Horizontal offset of overlay
|
|
- `y` (number, default 0) - Vertical offset of overlay
|
|
- `opacity` (number 0-100, default 100) - Overlay opacity percentage
|
|
- `blendMode` (string, default "over") - One of: over, multiply, screen, overlay, darken, lighten, hard-light, soft-light, difference, exclusion
|
|
responses:
|
|
'200':
|
|
description: Processed image
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/image/meme-generator:
|
|
post:
|
|
operationId: generateMeme
|
|
tags:
|
|
- Tools
|
|
summary: मीम जनरेटर
|
|
description: |
|
|
टेम्पलेट या कस्टम images का उपयोग करके मीम बनाएं। दो मोड का समर्थन करता है: (1) टेम्पलेट मोड - `templateId` और `textBoxes` के साथ JSON body भेजें। (2) कस्टम image मोड - `file` और `settings` के साथ multipart भेजें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Custom image file (optional if using templateId)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `templateId` (string, optional) - ID of a meme template from /api/v1/meme-templates
|
|
- `textLayout` (string, default "top-bottom") - One of: top-bottom, top-only, bottom-only, center, side-by-side
|
|
- `textBoxes` (array of {id, text}) - Text content for each position
|
|
- `fontFamily` (string, default "anton") - One of: anton, arial-black, comic-sans, montserrat, bebas-neue, permanent-marker, roboto
|
|
- `fontSize` (number 8-200, optional) - Font size in pixels
|
|
- `textColor` (hex string, default "#ffffff") - Text color
|
|
- `strokeColor` (hex string, default "#000000") - Text outline color
|
|
- `textAlign` (string, default "center") - One of: left, center, right
|
|
- `allCaps` (boolean, default true) - Convert text to uppercase
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
description: Template mode - send templateId and textBoxes as JSON body
|
|
properties:
|
|
templateId:
|
|
type: string
|
|
description: ID of a meme template
|
|
textBoxes:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
text:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: Processed meme image
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input or template not found
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/meme-templates:
|
|
get:
|
|
operationId: listMemeTemplates
|
|
tags:
|
|
- Tools
|
|
summary: मीम टेम्पलेट सूचीबद्ध करें
|
|
description: टेक्स्ट बॉक्स स्थितियों सहित उपलब्ध मीम टेम्पलेट का पूर्ण manifest लौटाता है।
|
|
security:
|
|
- bearerAuth: []
|
|
responses:
|
|
'200':
|
|
description: Meme template manifest
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
templates:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
filename:
|
|
type: string
|
|
width:
|
|
type: integer
|
|
height:
|
|
type: integer
|
|
textBoxes:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
x:
|
|
type: number
|
|
'y':
|
|
type: number
|
|
width:
|
|
type: number
|
|
height:
|
|
type: number
|
|
defaultText:
|
|
type: string
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/meme-templates/full/{filename}:
|
|
get:
|
|
operationId: getMemeTemplateImage
|
|
tags:
|
|
- Tools
|
|
summary: मीम टेम्पलेट image प्राप्त करें
|
|
description: एक पूर्ण-आकार मीम टेम्पलेट image सर्व करें।
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: filename
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: Template image filename
|
|
responses:
|
|
'200':
|
|
description: Template image
|
|
content:
|
|
image/*:
|
|
schema:
|
|
type: string
|
|
format: binary
|
|
'400':
|
|
description: Invalid filename
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'404':
|
|
description: Template not found
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/meme-templates/thumbs/{filename}:
|
|
get:
|
|
operationId: getMemeTemplateThumbnail
|
|
tags:
|
|
- Tools
|
|
summary: मीम टेम्पलेट थंबनेल प्राप्त करें
|
|
description: एक मीम टेम्पलेट का थंबनेल सर्व करें।
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: filename
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: Template thumbnail filename
|
|
responses:
|
|
'200':
|
|
description: Thumbnail image
|
|
content:
|
|
image/*:
|
|
schema:
|
|
type: string
|
|
format: binary
|
|
'400':
|
|
description: Invalid filename
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'404':
|
|
description: Thumbnail not found
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/meme-templates/fonts/{filename}:
|
|
get:
|
|
operationId: getMemeTemplateFont
|
|
tags:
|
|
- Tools
|
|
summary: मीम टेम्पलेट फ़ॉन्ट प्राप्त करें
|
|
description: मीम जनरेटर द्वारा उपयोग की जाने वाली एक फ़ॉन्ट फ़ाइल सर्व करें।
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: filename
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: Font filename (e.g. anton.ttf)
|
|
responses:
|
|
'200':
|
|
description: Font file
|
|
content:
|
|
font/ttf:
|
|
schema:
|
|
type: string
|
|
format: binary
|
|
'400':
|
|
description: Invalid filename
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'404':
|
|
description: Font not found
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/image/compare:
|
|
post:
|
|
operationId: compareImages
|
|
tags:
|
|
- Tools
|
|
summary: image तुलना
|
|
description: दो images की तुलना करें और एक विज़ुअल अंतर रिपोर्ट जनरेट करें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file1
|
|
- file2
|
|
properties:
|
|
file1:
|
|
type: string
|
|
format: binary
|
|
description: First image to compare
|
|
file2:
|
|
type: string
|
|
format: binary
|
|
description: Second image to compare
|
|
responses:
|
|
'200':
|
|
description: Comparison result
|
|
content:
|
|
application/json:
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/components/schemas/ToolResponse'
|
|
- type: object
|
|
properties:
|
|
similarity:
|
|
type: number
|
|
description: Similarity percentage (0-100)
|
|
dimensions:
|
|
type: object
|
|
properties:
|
|
width:
|
|
type: integer
|
|
height:
|
|
type: integer
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/image/erase-object:
|
|
post:
|
|
operationId: eraseObject
|
|
tags:
|
|
- Tools
|
|
summary: ऑब्जेक्ट इरेज़र
|
|
description: एक mask का उपयोग करके एक image से ऑब्जेक्ट मिटाएं। mask में सफेद क्षेत्र मिटाने वाले क्षेत्रों को इंगित करते हैं। LaMa inpainting का उपयोग करता है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- image
|
|
- mask
|
|
properties:
|
|
image:
|
|
type: string
|
|
format: binary
|
|
description: Source image file
|
|
mask:
|
|
type: string
|
|
format: binary
|
|
description: Mask image (white areas will be erased)
|
|
format:
|
|
type: string
|
|
enum:
|
|
- auto
|
|
- png
|
|
- jpg
|
|
- jpeg
|
|
- webp
|
|
- tiff
|
|
- gif
|
|
- avif
|
|
- heic
|
|
- heif
|
|
- jxl
|
|
default: auto
|
|
description: Output format
|
|
quality:
|
|
type: integer
|
|
minimum: 1
|
|
maximum: 100
|
|
default: 95
|
|
description: Output quality
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'202':
|
|
description: Accepted for async processing. Track progress via SSE at /api/v1/jobs/{jobId}/progress.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
jobId:
|
|
type: string
|
|
async:
|
|
type: boolean
|
|
example: true
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'501':
|
|
description: Feature not installed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/FeatureNotInstalledError'
|
|
/api/v1/tools/image/ai-canvas-expand:
|
|
post:
|
|
operationId: aiCanvasExpand
|
|
tags:
|
|
- Tools
|
|
summary: AI कैनवास विस्तार (प्रायोगिक)
|
|
description: |
|
|
AI outpainting का उपयोग करके एक image कैनवास का विस्तार करें। मूल के साथ
|
|
सहजता से मिश्रित होने वाली नई सामग्री जनरेट करके किसी भी दिशा में image का
|
|
विस्तार करता है। LaMa-आधारित outpainting का उपयोग करता है। इसके लिए ai-canvas-expand
|
|
feature bundle इंस्टॉल होना आवश्यक है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Image file to expand
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `extendTop` (integer >= 0, default 0) - Pixels to extend upward
|
|
- `extendRight` (integer >= 0, default 0) - Pixels to extend rightward
|
|
- `extendBottom` (integer >= 0, default 0) - Pixels to extend downward
|
|
- `extendLeft` (integer >= 0, default 0) - Pixels to extend leftward
|
|
- `tier` (string, default "balanced") - One of: fast, balanced, high
|
|
- `format` (string, default "auto") - One of: auto, png, jpg, jpeg, webp, tiff, gif, avif, heic, heif, jxl
|
|
- `quality` (integer 1-100, default 95) - Output quality
|
|
|
|
At least one extend direction must be greater than 0.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'202':
|
|
description: Accepted for async processing. Track progress via SSE at /api/v1/jobs/{jobId}/progress.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
jobId:
|
|
type: string
|
|
async:
|
|
type: boolean
|
|
example: true
|
|
'400':
|
|
description: Invalid input (or no extend direction > 0)
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'501':
|
|
description: Feature not installed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/FeatureNotInstalledError'
|
|
/api/v1/tools/image/collage:
|
|
post:
|
|
operationId: createCollage
|
|
tags:
|
|
- Tools
|
|
summary: कोलाज और ग्रिड
|
|
description: कई images को एक ग्रिड कोलाज में संयोजित करें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: array
|
|
items:
|
|
type: string
|
|
format: binary
|
|
description: Multiple image files to combine
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `templateId` (string, required) - Template ID defining the grid layout
|
|
- `cells` (array, optional) - Per-cell configuration overrides
|
|
- `gap` (number 0-500, default 8) - Gap between images in pixels
|
|
- `cornerRadius` (number 0-500, default 0) - Corner rounding radius
|
|
- `backgroundColor` (string, default "#FFFFFF") - Background fill color
|
|
- `aspectRatio` (string, default "free") - Aspect ratio constraint
|
|
- `outputFormat` (string, default "png") - One of: png, jpeg, webp, avif, jxl
|
|
- `quality` (number 1-100, default 90) - Output quality
|
|
responses:
|
|
'200':
|
|
description: Processed image
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/image/stitch:
|
|
post:
|
|
operationId: stitchImages
|
|
tags:
|
|
- Tools
|
|
summary: इमेज जोड़ें
|
|
description: कई images को क्षैतिज, लंबवत, या ग्रिड लेआउट में जोड़ें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: array
|
|
items:
|
|
type: string
|
|
format: binary
|
|
description: Two or more image files to stitch together
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `direction` (string, default "horizontal") - One of: horizontal, vertical, grid
|
|
- `gridColumns` (integer 2-100, default 2) - Columns when direction is grid
|
|
- `resizeMode` (string, default "fit") - One of: fit, original, stretch, crop
|
|
- `alignment` (string, default "center") - One of: start, center, end
|
|
- `gap` (number 0-1000, default 0) - Gap between images in pixels
|
|
- `border` (number 0-500, default 0) - Border width in pixels
|
|
- `cornerRadius` (number 0-500, default 0) - Corner radius in pixels
|
|
- `backgroundColor` (hex string, default "#FFFFFF") - Hex color for background and gap fill
|
|
- `format` (string, default "png") - One of: png, jpeg, webp, avif, jxl
|
|
- `quality` (number 1-100, default 90) - Output quality
|
|
responses:
|
|
'200':
|
|
description: Stitched image
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/image/remove-gif-background:
|
|
post:
|
|
operationId: removeGifBackground
|
|
tags:
|
|
- Tools
|
|
summary: किसी एनिमेटेड छवि से पृष्ठभूमि हटाएँ
|
|
description: AI (rembg) का उपयोग करके एनिमेटेड GIF, WebP, या APNG फ्रेम से पृष्ठभूमि हटाएं। स्थानीय स्तर पर चलता है.
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Animated image file (GIF, animated WebP, or APNG)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `model` (string, optional) - AI model name
|
|
- `outputFormat` (string, optional) - One of: webp, apng, gif
|
|
- `backgroundType` (string, optional) - One of: transparent, color, gradient, blur, image
|
|
- `backgroundColor` (string, optional) - Hex color for the color background
|
|
- `gradientColor1` (string, optional) - First gradient color
|
|
- `gradientColor2` (string, optional) - Second gradient color
|
|
- `gradientAngle` (number, optional) - Gradient angle in degrees
|
|
- `blurIntensity` (number 0-100, optional) - Blur strength for the blur background
|
|
- `shadowEnabled` (boolean, optional) - Enable drop shadow
|
|
- `shadowOpacity` (number 0-100, optional) - Shadow opacity
|
|
- `edgeRefine` (number 0-3, optional) - Edge refinement level
|
|
- `decontaminate` (boolean, optional) - Remove background color spill
|
|
backgroundImage:
|
|
type: string
|
|
format: binary
|
|
description: Background image, required when backgroundType is "image"
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'202':
|
|
description: Accepted for async processing. Track progress via SSE at /api/v1/jobs/{jobId}/progress.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
jobId:
|
|
type: string
|
|
async:
|
|
type: boolean
|
|
example: true
|
|
'400':
|
|
description: Invalid input (not animated, over the frame cap, or bad settings)
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'501':
|
|
description: Feature not installed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/FeatureNotInstalledError'
|
|
/api/v1/tools/image/remove-background:
|
|
post:
|
|
operationId: removeBackground
|
|
tags:
|
|
- Tools
|
|
summary: बैकग्राउंड हटाएं
|
|
description: AI (rembg) का उपयोग करके एक image से बैकग्राउंड हटाएं। स्थानीय रूप से चलता है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Image file to process
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `model` (string, optional) - AI model name
|
|
- `backgroundType` (string, optional) - One of: transparent, color, gradient, blur, image
|
|
- `backgroundColor` (string, optional) - Hex color to replace removed background with
|
|
- `gradientColor1` (string, optional) - First gradient color
|
|
- `gradientColor2` (string, optional) - Second gradient color
|
|
- `gradientAngle` (number, optional) - Gradient angle in degrees
|
|
- `blurEnabled` (boolean, optional) - Enable background blur effect
|
|
- `blurIntensity` (number 0-100, optional) - Blur strength
|
|
- `shadowEnabled` (boolean, optional) - Enable drop shadow
|
|
- `shadowOpacity` (number 0-100, optional) - Shadow opacity
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'202':
|
|
description: Accepted for async processing. Track progress via SSE at /api/v1/jobs/{jobId}/progress.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
jobId:
|
|
type: string
|
|
async:
|
|
type: boolean
|
|
example: true
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'501':
|
|
description: Feature not installed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/FeatureNotInstalledError'
|
|
/api/v1/tools/image/remove-background/effects:
|
|
post:
|
|
operationId: applyBackgroundEffects
|
|
tags:
|
|
- Tools
|
|
summary: बैकग्राउंड प्रभाव लागू करें
|
|
description: |
|
|
पहले से प्रोसेस किए गए remove-background परिणाम पर बैकग्राउंड प्रतिस्थापन या प्रभाव लागू करें। इसके लिए पूर्व POST /api/v1/tools/image/remove-background कॉल से एक jobId आवश्यक है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- settings
|
|
properties:
|
|
backgroundImage:
|
|
type: string
|
|
format: binary
|
|
description: Custom background image (required when backgroundType is "image")
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `jobId` (string, required) - Job ID from the initial remove-background call
|
|
- `filename` (string, required) - Original filename
|
|
- `backgroundType` (string) - One of: transparent, color, gradient, blur, image
|
|
- `backgroundColor` (string) - Hex color for solid background
|
|
- `gradientColor1` (string) - First gradient color
|
|
- `gradientColor2` (string) - Second gradient color
|
|
- `gradientAngle` (number) - Gradient angle in degrees
|
|
- `blurEnabled` (boolean) - Enable background blur effect
|
|
- `blurIntensity` (number 0-100) - Blur strength
|
|
- `shadowEnabled` (boolean) - Enable drop shadow
|
|
- `shadowOpacity` (number 0-100) - Shadow opacity
|
|
responses:
|
|
'200':
|
|
description: Image with applied effects
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
jobId:
|
|
type: string
|
|
downloadUrl:
|
|
type: string
|
|
processedSize:
|
|
type: integer
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/image/transparency-fixer:
|
|
post:
|
|
operationId: fixTransparency
|
|
tags:
|
|
- Tools
|
|
summary: नकली पारदर्शिता ठीक करें
|
|
description: |
|
|
"नकली पारदर्शी" PNGs को ठीक करें जिनमें पिछले बैकग्राउंड हटाने से फ़्रिंजिंग, हेलो, या
|
|
अर्ध-पारदर्शी आर्टिफ़ैक्ट होते हैं। कॉन्फ़िगर करने योग्य डिफ़्रिंज
|
|
प्रोसेसिंग के साथ एक स्वच्छ alpha channel बनाने के लिए BiRefNet HR-matting
|
|
(2048x2048) का उपयोग करता है। OOM पर birefnet-general, फिर u2net पर fallback करता है। इसके लिए
|
|
background-removal feature bundle इंस्टॉल होना आवश्यक है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: PNG image with fake or damaged transparency
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `defringe` (number 0-100, default 30) - Edge defringe strength to remove color contamination
|
|
- `outputFormat` (string, default "png") - One of: png, webp
|
|
- `removeWatermark` (boolean, default false) - Apply median filter to reduce watermark artifacts before matting
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'202':
|
|
description: Accepted for async processing. Track progress via SSE at /api/v1/jobs/{jobId}/progress.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
jobId:
|
|
type: string
|
|
async:
|
|
type: boolean
|
|
example: true
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'501':
|
|
description: Feature not installed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/FeatureNotInstalledError'
|
|
/api/v1/tools/image/upscale:
|
|
post:
|
|
operationId: upscaleImage
|
|
tags:
|
|
- Tools
|
|
summary: image अपस्केलिंग
|
|
description: AI (Real-ESRGAN) का उपयोग करके एक image को अपस्केल करें। स्थानीय रूप से चलता है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Image file to upscale
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `scale` (number, default 2) - Upscale factor
|
|
- `model` (string, default "auto") - AI model name
|
|
- `faceEnhance` (boolean, default false) - Enable face enhancement
|
|
- `denoise` (number, default 0) - Denoise strength
|
|
- `format` (string, default "auto") - Output format (auto, png, jpg, jpeg, webp, tiff, gif, avif, heic, heif, jxl)
|
|
- `quality` (number, default 95) - Output quality (1-100)
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'202':
|
|
description: Accepted for async processing. Track progress via SSE at /api/v1/jobs/{jobId}/progress.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
jobId:
|
|
type: string
|
|
async:
|
|
type: boolean
|
|
example: true
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'501':
|
|
description: Feature not installed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/FeatureNotInstalledError'
|
|
/api/v1/tools/image/blur-faces:
|
|
post:
|
|
operationId: blurFaces
|
|
tags:
|
|
- Tools
|
|
summary: चेहरे और संवेदनशील जानकारी ब्लर करें
|
|
description: गोपनीयता के लिए एक image में चेहरों का पता लगाएं और धुंधला करें। OpenCV का उपयोग करता है। स्थानीय रूप से चलता है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Image file to process
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `blurRadius` (number 1-100, default 30) - Blur strength radius
|
|
- `sensitivity` (number 0-1, default 0.5) - Face detection sensitivity
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'202':
|
|
description: Accepted for async processing. Track progress via SSE at /api/v1/jobs/{jobId}/progress.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
jobId:
|
|
type: string
|
|
async:
|
|
type: boolean
|
|
example: true
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'501':
|
|
description: Feature not installed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/FeatureNotInstalledError'
|
|
/api/v1/tools/image/ocr:
|
|
post:
|
|
operationId: extractText
|
|
tags:
|
|
- Tools
|
|
summary: OCR / टेक्स्ट निष्कर्षण
|
|
description: |-
|
|
किसी छवि से स्थानीय रूप से टेक्स्ट निकालें. अंतर्निर्मितFastस्तरीय उपयोगTesseract.BalancedऔरBestवैकल्पिक हस्ताक्षरित का उपयोग करेंRapidOCRरनटाइम
|
|
पिन के साथPP-OCRओएनएनएक्स मॉडल। स्पष्ट स्तर के अनुरोध कभी भी चुपचाप नहीं होते
|
|
दूसरे स्तर पर डाउनग्रेड करें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
maxLength: 536870912
|
|
description: Image file to extract text from
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `quality` (string, optional) - One of: fast, balanced, best. When both quality and engine are omitted, uses the best available tier in this order: best, balanced, fast. Korean never selects fast; it uses best, then balanced, or returns an accurate-runtime install/compatibility error
|
|
- `language` (string, default "auto") - One of: auto, en, de, fr, es, zh, ja, ko. Korean is unsupported by fast and the legacy tesseract alias
|
|
- `enhance` (boolean, optional) - Improve local contrast. Fast applies it directly; accurate tiers retain the variant only when calibrated scoring improves the result. Defaults to true for Best and false for Fast/Balanced
|
|
- `engine` (string, deprecated) - Compatibility alias: tesseract maps to fast; the legacy paddleocr value maps to balanced but does not load PaddlePaddle
|
|
clientJobId:
|
|
type: string
|
|
responses:
|
|
'202':
|
|
description: Accepted after validation and enqueueing. Track progress via SSE at /api/v1/jobs/{jobId}/progress; processing failures arrive in the terminal failed event.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- jobId
|
|
- async
|
|
properties:
|
|
jobId:
|
|
type: string
|
|
progressJobId:
|
|
type: string
|
|
artifactJobId:
|
|
type: string
|
|
async:
|
|
type: boolean
|
|
const: true
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'413':
|
|
description: Encoded OCR input exceeds the hard 512 MiB safety limit
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'501':
|
|
description: Requested Balanced/Best runtime is not installed or is incompatible
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/FeatureNotInstalledError'
|
|
'503':
|
|
description: OCR could not be queued
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/image/info:
|
|
post:
|
|
operationId: getImageInfo
|
|
tags:
|
|
- Tools
|
|
summary: image जानकारी
|
|
description: आयाम, format, रंग स्थान, और EXIF डेटा सहित एक image के बारे में विस्तृत metadata प्राप्त करें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Image file to inspect
|
|
responses:
|
|
'200':
|
|
description: Image metadata
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
width:
|
|
type: integer
|
|
height:
|
|
type: integer
|
|
filename:
|
|
type: string
|
|
format:
|
|
type: string
|
|
colorSpace:
|
|
type: string
|
|
channels:
|
|
type: integer
|
|
bitDepth:
|
|
type: string
|
|
density:
|
|
type:
|
|
- integer
|
|
- 'null'
|
|
hasAlpha:
|
|
type: boolean
|
|
fileSize:
|
|
type: integer
|
|
hasExif:
|
|
type: boolean
|
|
isProgressive:
|
|
type: boolean
|
|
orientation:
|
|
type:
|
|
- integer
|
|
- 'null'
|
|
hasProfile:
|
|
type: boolean
|
|
hasIcc:
|
|
type: boolean
|
|
hasXmp:
|
|
type: boolean
|
|
pages:
|
|
type: integer
|
|
histogram:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
channel:
|
|
type: string
|
|
min:
|
|
type: number
|
|
max:
|
|
type: number
|
|
mean:
|
|
type: number
|
|
stdev:
|
|
type: number
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/image/color-palette:
|
|
post:
|
|
operationId: extractColorPalette
|
|
tags:
|
|
- Tools
|
|
summary: रंग पैलेट
|
|
description: एक image से प्रमुख रंग निकालें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Image file to analyze
|
|
responses:
|
|
'200':
|
|
description: Dominant colors
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
filename:
|
|
type: string
|
|
colors:
|
|
type: array
|
|
items:
|
|
type: string
|
|
description: Hex color strings
|
|
count:
|
|
type: integer
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/image/barcode-read:
|
|
post:
|
|
operationId: readBarcode
|
|
tags:
|
|
- Tools
|
|
summary: बारकोड रीडर
|
|
description: एक image से QR codes और बारकोड पढ़ें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Image file containing barcode or QR code
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `tryHarder` (boolean, default true) - Enable more aggressive barcode detection
|
|
responses:
|
|
'200':
|
|
description: Decoded barcode data
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
filename:
|
|
type: string
|
|
barcodes:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
text:
|
|
type: string
|
|
position:
|
|
type: object
|
|
properties:
|
|
topLeft:
|
|
type: object
|
|
properties:
|
|
x:
|
|
type: number
|
|
'y':
|
|
type: number
|
|
topRight:
|
|
type: object
|
|
properties:
|
|
x:
|
|
type: number
|
|
'y':
|
|
type: number
|
|
bottomLeft:
|
|
type: object
|
|
properties:
|
|
x:
|
|
type: number
|
|
'y':
|
|
type: number
|
|
bottomRight:
|
|
type: object
|
|
properties:
|
|
x:
|
|
type: number
|
|
'y':
|
|
type: number
|
|
annotatedUrl:
|
|
type:
|
|
- string
|
|
- 'null'
|
|
previewUrl:
|
|
type:
|
|
- string
|
|
- 'null'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/image/find-duplicates:
|
|
post:
|
|
operationId: findDuplicates
|
|
tags:
|
|
- Tools
|
|
summary: डुप्लिकेट खोजें
|
|
description: perceptual hashing का उपयोग करके एक सेट में डुप्लिकेट images खोजें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: array
|
|
items:
|
|
type: string
|
|
format: binary
|
|
description: Multiple image files to check for duplicates
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `threshold` (number 0-20, default 8) - Hamming distance threshold for duplicate detection
|
|
responses:
|
|
'200':
|
|
description: Duplicate groups
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
totalImages:
|
|
type: integer
|
|
duplicateGroups:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
groupId:
|
|
type: integer
|
|
files:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
filename:
|
|
type: string
|
|
similarity:
|
|
type: number
|
|
width:
|
|
type: integer
|
|
height:
|
|
type: integer
|
|
fileSize:
|
|
type: integer
|
|
format:
|
|
type: string
|
|
isBest:
|
|
type: boolean
|
|
thumbnail:
|
|
type:
|
|
- string
|
|
- 'null'
|
|
uniqueImages:
|
|
type: integer
|
|
spaceSaveable:
|
|
type: integer
|
|
skippedFiles:
|
|
type: array
|
|
description: Files that could not be processed (present only when non-empty)
|
|
items:
|
|
type: object
|
|
properties:
|
|
filename:
|
|
type: string
|
|
reason:
|
|
type: string
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/image/qr-generate:
|
|
post:
|
|
operationId: generateQrCode
|
|
tags:
|
|
- Tools
|
|
summary: QR code जनरेटर
|
|
description: टेक्स्ट से एक QR code image जनरेट करें। यह tool एक JSON body स्वीकार करता है, multipart नहीं।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- text
|
|
properties:
|
|
text:
|
|
type: string
|
|
maxLength: 2000
|
|
description: Text to encode in the QR code
|
|
size:
|
|
type: integer
|
|
minimum: 100
|
|
maximum: 10000
|
|
default: 400
|
|
description: Image size in pixels
|
|
errorCorrection:
|
|
type: string
|
|
enum:
|
|
- L
|
|
- M
|
|
- Q
|
|
- H
|
|
default: M
|
|
foreground:
|
|
type: string
|
|
default: '#000000'
|
|
description: Foreground color (hex)
|
|
background:
|
|
type: string
|
|
default: '#FFFFFF'
|
|
description: Background color (hex)
|
|
responses:
|
|
'200':
|
|
description: Generated QR code
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/image/html-to-image:
|
|
post:
|
|
operationId: captureWebpage
|
|
tags:
|
|
- Tools
|
|
summary: वेबपेज को image के रूप में कैप्चर करें
|
|
description: एक वेबपेज को उच्च-गुणवत्ता स्क्रीनशॉट image के रूप में कैप्चर करें। एक URL और कैप्चर विकल्पों के साथ एक JSON body स्वीकार करता है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- url
|
|
properties:
|
|
url:
|
|
type: string
|
|
format: uri
|
|
description: URL to capture (http/https only)
|
|
format:
|
|
type: string
|
|
enum:
|
|
- jpg
|
|
- png
|
|
- webp
|
|
default: png
|
|
quality:
|
|
type: integer
|
|
minimum: 1
|
|
maximum: 100
|
|
default: 90
|
|
fullPage:
|
|
type: boolean
|
|
default: false
|
|
devicePreset:
|
|
type: string
|
|
enum:
|
|
- desktop
|
|
- tablet
|
|
- mobile
|
|
- custom
|
|
default: desktop
|
|
viewportWidth:
|
|
type: integer
|
|
minimum: 320
|
|
maximum: 3840
|
|
default: 1280
|
|
viewportHeight:
|
|
type: integer
|
|
minimum: 320
|
|
maximum: 2160
|
|
default: 720
|
|
responses:
|
|
'200':
|
|
description: Screenshot captured successfully
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid URL or parameters
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'503':
|
|
description: Browser service unavailable
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'504':
|
|
description: Page load timeout
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/image/strip-metadata/inspect:
|
|
post:
|
|
operationId: inspectMetadata
|
|
tags:
|
|
- Tools
|
|
summary: metadata निरीक्षण करें
|
|
description: एक image में सभी metadata (EXIF, GPS, ICC, XMP) को हटाए बिना देखें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Image file to inspect
|
|
responses:
|
|
'200':
|
|
description: Image metadata
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
filename:
|
|
type: string
|
|
fileSize:
|
|
type: integer
|
|
exif:
|
|
type: object
|
|
description: EXIF metadata
|
|
exifError:
|
|
type: string
|
|
description: Present when EXIF parsing fails
|
|
gps:
|
|
type: object
|
|
description: GPS metadata
|
|
icc:
|
|
type: object
|
|
description: ICC profile metadata
|
|
xmp:
|
|
type: object
|
|
description: XMP metadata
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Failed to read image metadata
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/image/edit-metadata:
|
|
post:
|
|
operationId: editMetadata
|
|
tags:
|
|
- Tools
|
|
summary: इमेज मेटाडेटा संपादित करें
|
|
description: ExifTool का उपयोग करके एक image में EXIF, IPTC, GPS, और अन्य metadata fields संपादित करें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Image file to process
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `title` (string) - Image title
|
|
- `author` (string) - Author name
|
|
- `artist` (string) - Artist or author name
|
|
- `copyright` (string) - Copyright notice
|
|
- `imageDescription` (string) - Image description
|
|
- `software` (string) - Software used
|
|
- `dateTime` (string) - Date/time string
|
|
- `dateTimeOriginal` (string) - Original capture date/time
|
|
- `clearGps` (boolean, default false) - Remove all GPS data
|
|
- `fieldsToRemove` (string[]) - Specific metadata fields to remove
|
|
- `gpsLatitude` (number -90 to 90) - GPS latitude
|
|
- `gpsLongitude` (number -180 to 180) - GPS longitude
|
|
- `gpsAltitude` (number) - GPS altitude in meters
|
|
- `keywords` (string[]) - Keywords or tags
|
|
- `keywordsMode` (string, default "add") - One of: add, set
|
|
- `dateShift` (string) - Shift dates by offset, e.g. "+2:00" or "-1:30"
|
|
- `setAllDates` (string) - Set all date fields to this value
|
|
- `iptcTitle` (string) - IPTC title
|
|
- `iptcHeadline` (string) - IPTC headline
|
|
- `iptcCity` (string) - IPTC city
|
|
- `iptcState` (string) - IPTC state or province
|
|
- `iptcCountry` (string) - IPTC country
|
|
responses:
|
|
'200':
|
|
description: Image with updated metadata
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/image/edit-metadata/inspect:
|
|
post:
|
|
operationId: inspectMetadataExifTool
|
|
tags:
|
|
- Tools
|
|
summary: metadata निरीक्षण करें (ExifTool)
|
|
description: ExifTool का उपयोग करके एक image से सभी metadata पढ़ें। सभी एम्बेडेड EXIF, IPTC, XMP, और GPS fields लौटाता है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Image file to inspect
|
|
responses:
|
|
'200':
|
|
description: Full metadata object (keys vary by image)
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
additionalProperties: true
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Failed to read image metadata
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/{section}/{toolId}/batch:
|
|
post:
|
|
operationId: batchProcess
|
|
tags:
|
|
- Batch
|
|
summary: images बैच प्रोसेस करें
|
|
description: |
|
|
एक ही tool के जरिए कई images भेजें। एक ZIP फ़ाइल लौटाता है। response में प्रगति ट्रैकिंग के लिए एक X-Job-Id header शामिल होता है।
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: section
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: Tool section slug (image, video, audio, pdf, files)
|
|
- name: toolId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: Tool identifier (e.g. resize, crop)
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: array
|
|
items:
|
|
type: string
|
|
format: binary
|
|
description: Image files to process (one or more)
|
|
settings:
|
|
type: string
|
|
description: JSON string of tool settings applied to all images
|
|
responses:
|
|
'200':
|
|
description: ZIP archive of processed images
|
|
headers:
|
|
X-Job-Id:
|
|
schema:
|
|
type: string
|
|
description: Job identifier for progress tracking
|
|
content:
|
|
application/zip:
|
|
schema:
|
|
type: string
|
|
format: binary
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/pipeline/execute:
|
|
post:
|
|
operationId: executePipeline
|
|
tags:
|
|
- Pipelines
|
|
summary: एक pipeline निष्पादित करें
|
|
description: एक image को tools की श्रृंखला के जरिए चलाएं। pipeline परिभाषा `pipeline` multipart field में एक JSON string के रूप में भेजी जाती है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
- pipeline
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Image file to process
|
|
pipeline:
|
|
type: string
|
|
description: 'JSON string: { "steps": [{ "toolId": "resize", "settings": {...} }, ...] }'
|
|
responses:
|
|
'200':
|
|
description: Pipeline result
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
jobId:
|
|
type: string
|
|
downloadUrl:
|
|
type: string
|
|
originalSize:
|
|
type: integer
|
|
processedSize:
|
|
type: integer
|
|
stepsCompleted:
|
|
type: integer
|
|
steps:
|
|
type: array
|
|
items:
|
|
type: object
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'501':
|
|
description: Feature not installed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/FeatureNotInstalledError'
|
|
/api/v1/pipeline/save:
|
|
post:
|
|
operationId: savePipeline
|
|
tags:
|
|
- Pipelines
|
|
summary: एक pipeline सहेजें
|
|
description: 'बाद के निष्पादन के लिए एक नामित pipeline परिभाषा को उसके tool चरणों के साथ स्थायी करें। पुन: प्रयोज्य workflows को सहेजने के लिए इसका उपयोग करें।'
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- name
|
|
- steps
|
|
properties:
|
|
name:
|
|
type: string
|
|
description:
|
|
type: string
|
|
description: Optional human-readable description of the pipeline
|
|
steps:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
toolId:
|
|
type: string
|
|
settings:
|
|
type: object
|
|
responses:
|
|
'201':
|
|
description: Pipeline saved
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
description:
|
|
type: string
|
|
description: Human-readable description of the pipeline
|
|
steps:
|
|
type: array
|
|
items:
|
|
type: object
|
|
createdAt:
|
|
type: string
|
|
format: date-time
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/pipeline/list:
|
|
get:
|
|
operationId: listPipelines
|
|
tags:
|
|
- Pipelines
|
|
summary: सहेजे गए pipelines सूचीबद्ध करें
|
|
description: वर्तमान user के लिए सभी सहेजी गई pipeline परिभाषाएं पुनर्प्राप्त करें। प्रत्येक के लिए नाम, चरण, और निर्माण तिथि लौटाता है।
|
|
security:
|
|
- bearerAuth: []
|
|
responses:
|
|
'200':
|
|
description: List of pipelines
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
pipelines:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
description:
|
|
type: string
|
|
description: Human-readable description of the pipeline
|
|
steps:
|
|
type: array
|
|
items:
|
|
type: object
|
|
createdAt:
|
|
type: string
|
|
format: date-time
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/pipeline/{id}:
|
|
delete:
|
|
operationId: deletePipeline
|
|
tags:
|
|
- Pipelines
|
|
summary: एक pipeline हटाएं
|
|
description: एक सहेजे गए pipeline को उसके ID से स्थायी रूप से हटाएं। केवल pipeline स्वामी या एक admin इसे हटा सकता है।
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
description: Pipeline UUID
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: Pipeline deleted
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
ok:
|
|
type: boolean
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'403':
|
|
description: Not authorized to delete this pipeline
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ForbiddenError'
|
|
'404':
|
|
description: Pipeline not found
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/pipeline/tools:
|
|
get:
|
|
operationId: listPipelineTools
|
|
tags:
|
|
- Pipelines
|
|
summary: pipeline-संगत tools सूचीबद्ध करें
|
|
description: सभी tool IDs लौटाता है जिन्हें pipeline चरणों के रूप में उपयोग किया जा सकता है।
|
|
security: []
|
|
responses:
|
|
'200':
|
|
description: Tool IDs
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
toolIds:
|
|
type: array
|
|
items:
|
|
type: string
|
|
/api/v1/pipeline/batch:
|
|
post:
|
|
operationId: batchPipeline
|
|
tags:
|
|
- Pipelines
|
|
summary: कई फ़ाइलों पर pipeline चलाएं
|
|
description: कई images में एक pipeline निष्पादित करें। सभी प्रोसेस किए गए परिणामों के साथ एक ZIP फ़ाइल लौटाता है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
- pipeline
|
|
properties:
|
|
file:
|
|
type: array
|
|
items:
|
|
type: string
|
|
format: binary
|
|
description: Image files to process
|
|
pipeline:
|
|
type: string
|
|
description: |
|
|
JSON string with pipeline definition:
|
|
- `steps` (array, required, 1-20 items) - Pipeline steps
|
|
- `steps[].toolId` (string, required) - Tool ID for this step
|
|
- `steps[].settings` (object, optional) - Tool-specific settings
|
|
clientJobId:
|
|
type: string
|
|
description: Optional client-provided job ID for progress tracking via SSE
|
|
responses:
|
|
'200':
|
|
description: ZIP file with processed images
|
|
headers:
|
|
X-Job-Id:
|
|
schema:
|
|
type: string
|
|
description: Job ID for progress tracking
|
|
X-File-Results:
|
|
schema:
|
|
type: string
|
|
description: Percent-encoded JSON mapping of input index to output filename (decode with decodeURIComponent before JSON.parse)
|
|
content:
|
|
application/zip:
|
|
schema:
|
|
type: string
|
|
format: binary
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/upload:
|
|
post:
|
|
operationId: uploadImage
|
|
tags:
|
|
- Files
|
|
summary: एक image upload करें
|
|
description: tool endpoints द्वारा बाद की प्रोसेसिंग के लिए एक raw image फ़ाइल upload करें। एक jobId और फ़ाइल metadata लौटाता है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
responses:
|
|
'200':
|
|
description: Upload result
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
jobId:
|
|
type: string
|
|
files:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
size:
|
|
type: integer
|
|
format:
|
|
type: string
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/download/{jobId}/{filename}:
|
|
get:
|
|
operationId: downloadProcessedImage
|
|
tags:
|
|
- Files
|
|
summary: एक प्रोसेस की गई image download करें
|
|
description: एक प्रोसेस की गई image को उसके job ID और filename से download करें। यह tool responses से downloadUrl में लौटाया गया URL है।
|
|
security: []
|
|
parameters:
|
|
- name: jobId
|
|
in: path
|
|
required: true
|
|
description: Job identifier from a tool processing response
|
|
schema:
|
|
type: string
|
|
- name: filename
|
|
in: path
|
|
required: true
|
|
description: Output filename from the processing response
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: Image binary
|
|
content:
|
|
image/*:
|
|
schema:
|
|
type: string
|
|
format: binary
|
|
'404':
|
|
description: File not found
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/preview:
|
|
post:
|
|
operationId: generatePreview
|
|
tags:
|
|
- Files
|
|
summary: image preview जनरेट करें
|
|
description: किसी भी image (HEIC/HEIF सहित) को एक WebP preview में बदलें, जो 1200x1200 पिक्सेल के भीतर फ़िट करने के लिए आकार बदला गया हो।
|
|
security: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Image file to preview
|
|
responses:
|
|
'200':
|
|
description: WebP preview image
|
|
content:
|
|
image/webp:
|
|
schema:
|
|
type: string
|
|
format: binary
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/files:
|
|
get:
|
|
operationId: listFiles
|
|
tags:
|
|
- Files
|
|
summary: सहेजी गई फ़ाइलें सूचीबद्ध करें
|
|
description: प्रत्येक फ़ाइल का नवीनतम संस्करण लौटाता है (प्रति संस्करण श्रृंखला एक)। पेजिनेशन और खोज का समर्थन करता है।
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: limit
|
|
in: query
|
|
description: Maximum number of files to return (default 50)
|
|
schema:
|
|
type: integer
|
|
default: 50
|
|
- name: offset
|
|
in: query
|
|
description: Number of files to skip for pagination (default 0)
|
|
schema:
|
|
type: integer
|
|
default: 0
|
|
- name: search
|
|
in: query
|
|
description: Filter files by original filename (substring match)
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: List of saved files
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
files:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
filename:
|
|
type: string
|
|
size:
|
|
type: integer
|
|
contentType:
|
|
type: string
|
|
createdAt:
|
|
type: string
|
|
format: date-time
|
|
total:
|
|
type: integer
|
|
description: Total number of matching files (for pagination)
|
|
limit:
|
|
type: integer
|
|
description: Applied limit value
|
|
offset:
|
|
type: integer
|
|
description: Applied offset value
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
delete:
|
|
operationId: bulkDeleteFiles
|
|
tags:
|
|
- Files
|
|
summary: सहेजी गई फ़ाइलें बल्क हटाएं
|
|
description: फ़ाइलें और उनकी संपूर्ण संस्करण श्रृंखलाएं हटाएं। गैर-admin users केवल अपनी फ़ाइलें हटा सकते हैं।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- ids
|
|
properties:
|
|
ids:
|
|
type: array
|
|
items:
|
|
type: string
|
|
description: File IDs to delete (deletes entire version chain for each)
|
|
responses:
|
|
'200':
|
|
description: Deletion result
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
deleted:
|
|
type: integer
|
|
description: Total number of records deleted across all version chains
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/files/upload:
|
|
post:
|
|
operationId: saveFileToLibrary
|
|
tags:
|
|
- Files
|
|
summary: लाइब्रेरी में फ़ाइल सहेजें
|
|
description: स्थायी भंडारण और संस्करण ट्रैकिंग के लिए एक या अधिक image फ़ाइलें सीधे फ़ाइल लाइब्रेरी में upload करें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
responses:
|
|
'201':
|
|
description: Files uploaded
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
files:
|
|
type: array
|
|
items:
|
|
type: object
|
|
description: Full file object with all metadata
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/files/save-result:
|
|
post:
|
|
operationId: saveProcessingResult
|
|
tags:
|
|
- Files
|
|
summary: एक प्रोसेसिंग परिणाम लाइब्रेरी में सहेजें
|
|
description: एक tool प्रोसेसिंग परिणाम को मौजूदा फ़ाइल के नए संस्करण के रूप में सहेजें। एक संस्करण श्रृंखला बनाता है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
- parentId
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: The processed image file
|
|
parentId:
|
|
type: string
|
|
description: ID of the parent file in the version chain
|
|
toolId:
|
|
type: string
|
|
description: Tool that produced this result
|
|
responses:
|
|
'201':
|
|
description: File saved
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
file:
|
|
type: object
|
|
description: Full file object with all metadata
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'404':
|
|
description: Parent file not found
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/files/{id}:
|
|
get:
|
|
operationId: getFile
|
|
tags:
|
|
- Files
|
|
summary: फ़ाइल metadata और संस्करण इतिहास प्राप्त करें
|
|
description: एक सहेजी गई फ़ाइल के लिए metadata और पूर्ण संस्करण इतिहास पुनर्प्राप्त करें। download करने से पहले फ़ाइल विवरण का निरीक्षण करने के लिए इसका उपयोग करें।
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
description: Saved file UUID
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: File metadata with version history
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
file:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
originalName:
|
|
type: string
|
|
mimeType:
|
|
type: string
|
|
size:
|
|
type: integer
|
|
width:
|
|
type: integer
|
|
height:
|
|
type: integer
|
|
version:
|
|
type: integer
|
|
parentId:
|
|
type:
|
|
- string
|
|
- 'null'
|
|
toolChain:
|
|
type: array
|
|
items:
|
|
type: string
|
|
createdAt:
|
|
type: string
|
|
format: date-time
|
|
versions:
|
|
type: array
|
|
items:
|
|
type: object
|
|
description: Full version chain of this file
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'404':
|
|
description: File not found
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/files/{id}/download:
|
|
get:
|
|
operationId: downloadSavedFile
|
|
tags:
|
|
- Files
|
|
summary: एक सहेजी गई फ़ाइल download करें
|
|
description: लाइब्रेरी से एक सहेजी गई फ़ाइल की binary सामग्री को उसके ID से download करें।
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
description: Saved file UUID
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: Image binary
|
|
content:
|
|
image/*:
|
|
schema:
|
|
type: string
|
|
format: binary
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'404':
|
|
description: File not found
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/files/{id}/thumbnail:
|
|
get:
|
|
operationId: getFileThumbnail
|
|
tags:
|
|
- Files
|
|
summary: फ़ाइल थंबनेल प्राप्त करें
|
|
description: एक सहेजी गई फ़ाइल का 300px JPEG थंबनेल पुनर्प्राप्त करें। गैलरी दृश्यों और फ़ाइल ब्राउज़र के लिए उपयोगी।
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
description: Saved file UUID
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: 300px JPEG thumbnail
|
|
content:
|
|
image/jpeg:
|
|
schema:
|
|
type: string
|
|
format: binary
|
|
'404':
|
|
description: File not found
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'422':
|
|
description: Thumbnail generation failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/fetch-urls:
|
|
post:
|
|
operationId: fetchImageUrls
|
|
tags:
|
|
- Files
|
|
summary: URLs से images प्राप्त करें
|
|
description: |
|
|
बाहरी URLs से एक या अधिक images प्राप्त करें। प्रत्येक URL को SSRF
|
|
हमलों के विरुद्ध validate किया जाता है, आकार-सीमित किया जाता है, और एक वैध image के रूप में सत्यापित किया जाता है। प्रत्येक
|
|
सफलतापूर्वक प्राप्त की गई image के लिए download URLs लौटाता है। प्रति घंटे 200 requests तक सीमित।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- urls
|
|
properties:
|
|
urls:
|
|
type: array
|
|
items:
|
|
type: string
|
|
format: uri
|
|
minItems: 1
|
|
maxItems: 50
|
|
description: URLs of images to fetch (1-50)
|
|
responses:
|
|
'200':
|
|
description: Fetch results for each URL
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
results:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
url:
|
|
type: string
|
|
filename:
|
|
type: string
|
|
contentType:
|
|
type: string
|
|
size:
|
|
type: integer
|
|
width:
|
|
type: integer
|
|
height:
|
|
type: integer
|
|
downloadUrl:
|
|
type: string
|
|
previewUrl:
|
|
type:
|
|
- string
|
|
- 'null'
|
|
error:
|
|
type: string
|
|
description: Present only when success is false
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/config/locale:
|
|
get:
|
|
operationId: getLocaleConfig
|
|
tags:
|
|
- System
|
|
summary: डिफ़ॉल्ट locale प्राप्त करें
|
|
description: डिफ़ॉल्ट locale सेटिंग लौटाता है। सार्वजनिक endpoint।
|
|
security: []
|
|
responses:
|
|
'200':
|
|
description: Default locale
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
defaultLocale:
|
|
type: string
|
|
example: en
|
|
/api/auth/login:
|
|
post:
|
|
operationId: login
|
|
tags:
|
|
- Auth
|
|
summary: लॉग इन करें
|
|
description: username और password के साथ authenticate करें। बाद के API requests के लिए एक bearer token लौटाता है।
|
|
security: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- username
|
|
- password
|
|
properties:
|
|
username:
|
|
type: string
|
|
password:
|
|
type: string
|
|
format: password
|
|
responses:
|
|
'200':
|
|
description: Login successful
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
token:
|
|
type: string
|
|
user:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
username:
|
|
type: string
|
|
role:
|
|
type: string
|
|
mustChangePassword:
|
|
type: boolean
|
|
permissions:
|
|
type: array
|
|
items:
|
|
type: string
|
|
teamName:
|
|
type: string
|
|
expiresAt:
|
|
type: string
|
|
format: date-time
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Invalid credentials
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/auth/logout:
|
|
post:
|
|
operationId: logout
|
|
tags:
|
|
- Auth
|
|
summary: लॉग आउट करें
|
|
description: वर्तमान session token को अमान्य करें। logout के बाद token का आगे के requests के लिए उपयोग नहीं किया जा सकता।
|
|
security:
|
|
- bearerAuth: []
|
|
responses:
|
|
'200':
|
|
description: Logged out
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
ok:
|
|
type: boolean
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/auth/session:
|
|
get:
|
|
operationId: getSession
|
|
tags:
|
|
- Auth
|
|
summary: वर्तमान session प्राप्त करें
|
|
description: user प्रोफ़ाइल, role, और permissions सहित वर्तमान session विवरण पुनर्प्राप्त करें। authenticate न होने पर null user लौटाता है।
|
|
security: []
|
|
responses:
|
|
'200':
|
|
description: Session info
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
user:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
username:
|
|
type: string
|
|
role:
|
|
type: string
|
|
mustChangePassword:
|
|
type: boolean
|
|
permissions:
|
|
type: array
|
|
items:
|
|
type: string
|
|
expiresAt:
|
|
type:
|
|
- string
|
|
- 'null'
|
|
format: date-time
|
|
/api/auth/change-password:
|
|
post:
|
|
operationId: changePassword
|
|
tags:
|
|
- Auth
|
|
summary: password बदलें
|
|
description: authenticate किए गए user का password बदलें। सत्यापन के लिए वर्तमान password आवश्यक है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- currentPassword
|
|
- newPassword
|
|
properties:
|
|
currentPassword:
|
|
type: string
|
|
format: password
|
|
newPassword:
|
|
type: string
|
|
format: password
|
|
responses:
|
|
'200':
|
|
description: Password changed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
ok:
|
|
type: boolean
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/auth/users:
|
|
get:
|
|
operationId: listUsers
|
|
tags:
|
|
- Auth
|
|
summary: users सूचीबद्ध करें
|
|
description: users:manage permission आवश्यक है।
|
|
security:
|
|
- bearerAuth: []
|
|
responses:
|
|
'200':
|
|
description: List of users
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
users:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
username:
|
|
type: string
|
|
role:
|
|
type: string
|
|
team:
|
|
type: string
|
|
createdAt:
|
|
type: string
|
|
format: date-time
|
|
maxUsers:
|
|
type: integer
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'403':
|
|
description: Insufficient permissions
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ForbiddenError'
|
|
/api/auth/register:
|
|
post:
|
|
operationId: createUser
|
|
tags:
|
|
- Auth
|
|
summary: user बनाएं
|
|
description: |
|
|
Requires users:manage permission. The assigned role must be within the actor's effective role authority, including hierarchy, permissions, tool access, and any API-key scope.
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- username
|
|
- password
|
|
properties:
|
|
username:
|
|
type: string
|
|
password:
|
|
type: string
|
|
format: password
|
|
role:
|
|
type: string
|
|
description: Built-in role (admin, editor, user) or custom role name
|
|
default: user
|
|
team:
|
|
type: string
|
|
default: Default
|
|
responses:
|
|
'201':
|
|
description: User created
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
username:
|
|
type: string
|
|
role:
|
|
type: string
|
|
team:
|
|
type: string
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'403':
|
|
description: Insufficient permissions
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ForbiddenError'
|
|
'409':
|
|
description: Username already exists
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ConflictError'
|
|
/api/auth/users/{id}:
|
|
put:
|
|
operationId: updateUser
|
|
tags:
|
|
- Auth
|
|
summary: user अपडेट करें
|
|
description: |
|
|
Requires users:manage permission and authority over the target's current role. Any newly assigned role must also be within the actor's effective hierarchy, permissions, tool access, and API-key scope.
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
description: User UUID
|
|
schema:
|
|
type: string
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
role:
|
|
type: string
|
|
description: Built-in role (admin, editor, user) or custom role name
|
|
team:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: User updated
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
ok:
|
|
type: boolean
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'403':
|
|
description: Insufficient permissions
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ForbiddenError'
|
|
delete:
|
|
operationId: deleteUser
|
|
tags:
|
|
- Auth
|
|
summary: user हटाएं
|
|
description: |
|
|
Requires users:manage permission and authority over the target's current role, including hierarchy, permissions, tool access, and any API-key scope. Self-deletion is not allowed.
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
description: User UUID
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: User deleted
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
ok:
|
|
type: boolean
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'403':
|
|
description: Insufficient permissions
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ForbiddenError'
|
|
/api/auth/users/{id}/reset-password:
|
|
post:
|
|
operationId: resetUserPassword
|
|
tags:
|
|
- Auth
|
|
summary: user password रीसेट करें
|
|
description: |
|
|
Reset a local user's password. Requires users:manage permission and authority over the target's current role, including hierarchy, permissions, tool access, and any API-key scope.
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
description: User UUID
|
|
schema:
|
|
type: string
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- newPassword
|
|
properties:
|
|
newPassword:
|
|
type: string
|
|
format: password
|
|
responses:
|
|
'200':
|
|
description: Password reset
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
ok:
|
|
type: boolean
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'403':
|
|
description: Insufficient permissions
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ForbiddenError'
|
|
/api/v1/api-keys:
|
|
post:
|
|
operationId: createApiKey
|
|
tags:
|
|
- API Keys
|
|
summary: एक API key बनाएं
|
|
description: |
|
|
एक नई API key जनरेट करें। पूर्ण key (si_ के आगे लगे साथ) केवल एक बार लौटाई जाती है। Keys scrypt hashing का उपयोग करके संग्रहीत की जाती हैं।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
maxLength: 100
|
|
default: Default API Key
|
|
permissions:
|
|
type: array
|
|
items:
|
|
type: string
|
|
description: Scoped permissions for this key
|
|
expiresAt:
|
|
type: string
|
|
format: date-time
|
|
description: Optional expiration date
|
|
responses:
|
|
'201':
|
|
description: API key created
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
key:
|
|
type: string
|
|
description: Full key (only shown once)
|
|
name:
|
|
type: string
|
|
permissions:
|
|
type:
|
|
- array
|
|
- 'null'
|
|
items:
|
|
type: string
|
|
expiresAt:
|
|
type:
|
|
- string
|
|
- 'null'
|
|
format: date-time
|
|
createdAt:
|
|
type: string
|
|
format: date-time
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
get:
|
|
operationId: listApiKeys
|
|
tags:
|
|
- API Keys
|
|
summary: API keys सूचीबद्ध करें
|
|
description: key metadata लौटाता है लेकिन पूर्ण key नहीं।
|
|
security:
|
|
- bearerAuth: []
|
|
responses:
|
|
'200':
|
|
description: List of API keys
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
apiKeys:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
permissions:
|
|
type:
|
|
- array
|
|
- 'null'
|
|
items:
|
|
type: string
|
|
createdAt:
|
|
type: string
|
|
format: date-time
|
|
lastUsedAt:
|
|
type:
|
|
- string
|
|
- 'null'
|
|
format: date-time
|
|
expiresAt:
|
|
type:
|
|
- string
|
|
- 'null'
|
|
format: date-time
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/api-keys/{id}:
|
|
delete:
|
|
operationId: deleteApiKey
|
|
tags:
|
|
- API Keys
|
|
summary: एक API key हटाएं
|
|
description: एक API key को स्थायी रूप से रद्द करें और हटाएं। हटाने के बाद key का authentication के लिए उपयोग नहीं किया जा सकता।
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
description: API key UUID
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: API key deleted
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
ok:
|
|
type: boolean
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/settings:
|
|
get:
|
|
operationId: getSettings
|
|
tags:
|
|
- Settings
|
|
summary: सभी settings प्राप्त करें
|
|
description: कॉलर की प्रभावी अनुमतियों द्वारा अधिकृत सिस्टम सेटिंग्स प्राप्त करें। `settings:read` आवश्यक है; सुरक्षा, अनुपालन और पूर्ण-एडमिन सेटिंग्स को अलग-अलग फ़िल्टर किया जाता है।
|
|
security:
|
|
- bearerAuth: []
|
|
responses:
|
|
'200':
|
|
description: All settings wrapped in a settings object
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
settings:
|
|
type: object
|
|
additionalProperties:
|
|
type: string
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
put:
|
|
operationId: updateSettings
|
|
tags:
|
|
- Settings
|
|
summary: settings अपडेट करें
|
|
description: मान्य और लिखने योग्य सेटिंग कीज़ वाला एक फ़्लैट JSON ऑब्जेक्ट स्वीकार करता है। `settings:write` आवश्यक है; सुरक्षा और अनुपालन कीज़ के लिए उनकी संबंधित प्रभावी अनुमति भी आवश्यक है, गोपनीय मानों के लिए पूर्ण-एडमिन अधिकार आवश्यक हैं, और समर्पित या सर्वर-प्रबंधित कीज़ केवल पढ़ने योग्य हैं।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
additionalProperties:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: Settings updated
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
ok:
|
|
type: boolean
|
|
updatedCount:
|
|
type: integer
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'403':
|
|
description: Admin access required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ForbiddenError'
|
|
/api/v1/settings/{key}:
|
|
get:
|
|
operationId: getSetting
|
|
tags:
|
|
- Settings
|
|
summary: एकल setting प्राप्त करें
|
|
description: की द्वारा एक मान्य सेटिंग प्राप्त करें। जब कॉलर के पास `settings:read` और उस की का अतिरिक्त अधिकार दोनों हों, तब मान और अंतिम-अपडेट टाइमस्टैम्प लौटाता है।
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: key
|
|
in: path
|
|
required: true
|
|
description: Setting key name
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: Setting value
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
key:
|
|
type: string
|
|
value:
|
|
type: string
|
|
updatedAt:
|
|
type: string
|
|
format: date-time
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'404':
|
|
description: Setting not found
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/teams:
|
|
get:
|
|
operationId: listTeams
|
|
tags:
|
|
- Teams
|
|
summary: teams सूचीबद्ध करें
|
|
description: teams:manage permission आवश्यक है।
|
|
security:
|
|
- bearerAuth: []
|
|
responses:
|
|
'200':
|
|
description: List of teams
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
teams:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
memberCount:
|
|
type: integer
|
|
createdAt:
|
|
type: string
|
|
format: date-time
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'403':
|
|
description: Insufficient permissions
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ForbiddenError'
|
|
post:
|
|
operationId: createTeam
|
|
tags:
|
|
- Teams
|
|
summary: एक team बनाएं
|
|
description: teams:manage permission आवश्यक है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- name
|
|
properties:
|
|
name:
|
|
type: string
|
|
responses:
|
|
'201':
|
|
description: Team created
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'403':
|
|
description: Insufficient permissions
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ForbiddenError'
|
|
'409':
|
|
description: Team name already exists
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ConflictError'
|
|
/api/v1/teams/{id}:
|
|
put:
|
|
operationId: updateTeam
|
|
tags:
|
|
- Teams
|
|
summary: एक team का नाम बदलें
|
|
description: teams:manage permission आवश्यक है।
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
description: Team UUID
|
|
schema:
|
|
type: string
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- name
|
|
properties:
|
|
name:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: Team updated
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
ok:
|
|
type: boolean
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'403':
|
|
description: Insufficient permissions
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ForbiddenError'
|
|
'404':
|
|
description: Team not found
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'409':
|
|
description: Team name already exists
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ConflictError'
|
|
delete:
|
|
operationId: deleteTeam
|
|
tags:
|
|
- Teams
|
|
summary: एक team हटाएं
|
|
description: teams:manage permission आवश्यक है।
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
description: Team UUID
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: Team deleted
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
ok:
|
|
type: boolean
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'403':
|
|
description: Insufficient permissions
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ForbiddenError'
|
|
'404':
|
|
description: Team not found
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/config/auth:
|
|
get:
|
|
operationId: getAuthConfig
|
|
tags:
|
|
- System
|
|
summary: Auth configuration
|
|
description: जाँचें कि इस instance पर authentication सक्षम है या नहीं। login फ़्लो निर्धारित करने के लिए frontend द्वारा उपयोग किया जाने वाला सार्वजनिक endpoint।
|
|
security: []
|
|
responses:
|
|
'200':
|
|
description: Auth config
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
authEnabled:
|
|
type: boolean
|
|
/api/v1/jobs/{jobId}/progress:
|
|
get:
|
|
operationId: getJobProgress
|
|
tags:
|
|
- System
|
|
summary: Job प्रगति (SSE)
|
|
description: लंबे समय तक चलने वाले कार्यों को ट्रैक करने के लिए Server-Sent Events स्ट्रीम। यह एकल-फ़ाइल, बैच और हार्टबीट फ़्रेम भेजती है और अंतिम कार्य इवेंट के तुरंत बाद बंद हो जाती है।
|
|
security: []
|
|
parameters:
|
|
- name: jobId
|
|
in: path
|
|
required: true
|
|
description: Job UUID from a tool processing or installation response
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: |
|
|
SSE stream of job progress frames. Single-file frames use `phase`, `percent`, optional `stage`, and terminal `result` or `error` fields. Batch frames use `status`, file counters, and `errors`. Heartbeat frames keep idle connections alive.
|
|
content:
|
|
text/event-stream:
|
|
schema:
|
|
oneOf:
|
|
- title: Single-file progress frame
|
|
type: object
|
|
required:
|
|
- jobId
|
|
- type
|
|
- phase
|
|
- percent
|
|
properties:
|
|
jobId:
|
|
type: string
|
|
type:
|
|
type: string
|
|
const: single
|
|
phase:
|
|
type: string
|
|
enum:
|
|
- processing
|
|
- complete
|
|
- failed
|
|
stage:
|
|
type: string
|
|
percent:
|
|
type: number
|
|
minimum: 0
|
|
maximum: 100
|
|
error:
|
|
type: string
|
|
description: Present on terminal failed frames
|
|
result:
|
|
type: object
|
|
additionalProperties: true
|
|
description: Present on terminal complete frames; contains the tool result
|
|
- title: Batch progress frame
|
|
type: object
|
|
required:
|
|
- jobId
|
|
- type
|
|
- status
|
|
- totalFiles
|
|
- completedFiles
|
|
- failedFiles
|
|
- errors
|
|
properties:
|
|
jobId:
|
|
type: string
|
|
type:
|
|
type: string
|
|
const: batch
|
|
status:
|
|
type: string
|
|
enum:
|
|
- processing
|
|
- completed
|
|
- failed
|
|
totalFiles:
|
|
type: integer
|
|
minimum: 0
|
|
completedFiles:
|
|
type: integer
|
|
minimum: 0
|
|
failedFiles:
|
|
type: integer
|
|
minimum: 0
|
|
currentFile:
|
|
type: string
|
|
errors:
|
|
type: array
|
|
items:
|
|
type: object
|
|
required:
|
|
- filename
|
|
- error
|
|
properties:
|
|
filename:
|
|
type: string
|
|
error:
|
|
type: string
|
|
- title: Heartbeat frame
|
|
type: object
|
|
required:
|
|
- type
|
|
properties:
|
|
type:
|
|
type: string
|
|
const: heartbeat
|
|
/api/v1/admin/health:
|
|
get:
|
|
operationId: adminHealthCheck
|
|
tags:
|
|
- Admin
|
|
summary: Admin स्वास्थ्य जाँच
|
|
description: |
|
|
database स्थिति, storage मोड, queue
|
|
स्थिति, और GPU उपलब्धता सहित पूर्ण सिस्टम निदान। system:health permission आवश्यक है।
|
|
security:
|
|
- bearerAuth: []
|
|
responses:
|
|
'200':
|
|
description: Detailed system health
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/AdminHealthResponse'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'403':
|
|
description: Insufficient permissions
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ForbiddenError'
|
|
/api/v1/config/analytics:
|
|
get:
|
|
operationId: getAnalyticsConfig
|
|
tags:
|
|
- Analytics
|
|
summary: analytics configuration प्राप्त करें
|
|
description: |
|
|
प्रभावी analytics प्रदाता configuration लौटाता है। Analytics केवल
|
|
तब सक्षम होता है जब compile-time bake और instance
|
|
analyticsEnabled setting दोनों इसे अनुमति देते हैं। जब अक्षम हो, तो keys, DSN, और
|
|
instanceId रिक्त होते हैं। सार्वजनिक endpoint।
|
|
security: []
|
|
responses:
|
|
'200':
|
|
description: Analytics configuration
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
enabled:
|
|
type: boolean
|
|
description: |
|
|
Effective analytics state. True only when both the
|
|
compile-time bake and the instance analyticsEnabled
|
|
setting are on. When false, the keys, DSN, and instanceId
|
|
are blank.
|
|
posthogApiKey:
|
|
type: string
|
|
posthogHost:
|
|
type: string
|
|
sentryDsn:
|
|
type: string
|
|
sentryDsnWeb:
|
|
type: string
|
|
posthogSampleRate:
|
|
type: number
|
|
instanceId:
|
|
type: string
|
|
/api/v1/features:
|
|
get:
|
|
operationId: listFeatures
|
|
tags:
|
|
- Features
|
|
summary: feature bundles सूचीबद्ध करें
|
|
description: |
|
|
सभी उपलब्ध AI feature bundles और उनकी इंस्टॉलेशन स्थिति लौटाता है।
|
|
गैर-Docker वातावरण में, सभी bundles इंस्टॉल के रूप में दिखते हैं।
|
|
security:
|
|
- bearerAuth: []
|
|
responses:
|
|
'200':
|
|
description: Feature bundle list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
bundles:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
description:
|
|
type: string
|
|
description: Human-readable description of the feature bundle
|
|
status:
|
|
type: string
|
|
enum:
|
|
- installed
|
|
- not_installed
|
|
- installing
|
|
- queued
|
|
- error
|
|
installedVersion:
|
|
type:
|
|
- string
|
|
- 'null'
|
|
estimatedSize:
|
|
type: string
|
|
downloadBytes:
|
|
type:
|
|
- integer
|
|
- 'null'
|
|
description: Compressed archive size for this host's architecture, when the manifest records it. Null in native (non-Docker) mode or when unmeasured.
|
|
installedBytes:
|
|
type:
|
|
- integer
|
|
- 'null'
|
|
description: Extracted on-disk size for this host's architecture, when the manifest records it.
|
|
compatibility:
|
|
type: string
|
|
enum:
|
|
- compatible
|
|
- incompatible
|
|
- invalid
|
|
description: OCR runtime compatibility; omitted for legacy bundles
|
|
compatibilityReason:
|
|
type:
|
|
- string
|
|
- 'null'
|
|
description: OCR runtime compatibility reason; omitted for legacy bundles
|
|
selectedTarget:
|
|
type:
|
|
- string
|
|
- 'null'
|
|
description: Selected OCR runtime target, such as linux-amd64-cpu-py312
|
|
missingDownloadBytes:
|
|
type:
|
|
- integer
|
|
- 'null'
|
|
description: Remaining OCR runtime download size for this host
|
|
requiredMemoryBytes:
|
|
type:
|
|
- integer
|
|
- 'null'
|
|
description: Minimum effective memory required by the selected OCR runtime; null for legacy bundles
|
|
effectiveMemoryBytes:
|
|
type:
|
|
- integer
|
|
- 'null'
|
|
description: Effective memory available to OCR (the configured container cgroup limit, otherwise host memory); null for legacy bundles
|
|
healthyGeneration:
|
|
type:
|
|
- string
|
|
- 'null'
|
|
description: Active immutable OCR generation identifier
|
|
availableQualities:
|
|
type: array
|
|
description: OCR quality tiers currently available on this host
|
|
items:
|
|
type: string
|
|
enum:
|
|
- fast
|
|
- balanced
|
|
- best
|
|
enablesTools:
|
|
type: array
|
|
items:
|
|
type: string
|
|
progress:
|
|
type:
|
|
- object
|
|
- 'null'
|
|
properties:
|
|
percent:
|
|
type: number
|
|
stage:
|
|
type: string
|
|
error:
|
|
type:
|
|
- string
|
|
- 'null'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/admin/features/{bundleId}/install:
|
|
post:
|
|
operationId: installFeature
|
|
tags:
|
|
- Features
|
|
summary: एक feature bundle इंस्टॉल करें
|
|
description: |-
|
|
एआई फीचर बंडल का एसिंक इंस्टालेशन प्रारंभ करें। डाउनलोड मॉडल और
|
|
Python sidecar को कॉन्फ़िगर करता है। प्रगति ट्रैकिंग के लिए jobId लौटाता है
|
|
SSE समापन बिंदु के माध्यम से। features:manage अनुमति की आवश्यकता है.
|
|
|
|
bundleId=ocr के लिए, इंस्टॉलेशन आधिकारिक Linux amd64 और arm64 कंटेनरों में समर्थित है।
|
|
यह इस होस्ट के लिए चयनित लक्ष्य को डाउनलोड करता है, रिलीज़ को सत्यापित करता है
|
|
सूचकांक के Ed25519 हस्ताक्षर और artifact/मॉडल डाइजेस्ट, धुआं-परीक्षण a
|
|
चरणबद्ध अपरिवर्तनीय पीढ़ी, और परमाणु रूप से इसे सक्रिय करती है। OCR
|
|
रनटाइम CPU का उपयोग करता है, भले ही कंटेनर में NVIDIA GPU एक्सेस हो। द
|
|
सटीक रनटाइम के लिए कम से कम 4 GiB प्रभावी मेमोरी की आवश्यकता होती है
|
|
कॉन्फ़िगर कंटेनर cgroup सीमा, अन्यथा होस्ट मेमोरी)। उसके नीचे के सिस्टम पर हस्ताक्षर किए गए
|
|
न्यूनतम संगतता को डाउनलोड करने से पहले अस्वीकार कर दिया जाता है
|
|
compatibilityReason=insufficient-memory. Fast Tesseract OCR नहीं है
|
|
इस आवश्यकता के अधीन.
|
|
|
|
इंस्टॉल क्रमबद्ध सर्वर-साइड होते हैं: एक अनुरोध किया जाता है जबकि दूसरा
|
|
इंस्टॉल चल रहा है अस्वीकृत होने के बजाय कतारबद्ध (queued=true) है, और
|
|
रनिंग इंस्टाल समाप्त होने पर स्वचालित रूप से प्रारंभ हो जाता है। एक दोहराव
|
|
उसी इन-फ़्लाइट बंडल के लिए अनुरोध काट लिया जाता है और वही वापस कर दिया जाता है
|
|
jobId.
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: bundleId
|
|
in: path
|
|
required: true
|
|
description: Feature bundle identifier
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'202':
|
|
description: Installation started or queued
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
jobId:
|
|
type: string
|
|
description: Job ID for tracking installation progress via SSE
|
|
queued:
|
|
type: boolean
|
|
description: True when the install was queued behind another running install instead of starting immediately.
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'403':
|
|
description: Insufficient permissions
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ForbiddenError'
|
|
'404':
|
|
description: Unknown bundle ID
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'409':
|
|
description: Bundle already installed or OCR runtime unsupported on this host
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ConflictError'
|
|
'503':
|
|
description: OCR runtime trust key is not configured in this image
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/admin/features/{bundleId}/uninstall:
|
|
post:
|
|
operationId: uninstallFeature
|
|
tags:
|
|
- Features
|
|
summary: एक feature bundle अनइंस्टॉल करें
|
|
description: |
|
|
एक AI feature bundle अनइंस्टॉल करें और उसकी model फ़ाइलें हटाएं (जब तक किसी अन्य
|
|
इंस्टॉल किए गए bundle के साथ साझा न हों)। features:manage permission आवश्यक है।
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: bundleId
|
|
in: path
|
|
required: true
|
|
description: Feature bundle identifier
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: Bundle uninstalled
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
ok:
|
|
type: boolean
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'403':
|
|
description: Insufficient permissions
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ForbiddenError'
|
|
'404':
|
|
description: Unknown bundle ID
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'409':
|
|
description: Bundle is not installed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ConflictError'
|
|
/api/v1/admin/features/disk-usage:
|
|
get:
|
|
operationId: getFeatureDiskUsage
|
|
tags:
|
|
- Features
|
|
summary: AI model डिस्क उपयोग
|
|
description: |
|
|
AI model फ़ाइलों द्वारा उपयोग की गई कुल डिस्क स्थान लौटाता है।
|
|
features:manage permission आवश्यक है।
|
|
security:
|
|
- bearerAuth: []
|
|
responses:
|
|
'200':
|
|
description: Disk usage
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
totalBytes:
|
|
type: integer
|
|
description: Total bytes used by AI model files
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'403':
|
|
description: Insufficient permissions
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ForbiddenError'
|
|
/api/v1/audit-log:
|
|
get:
|
|
operationId: queryAuditLog
|
|
tags:
|
|
- Audit
|
|
summary: audit log क्वेरी करें
|
|
description: |
|
|
प्रशासनिक कार्रवाइयों का पेजिनेटेड audit log। कार्रवाई
|
|
प्रकार और तिथि सीमा के अनुसार फ़िल्टरिंग का समर्थन करता है। audit:read permission आवश्यक है।
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: page
|
|
in: query
|
|
description: Page number (default 1)
|
|
schema:
|
|
type: integer
|
|
minimum: 1
|
|
default: 1
|
|
- name: limit
|
|
in: query
|
|
description: Results per page (1-100, default 50)
|
|
schema:
|
|
type: integer
|
|
minimum: 1
|
|
maximum: 100
|
|
default: 50
|
|
- name: action
|
|
in: query
|
|
description: Filter by action type
|
|
schema:
|
|
type: string
|
|
- name: from
|
|
in: query
|
|
description: Filter entries after this ISO 8601 date
|
|
schema:
|
|
type: string
|
|
format: date-time
|
|
- name: to
|
|
in: query
|
|
description: Filter entries before this ISO 8601 date
|
|
schema:
|
|
type: string
|
|
format: date-time
|
|
responses:
|
|
'200':
|
|
description: Paginated audit log entries
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
entries:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
actorId:
|
|
type:
|
|
- string
|
|
- 'null'
|
|
actorUsername:
|
|
type: string
|
|
action:
|
|
type: string
|
|
targetType:
|
|
type:
|
|
- string
|
|
- 'null'
|
|
targetId:
|
|
type:
|
|
- string
|
|
- 'null'
|
|
details:
|
|
type:
|
|
- object
|
|
- 'null'
|
|
ipAddress:
|
|
type:
|
|
- string
|
|
- 'null'
|
|
requestId:
|
|
type:
|
|
- string
|
|
- 'null'
|
|
createdAt:
|
|
type: string
|
|
format: date-time
|
|
total:
|
|
type: integer
|
|
description: Total matching entries
|
|
page:
|
|
type: integer
|
|
limit:
|
|
type: integer
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'403':
|
|
description: Insufficient permissions
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ForbiddenError'
|
|
/api/v1/roles:
|
|
get:
|
|
operationId: listRoles
|
|
tags:
|
|
- Roles
|
|
summary: roles सूचीबद्ध करें
|
|
description: |
|
|
सभी roles (बिल्ट-इन और कस्टम) को उनके permissions और user
|
|
संख्याओं के साथ सूचीबद्ध करें। audit:read permission आवश्यक है।
|
|
security:
|
|
- bearerAuth: []
|
|
responses:
|
|
'200':
|
|
description: Role list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
roles:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
description:
|
|
type: string
|
|
description: Human-readable description of the role
|
|
permissions:
|
|
type: array
|
|
items:
|
|
type: string
|
|
isBuiltin:
|
|
type: boolean
|
|
userCount:
|
|
type: integer
|
|
createdAt:
|
|
type: string
|
|
format: date-time
|
|
updatedAt:
|
|
type: string
|
|
format: date-time
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'403':
|
|
description: Insufficient permissions
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ForbiddenError'
|
|
post:
|
|
operationId: createRole
|
|
tags:
|
|
- Roles
|
|
summary: एक कस्टम role बनाएं
|
|
description: |
|
|
Create a new custom role with specified permissions. Role names must be
|
|
2-30 characters, lowercase alphanumeric with hyphens and underscores.
|
|
Requires security:manage permission. The new role's permissions and tool
|
|
access must be contained by the actor's effective authority.
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- name
|
|
- permissions
|
|
properties:
|
|
name:
|
|
type: string
|
|
minLength: 2
|
|
maxLength: 30
|
|
pattern: ^[a-z0-9_-]+$
|
|
description: Lowercase role name
|
|
description:
|
|
type: string
|
|
description: Human-readable description
|
|
permissions:
|
|
type: array
|
|
items:
|
|
type: string
|
|
description: |
|
|
Permission strings. Valid values: tools:use, files:own, files:all,
|
|
apikeys:own, apikeys:all, pipelines:own, pipelines:all,
|
|
settings:read, settings:write, users:manage, teams:manage,
|
|
features:manage, system:health, audit:read, compliance:manage,
|
|
webhooks:manage, security:manage
|
|
responses:
|
|
'201':
|
|
description: Role created
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
description:
|
|
type: string
|
|
description: Human-readable description of the role
|
|
permissions:
|
|
type: array
|
|
items:
|
|
type: string
|
|
isBuiltin:
|
|
type: boolean
|
|
'400':
|
|
description: Validation error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'403':
|
|
description: Insufficient permissions
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ForbiddenError'
|
|
'409':
|
|
description: Role name already exists
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ConflictError'
|
|
/api/v1/roles/{id}:
|
|
put:
|
|
operationId: updateRole
|
|
tags:
|
|
- Roles
|
|
summary: एक कस्टम role अपडेट करें
|
|
description: |
|
|
Update name, description, or permissions of a custom role. Built-in
|
|
roles cannot be modified. Requires security:manage permission and
|
|
authority over the current role; the resulting permissions and tool
|
|
access must remain contained by the actor's effective authority.
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
description: Role UUID
|
|
schema:
|
|
type: string
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
minLength: 2
|
|
maxLength: 30
|
|
description:
|
|
type: string
|
|
description: Updated description for the role
|
|
permissions:
|
|
type: array
|
|
items:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: Role updated
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
ok:
|
|
type: boolean
|
|
'400':
|
|
description: Validation error or cannot modify built-in role
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'403':
|
|
description: Insufficient permissions
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ForbiddenError'
|
|
'404':
|
|
description: Role not found
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'409':
|
|
description: Role name already exists
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ConflictError'
|
|
delete:
|
|
operationId: deleteRole
|
|
tags:
|
|
- Roles
|
|
summary: एक कस्टम role हटाएं
|
|
description: |
|
|
Delete a custom role. Users assigned to this role are reassigned to the
|
|
default "user" role. Built-in roles cannot be deleted. Requires
|
|
security:manage permission, authority over the current role, and
|
|
authority to assign the fallback role.
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
description: Role UUID
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: Role deleted
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
ok:
|
|
type: boolean
|
|
'400':
|
|
description: Cannot delete built-in role
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'403':
|
|
description: Insufficient permissions
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ForbiddenError'
|
|
'404':
|
|
description: Role not found
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/video/convert-video:
|
|
post:
|
|
operationId: convertVideo
|
|
tags:
|
|
- Tools
|
|
summary: Convert Video
|
|
description: MP4, MOV, WebM, AVI, और MKV के बीच videos बदलें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Video file to process
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `format` (string, default "mp4") - One of: mp4, mov, webm, avi, mkv
|
|
- `quality` (string, default "balanced") - One of: high, balanced, small
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'202':
|
|
description: Accepted for async processing. Track progress via SSE at /api/v1/jobs/{jobId}/progress.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
jobId:
|
|
type: string
|
|
async:
|
|
type: boolean
|
|
example: true
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/video/compress-video:
|
|
post:
|
|
operationId: compressVideo
|
|
tags:
|
|
- Tools
|
|
summary: Compress Video
|
|
description: गुणवत्ता नियंत्रण के साथ video फ़ाइल आकार सिकोड़ें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Video file to process
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `quality` (string, default "balanced") - One of: light, balanced, strong
|
|
- `resolution` (string, default "original") - One of: original, 1080p, 720p, 480p
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'202':
|
|
description: Accepted for async processing. Track progress via SSE at /api/v1/jobs/{jobId}/progress.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
jobId:
|
|
type: string
|
|
async:
|
|
type: boolean
|
|
example: true
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/video/trim-video:
|
|
post:
|
|
operationId: trimVideo
|
|
tags:
|
|
- Tools
|
|
summary: Trim Video
|
|
description: एक video से एक क्लिप काटें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Video file to process
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `startS` (number >= 0, default 0) - Start time in seconds
|
|
- `endS` (number, required) - End time in seconds (must be after startS)
|
|
- `precise` (boolean, default false) - Re-encode for frame-accurate cuts instead of keyframe seek
|
|
responses:
|
|
'200':
|
|
description: Processed video
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/video/mute-video:
|
|
post:
|
|
operationId: muteVideo
|
|
tags:
|
|
- Tools
|
|
summary: Mute Video
|
|
description: एक video से audio ट्रैक हटाएं।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Video file to process
|
|
responses:
|
|
'200':
|
|
description: Processed video
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/video/video-to-gif:
|
|
post:
|
|
operationId: videoToGif
|
|
tags:
|
|
- Tools
|
|
summary: Video to GIF
|
|
description: एक video क्लिप को एक एनिमेटेड GIF में बदलें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Video file to process
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `fps` (integer 1-30, default 12) - Output frame rate
|
|
- `width` (integer 64-1280, default 480) - Output width in pixels
|
|
- `startS` (number >= 0, default 0) - Start time in seconds
|
|
- `durationS` (number 0-60, default 5) - Duration in seconds
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'202':
|
|
description: Accepted for async processing. Track progress via SSE at /api/v1/jobs/{jobId}/progress.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
jobId:
|
|
type: string
|
|
async:
|
|
type: boolean
|
|
example: true
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/video/resize-video:
|
|
post:
|
|
operationId: resizeVideo
|
|
tags:
|
|
- Tools
|
|
summary: Resize Video
|
|
description: एक video को नए रिज़ॉल्यूशन या प्रीसेट आकार में स्केल करें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Video file to process
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `width` (integer 16-7680, optional) - Target width in pixels
|
|
- `height` (integer 16-4320, optional) - Target height in pixels
|
|
- `preset` (string, default "custom") - One of: custom, 2160p, 1440p, 1080p, 720p, 480p, 360p. When "custom", at least width or height is required
|
|
responses:
|
|
'200':
|
|
description: Processed video
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/video/crop-video:
|
|
post:
|
|
operationId: cropVideo
|
|
tags:
|
|
- Tools
|
|
summary: Crop Video
|
|
description: एक video से एक क्षेत्र क्रॉप करें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Video file to process
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `width` (integer >= 16, required) - Crop region width in pixels
|
|
- `height` (integer >= 16, required) - Crop region height in pixels
|
|
- `x` (integer >= 0, default 0) - Horizontal offset from top-left
|
|
- `y` (integer >= 0, default 0) - Vertical offset from top-left
|
|
responses:
|
|
'200':
|
|
description: Processed video
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/video/rotate-video:
|
|
post:
|
|
operationId: rotateVideo
|
|
tags:
|
|
- Tools
|
|
summary: Rotate Video
|
|
description: एक video घुमाएं या फ़्लिप करें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Video file to process
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `transform` (string, required) - One of: cw90, ccw90, 180, hflip, vflip
|
|
responses:
|
|
'200':
|
|
description: Processed video
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/video/change-fps:
|
|
post:
|
|
operationId: changeFps
|
|
tags:
|
|
- Tools
|
|
summary: Change FPS
|
|
description: एक video की फ़्रेम दर बदलें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Video file to process
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `fps` (number 1-120, default 30) - Target frame rate
|
|
responses:
|
|
'200':
|
|
description: Processed video
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/video/video-color:
|
|
post:
|
|
operationId: videoColor
|
|
tags:
|
|
- Tools
|
|
summary: Video Color
|
|
description: चमक, कंट्रास्ट, संतृप्ति, और गामा समायोजित करें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Video file to process
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `brightness` (number -1 to 1, default 0) - Brightness adjustment
|
|
- `contrast` (number 0-4, default 1) - Contrast multiplier
|
|
- `saturation` (number 0-3, default 1) - Saturation multiplier
|
|
- `gamma` (number 0.1-10, default 1) - Gamma correction
|
|
responses:
|
|
'200':
|
|
description: Processed video
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/video/video-speed:
|
|
post:
|
|
operationId: videoSpeed
|
|
tags:
|
|
- Tools
|
|
summary: Video Speed
|
|
description: एक video की गति बढ़ाएं या घटाएं।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Video file to process
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `factor` (number 0.25-4, default 2) - Speed multiplier (2 = double speed, 0.5 = half speed)
|
|
- `keepPitch` (boolean, default true) - Preserve audio pitch when changing speed
|
|
responses:
|
|
'200':
|
|
description: Processed video
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/video/reverse-video:
|
|
post:
|
|
operationId: reverseVideo
|
|
tags:
|
|
- Tools
|
|
summary: Reverse Video
|
|
description: एक video क्लिप को पीछे की ओर चलाएं। 5 मिनट तक की क्लिप तक सीमित।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Video file to process
|
|
responses:
|
|
'200':
|
|
description: Processed video
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/video/video-loudnorm:
|
|
post:
|
|
operationId: videoLoudnorm
|
|
tags:
|
|
- Tools
|
|
summary: वीडियो ऑडियो नॉर्मलाइज़
|
|
description: video audio वॉल्यूम को प्रसारण मानक (EBU R128) में सामान्य करें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Video file to process
|
|
responses:
|
|
'200':
|
|
description: Processed video
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/video/aspect-pad:
|
|
post:
|
|
operationId: aspectPad
|
|
tags:
|
|
- Tools
|
|
summary: Aspect Pad
|
|
description: एक लक्ष्य आस्पेक्ट अनुपात में फ़िट करने के लिए ठोस-रंग बार जोड़ें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Video file to process
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `target` (string, default "9:16") - One of: 16:9, 9:16, 1:1, 4:3, 3:4
|
|
- `color` (string, default "#000000") - Hex color for padding bars (e.g. "#000000")
|
|
responses:
|
|
'200':
|
|
description: Processed video
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/video/blur-pad:
|
|
post:
|
|
operationId: blurPad
|
|
tags:
|
|
- Tools
|
|
summary: Blur Pad
|
|
description: बार को video की एक धुंधली प्रति से भरें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Video file to process
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `target` (string, default "16:9") - One of: 16:9, 9:16, 1:1, 4:3, 3:4
|
|
- `blur` (number 2-50, default 20) - Gaussian blur sigma for the background
|
|
responses:
|
|
'200':
|
|
description: Processed video
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/video/watermark-video:
|
|
post:
|
|
operationId: watermarkVideo
|
|
tags:
|
|
- Tools
|
|
summary: Watermark Video
|
|
description: video फ़्रेम पर एक टेक्स्ट वॉटरमार्क बर्न करें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Video file to process
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `text` (string, required) - Watermark text (1-200 characters)
|
|
- `position` (string, default "br") - One of: tl, tc, tr, l, c, r, bl, bc, br
|
|
- `fontSize` (integer 8-120, default 36) - Font size in pixels
|
|
- `opacity` (number 0.05-1, default 0.5) - Watermark opacity
|
|
- `color` (string, default "#ffffff") - Hex color for the text (e.g. "#ffffff")
|
|
responses:
|
|
'200':
|
|
description: Processed video
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/video/stabilize-video:
|
|
post:
|
|
operationId: stabilizeVideo
|
|
tags:
|
|
- Tools
|
|
summary: Stabilize Video
|
|
description: दो-पास स्थिरीकरण के साथ कैमरा शेक कम करें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Video file to process
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `smoothing` (integer 5-60, default 15) - Smoothing window size in frames
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'202':
|
|
description: Accepted for async processing. Track progress via SSE at /api/v1/jobs/{jobId}/progress.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
jobId:
|
|
type: string
|
|
async:
|
|
type: boolean
|
|
example: true
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/video/gif-to-video:
|
|
post:
|
|
operationId: gifToVideo
|
|
tags:
|
|
- Tools
|
|
summary: GIF to Video
|
|
description: एक एनिमेटेड GIF को एक MP4, WebM, या MOV video में बदलें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: GIF file to convert
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `format` (string, default "mp4") - One of: mp4, webm, mov
|
|
responses:
|
|
'200':
|
|
description: Converted video
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/video/video-to-webp:
|
|
post:
|
|
operationId: videoToWebp
|
|
tags:
|
|
- Tools
|
|
summary: Video to WebP
|
|
description: एक video क्लिप को एक एनिमेटेड WebP image में बदलें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Video file to process
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `fps` (integer 1-30, default 12) - Output frame rate
|
|
- `width` (integer 16-1920, default 480) - Output width in pixels
|
|
- `quality` (integer 1-100, default 75) - WebP compression quality
|
|
- `loop` (boolean, default true) - Loop the animation
|
|
responses:
|
|
'200':
|
|
description: Converted animated WebP
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/video/video-to-frames:
|
|
post:
|
|
operationId: videoToFrames
|
|
tags:
|
|
- Tools
|
|
summary: Video to Frames
|
|
description: एक video से फ़्रेम को images के ZIP के रूप में निकालें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Video file to process
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `mode` (string, default "all") - One of: all, nth, timestamps
|
|
- `n` (integer 2-1000, default 10) - Extract every Nth frame (used when mode is "nth")
|
|
- `timestamps` (string, default "") - Comma-separated timestamps in seconds (required when mode is "timestamps")
|
|
- `format` (string, default "png") - One of: png, jpg
|
|
responses:
|
|
'200':
|
|
description: ZIP archive containing extracted frames
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/video/merge-videos:
|
|
post:
|
|
operationId: mergeVideos
|
|
tags:
|
|
- Tools
|
|
summary: Merge Videos
|
|
description: |
|
|
कई video क्लिप को एक MP4 फ़ाइल में जोड़ें। सभी inputs को
|
|
पहले video के रिज़ॉल्यूशन और 30 fps में सामान्य किया जाता है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: array
|
|
items:
|
|
type: string
|
|
format: binary
|
|
description: Two or more video files to merge (up to 10)
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'202':
|
|
description: Accepted for async processing. Track progress via SSE at /api/v1/jobs/{jobId}/progress.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
jobId:
|
|
type: string
|
|
async:
|
|
type: boolean
|
|
example: true
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/video/replace-audio:
|
|
post:
|
|
operationId: replaceAudio
|
|
tags:
|
|
- Tools
|
|
summary: Replace Audio
|
|
description: एक video के audio ट्रैक को किसी अन्य फ़ाइल से स्वैप करें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: array
|
|
items:
|
|
type: string
|
|
format: binary
|
|
description: A video file followed by an audio file (exactly 2 files)
|
|
responses:
|
|
'200':
|
|
description: Processed video
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/video/burn-subtitles:
|
|
post:
|
|
operationId: burnSubtitles
|
|
tags:
|
|
- Tools
|
|
summary: Burn Subtitles
|
|
description: video फ़्रेम पर subtitles को स्थायी रूप से रेंडर करें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: array
|
|
items:
|
|
type: string
|
|
format: binary
|
|
description: A video file followed by a subtitle file (.srt, .vtt, .ass)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `fontSize` (integer 8-72, default 24) - Subtitle font size in pixels
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'202':
|
|
description: Accepted for async processing. Track progress via SSE at /api/v1/jobs/{jobId}/progress.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
jobId:
|
|
type: string
|
|
async:
|
|
type: boolean
|
|
example: true
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/video/embed-subtitles:
|
|
post:
|
|
operationId: embedSubtitles
|
|
tags:
|
|
- Tools
|
|
summary: Embed Subtitles
|
|
description: video container में एक subtitle ट्रैक mux करें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: array
|
|
items:
|
|
type: string
|
|
format: binary
|
|
description: A video file followed by a subtitle file (.srt, .vtt, .ass)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `language` (string, default "eng") - ISO 639-2/B language code (3 lowercase letters, e.g. "eng", "fra", "deu")
|
|
responses:
|
|
'200':
|
|
description: Processed video
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/video/extract-subtitles:
|
|
post:
|
|
operationId: extractSubtitles
|
|
tags:
|
|
- Tools
|
|
summary: Extract Subtitles
|
|
description: एक video से subtitle ट्रैक को एक SRT फ़ाइल के रूप में निकालें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Video file with an embedded subtitle track
|
|
responses:
|
|
'200':
|
|
description: Extracted subtitle file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/video/images-to-video:
|
|
post:
|
|
operationId: imagesToVideo
|
|
tags:
|
|
- Tools
|
|
summary: Images to Video
|
|
description: images के एक सेट को एक स्लाइडशो video में बदलें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: array
|
|
items:
|
|
type: string
|
|
format: binary
|
|
description: Two or more image files (up to 60)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `secondsPerImage` (number 0.5-10, default 2) - Display duration per image in seconds
|
|
- `resolution` (string, default "720p") - One of: 1080p, 720p, square
|
|
- `fps` (integer 10-60, default 30) - Output frame rate
|
|
responses:
|
|
'200':
|
|
description: Generated slideshow video
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/video/video-metadata:
|
|
post:
|
|
operationId: videoMetadata
|
|
tags:
|
|
- Tools
|
|
summary: Clean Video Metadata
|
|
description: एक video से metadata हटाएं और जो मिला उसकी रिपोर्ट करें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Video file to process
|
|
responses:
|
|
'200':
|
|
description: Processed video with metadata report
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/video/auto-subtitles:
|
|
post:
|
|
operationId: autoSubtitles
|
|
tags:
|
|
- Tools
|
|
summary: Auto Subtitles
|
|
description: |
|
|
faster-whisper का उपयोग करके video audio ट्रैक से AI-संचालित subtitle जनरेशन।
|
|
ऑटो-डिटेक्शन और 10 स्पष्ट भाषाओं का समर्थन करता है।
|
|
इसके लिए transcription feature bundle इंस्टॉल होना आवश्यक है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Video file to transcribe
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `language` (string, default "auto") - One of: auto, en, de, fr, es, zh, ja, ko, id, th, vi
|
|
- `format` (string, default "srt") - One of: srt, vtt
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'202':
|
|
description: Accepted for async processing. Track progress via SSE at /api/v1/jobs/{jobId}/progress.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
jobId:
|
|
type: string
|
|
async:
|
|
type: boolean
|
|
example: true
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'501':
|
|
description: Feature not installed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/FeatureNotInstalledError'
|
|
/api/v1/tools/video/extract-audio:
|
|
post:
|
|
operationId: extractAudio
|
|
tags:
|
|
- Tools
|
|
summary: Extract Audio
|
|
description: एक video से audio ट्रैक निकालें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Video file to extract audio from
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `format` (string, default "mp3") - One of: mp3, wav, m4a, ogg
|
|
responses:
|
|
'200':
|
|
description: Extracted audio file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/audio/convert-audio:
|
|
post:
|
|
operationId: convertAudio
|
|
tags:
|
|
- Tools
|
|
summary: Convert Audio
|
|
description: MP3, WAV, OGG, और अधिक के बीच audio बदलें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Audio file to process
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `format` (string, default "mp3") - One of: mp3, wav, ogg, flac, m4a
|
|
- `bitrateKbps` (integer 32-320, default 192) - Output bitrate in kbps
|
|
responses:
|
|
'200':
|
|
description: Processed audio
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/audio/trim-audio:
|
|
post:
|
|
operationId: trimAudio
|
|
tags:
|
|
- Tools
|
|
summary: Trim Audio
|
|
description: एक audio फ़ाइल से एक सेक्शन काटें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Audio file to process
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `startS` (number, min 0, default 0) - Start time in seconds
|
|
- `endS` (number, required) - End time in seconds (must be after start)
|
|
responses:
|
|
'200':
|
|
description: Processed audio
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/audio/volume-adjust:
|
|
post:
|
|
operationId: volumeAdjust
|
|
tags:
|
|
- Tools
|
|
summary: वॉल्यूम समायोजन
|
|
description: एक निश्चित गेन द्वारा audio वॉल्यूम बढ़ाएं या घटाएं।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Audio file to process
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `gainDb` (number -30 to 30, default 3) - Volume adjustment in decibels
|
|
responses:
|
|
'200':
|
|
description: Processed audio
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/audio/normalize-audio:
|
|
post:
|
|
operationId: normalizeAudio
|
|
tags:
|
|
- Tools
|
|
summary: Normalize Audio
|
|
description: प्रसारण मानक स्तरों (EBU R128, -16 LUFS) पर लाउडनेस को समान करें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Audio file to process
|
|
responses:
|
|
'200':
|
|
description: Processed audio
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/audio/fade-audio:
|
|
post:
|
|
operationId: fadeAudio
|
|
tags:
|
|
- Tools
|
|
summary: Fade Audio
|
|
description: audio में fade-in और fade-out प्रभाव जोड़ें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Audio file to process
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `fadeInS` (number 0-30, default 1) - Fade-in duration in seconds
|
|
- `fadeOutS` (number 0-30, default 1) - Fade-out duration in seconds
|
|
responses:
|
|
'200':
|
|
description: Processed audio
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/audio/reverse-audio:
|
|
post:
|
|
operationId: reverseAudio
|
|
tags:
|
|
- Tools
|
|
summary: Reverse Audio
|
|
description: audio को पीछे की ओर चलाएं।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Audio file to process
|
|
responses:
|
|
'200':
|
|
description: Processed audio
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/audio/audio-speed:
|
|
post:
|
|
operationId: audioSpeed
|
|
tags:
|
|
- Tools
|
|
summary: Audio Speed
|
|
description: audio प्लेबैक की गति बढ़ाएं या घटाएं।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Audio file to process
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `factor` (number 0.25-4, default 1.5) - Speed multiplier (0.25 = quarter speed, 4 = quadruple speed)
|
|
responses:
|
|
'200':
|
|
description: Processed audio
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/audio/pitch-shift:
|
|
post:
|
|
operationId: pitchShift
|
|
tags:
|
|
- Tools
|
|
summary: Pitch Shift
|
|
description: गति बदले बिना सेमीटोन द्वारा पिच बढ़ाएं या घटाएं।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Audio file to process
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `semitones` (integer -12 to 12, default 3) - Semitones to shift (must be nonzero)
|
|
responses:
|
|
'200':
|
|
description: Processed audio
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/audio/audio-channels:
|
|
post:
|
|
operationId: audioChannels
|
|
tags:
|
|
- Tools
|
|
summary: Audio Channels
|
|
description: मोनो, स्टीरियो के बीच बदलें, या बाएं और दाएं चैनल स्वैप करें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Audio file to process
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `mode` (string, required) - One of: stereo-to-mono, mono-to-stereo, swap
|
|
responses:
|
|
'200':
|
|
description: Processed audio
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/audio/silence-removal:
|
|
post:
|
|
operationId: removeSilence
|
|
tags:
|
|
- Tools
|
|
summary: Silence Removal
|
|
description: audio से मौन सेक्शन हटाएं।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Audio file to process
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `thresholdDb` (number -80 to -20, default -50) - Silence threshold in dB
|
|
- `minSilenceS` (number 0.1-5, default 0.5) - Minimum silence duration in seconds to remove
|
|
responses:
|
|
'200':
|
|
description: Processed audio
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/audio/noise-reduction:
|
|
post:
|
|
operationId: reduceNoise
|
|
tags:
|
|
- Tools
|
|
summary: Noise Reduction
|
|
description: FFT-आधारित denoising के साथ बैकग्राउंड शोर कम करें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Audio file to process
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `strength` (string, default "medium") - One of: light, medium, strong
|
|
responses:
|
|
'200':
|
|
description: Processed audio
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/audio/merge-audio:
|
|
post:
|
|
operationId: mergeAudio
|
|
tags:
|
|
- Tools
|
|
summary: Merge Audio
|
|
description: कई audio फ़ाइलों को एक क्रमिक ट्रैक में संयोजित करें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: array
|
|
items:
|
|
type: string
|
|
format: binary
|
|
description: Two or more audio files to merge (max 10)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `format` (string, default "mp3") - One of: mp3, wav, flac, m4a
|
|
responses:
|
|
'200':
|
|
description: Processed audio
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/audio/split-audio:
|
|
post:
|
|
operationId: splitAudio
|
|
tags:
|
|
- Tools
|
|
summary: Split Audio
|
|
description: |
|
|
audio को समय, समान भागों, या मौन डिटेक्शन के अनुसार विभाजित करें। सेगमेंट के एक ZIP archive की ओर
|
|
इशारा करने वाले downloadUrl के साथ एक ToolResponse लौटाता है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Audio file to split
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `mode` (string, default "time") - One of: time, parts, silence
|
|
- `segmentS` (number 1-3600, default 60) - Segment length in seconds (mode=time)
|
|
- `parts` (integer 2-20, default 2) - Number of equal parts (mode=parts)
|
|
- `thresholdDb` (number -80 to -20, default -40) - Silence threshold in dB (mode=silence)
|
|
- `minSilenceS` (number 0.1-10, default 0.3) - Minimum silence gap in seconds (mode=silence)
|
|
responses:
|
|
'200':
|
|
description: Processed audio (downloadUrl points to a ZIP archive)
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/audio/ringtone-maker:
|
|
post:
|
|
operationId: ringtoneMaker
|
|
tags:
|
|
- Tools
|
|
summary: Ringtone Maker
|
|
description: किसी भी audio फ़ाइल से एक रिंगटोन क्लिप (.m4r) बनाएं।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Audio file to process
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `startS` (number, min 0, default 0) - Start time in seconds
|
|
- `durationS` (number 1-30, default 30) - Clip duration in seconds
|
|
responses:
|
|
'200':
|
|
description: Processed audio
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/audio/waveform-image:
|
|
post:
|
|
operationId: waveformImage
|
|
tags:
|
|
- Tools
|
|
summary: Waveform Image
|
|
description: एक audio फ़ाइल से एक वेवफ़ॉर्म विज़ुअलाइज़ेशन को PNG image के रूप में जनरेट करें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Audio file to process
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `width` (integer 256-3840, default 1024) - Image width in pixels
|
|
- `height` (integer 64-1080, default 256) - Image height in pixels
|
|
- `color` (string, default "#4f46e5") - Waveform hex color (e.g. "#4f46e5")
|
|
responses:
|
|
'200':
|
|
description: Processed image
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/audio/audio-metadata:
|
|
post:
|
|
operationId: audioMetadata
|
|
tags:
|
|
- Tools
|
|
summary: Audio Metadata
|
|
description: |
|
|
audio टैग (ID3) देखें, संपादित करें, या हटाएं। response में मानक ToolResponse fields के साथ
|
|
container, durationS, bitrateKbps, और tags के साथ एक
|
|
`metadata` object शामिल होता है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Audio file to process
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `strip` (boolean, default false) - Remove all existing metadata
|
|
- `title` (string, optional, max 500) - Set the title tag
|
|
- `artist` (string, optional, max 500) - Set the artist tag
|
|
- `album` (string, optional, max 500) - Set the album tag
|
|
responses:
|
|
'200':
|
|
description: Processed audio with metadata
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/audio/transcribe-audio:
|
|
post:
|
|
operationId: transcribeAudio
|
|
tags:
|
|
- Tools
|
|
summary: Transcribe Audio
|
|
description: |
|
|
faster-whisper का उपयोग करके AI-संचालित स्पीच-टू-टेक्स्ट ट्रांसक्रिप्शन।
|
|
सादा टेक्स्ट, SRT, या VTT subtitle formats आउटपुट करता है। इसके लिए transcription
|
|
feature bundle इंस्टॉल होना आवश्यक है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Audio file to transcribe
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `language` (string, default "auto") - One of: auto, en, de, fr, es, zh, ja, ko, id, th, vi
|
|
- `outputFormat` (string, default "txt") - One of: txt, srt, vtt
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'202':
|
|
description: Accepted for async processing. Track progress via SSE at /api/v1/jobs/{jobId}/progress.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
jobId:
|
|
type: string
|
|
async:
|
|
type: boolean
|
|
example: true
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'501':
|
|
description: Feature not installed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/FeatureNotInstalledError'
|
|
/api/v1/tools/pdf/merge-pdf:
|
|
post:
|
|
operationId: mergePdf
|
|
tags:
|
|
- Tools
|
|
summary: Merge PDFs
|
|
description: कई PDFs को एक में संयोजित करें। कम से कम दो फ़ाइलें आवश्यक हैं।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: array
|
|
items:
|
|
type: string
|
|
format: binary
|
|
description: Two or more PDF files to merge (max 20)
|
|
responses:
|
|
'200':
|
|
description: Merged PDF
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/pdf/split-pdf:
|
|
post:
|
|
operationId: splitPdf
|
|
tags:
|
|
- Tools
|
|
summary: Split PDF
|
|
description: |
|
|
पृष्ठ निकालें या भागों में विभाजित करें। "range" मोड में चयनित पृष्ठों के साथ एक
|
|
एकल PDF लौटाता है। "every" मोड में N पृष्ठों के हिस्सों में विभाजित करता है
|
|
और भागों वाला एक ZIP archive लौटाता है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: PDF file to split
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `mode` (string, default "range") - One of: range, every
|
|
- `range` (string, optional) - Page range in qpdf syntax, e.g. "1-5,8,10-z" (required when mode is "range")
|
|
- `everyN` (integer 1-500, optional) - Split into chunks of N pages (required when mode is "every")
|
|
responses:
|
|
'200':
|
|
description: Split PDF or ZIP archive of parts
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/pdf/compress-pdf:
|
|
post:
|
|
operationId: compressPdf
|
|
tags:
|
|
- Tools
|
|
summary: Compress PDF
|
|
description: |
|
|
एम्बेडेड images को डाउनसैंपल करके PDF फ़ाइल आकार सिकोड़ें। "quality" मोड में
|
|
एक 1-100 स्लाइडर image DPI नियंत्रित करता है। "targetSize" मोड में एक binary search
|
|
सबसे उच्च DPI ढूँढता है जो लक्ष्य में फ़िट हो। यदि संपीड़न फ़ाइल को बड़ा कर देगा,
|
|
तो मूल bytes अपरिवर्तित लौटाए जाते हैं।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: PDF file to compress
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `mode` (string, default "quality") - One of: quality, targetSize
|
|
- `quality` (integer 1-100, optional) - Compression quality (higher = less compression). Used in quality mode
|
|
- `targetSizeKb` (number, optional) - Target file size in kilobytes. Used in targetSize mode
|
|
responses:
|
|
'200':
|
|
description: Compressed PDF
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/pdf/rotate-pdf:
|
|
post:
|
|
operationId: rotatePdf
|
|
tags:
|
|
- Tools
|
|
summary: Rotate PDF
|
|
description: एक PDF में पृष्ठों को 90, 180, या 270 डिग्री घुमाएं।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: PDF file to process
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `angle` (integer, default 90) - One of: 90, 180, 270
|
|
- `range` (string, default "1-z") - Page range in qpdf syntax, e.g. "1-5,8" ("1-z" = all pages)
|
|
responses:
|
|
'200':
|
|
description: Rotated PDF
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/pdf/extract-pages:
|
|
post:
|
|
operationId: extractPages
|
|
tags:
|
|
- Tools
|
|
summary: पृष्ठ निकालें
|
|
description: चयनित पृष्ठों को एक नई PDF में खींचें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: PDF file to extract from
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `range` (string, required) - Page range in qpdf syntax, e.g. "1-5,8,10-z"
|
|
responses:
|
|
'200':
|
|
description: Extracted pages as a new PDF
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/pdf/remove-pages:
|
|
post:
|
|
operationId: removePages
|
|
tags:
|
|
- Tools
|
|
summary: पृष्ठ हटाएं
|
|
description: एक PDF से विशिष्ट पृष्ठ हटाएं। हर पृष्ठ नहीं हटा सकते।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: PDF file to process
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `pages` (string, required) - Page range to remove in qpdf syntax, e.g. "3,5-7"
|
|
responses:
|
|
'200':
|
|
description: PDF with pages removed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/pdf/organize-pdf:
|
|
post:
|
|
operationId: organizePdf
|
|
tags:
|
|
- Tools
|
|
summary: Organize PDF
|
|
description: 'एक स्पष्ट पृष्ठ क्रम के साथ पृष्ठों को पुन: क्रमबद्ध करें।'
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: PDF file to reorganize
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `order` (string, required) - Desired page order in qpdf syntax, e.g. "3,1,2,5-z"
|
|
responses:
|
|
'200':
|
|
description: Reorganized PDF
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/pdf/protect-pdf:
|
|
post:
|
|
operationId: protectPdf
|
|
tags:
|
|
- Tools
|
|
summary: Protect PDF
|
|
description: AES-256 एन्क्रिप्शन के साथ password सुरक्षा जोड़ें। Passwords audit logs से हटा दिए जाते हैं।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: PDF file to protect
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `userPassword` (string 1-256 chars, required) - Password required to open the PDF
|
|
- `ownerPassword` (string 1-256 chars, optional) - Owner password for permissions; defaults to userPassword if omitted
|
|
responses:
|
|
'200':
|
|
description: Encrypted PDF
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/pdf/unlock-pdf:
|
|
post:
|
|
operationId: unlockPdf
|
|
tags:
|
|
- Tools
|
|
summary: Unlock PDF
|
|
description: एक PDF से password सुरक्षा हटाएं। सही password प्रदान किया जाना चाहिए। Passwords audit logs से हटा दिए जाते हैं।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Password-protected PDF file
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `password` (string 1-256 chars, required) - Password to decrypt the PDF
|
|
responses:
|
|
'200':
|
|
description: Decrypted PDF
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/pdf/repair-pdf:
|
|
post:
|
|
operationId: repairPdf
|
|
tags:
|
|
- Tools
|
|
summary: Repair PDF
|
|
description: एक क्षतिग्रस्त या दूषित PDF की मरम्मत का प्रयास करें। विकृत फ़ाइलों की अनुमति देने के लिए input पर संरचनात्मक validation छोड़ दिया जाता है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Damaged PDF file to repair
|
|
responses:
|
|
'200':
|
|
description: Repaired PDF
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/pdf/linearize-pdf:
|
|
post:
|
|
operationId: linearizePdf
|
|
tags:
|
|
- Tools
|
|
summary: Web-optimize PDF
|
|
description: तेज़ वेब देखने के लिए एक PDF को linearize करें (प्रोग्रेसिव डाउनलोड)।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: PDF file to linearize
|
|
responses:
|
|
'200':
|
|
description: Linearized PDF
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/pdf/grayscale-pdf:
|
|
post:
|
|
operationId: grayscalePdf
|
|
tags:
|
|
- Tools
|
|
summary: Grayscale PDF
|
|
description: एक PDF में सभी रंगों को ग्रेस्केल में बदलें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: PDF file to convert
|
|
responses:
|
|
'200':
|
|
description: Grayscale PDF
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/pdf/pdfa-convert:
|
|
post:
|
|
operationId: pdfaConvert
|
|
tags:
|
|
- Tools
|
|
summary: PDF/A कन्वर्टर
|
|
description: दीर्घकालिक संरक्षण के लिए एक PDF को archival PDF/A-2 format में बदलें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: PDF file to convert
|
|
responses:
|
|
'200':
|
|
description: PDF/A-2 compliant file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/pdf/crop-pdf:
|
|
post:
|
|
operationId: cropPdf
|
|
tags:
|
|
- Tools
|
|
summary: Crop PDF
|
|
description: एक समान मार्जिन के साथ सभी पृष्ठ क्रॉप करें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: PDF file to crop
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `margin` (number 0-2000, default 20) - Uniform crop margin in points
|
|
responses:
|
|
'200':
|
|
description: Cropped PDF
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/pdf/nup-pdf:
|
|
post:
|
|
operationId: nupPdf
|
|
tags:
|
|
- Tools
|
|
summary: प्रति शीट पेज (N-up)
|
|
description: प्रति शीट कई पृष्ठ व्यवस्थित करें (उदा. 2-up, 4-up)।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: PDF file to process
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `perSheet` (integer, default 2) - One of: 2, 3, 4, 8, 9, 12, 16
|
|
responses:
|
|
'200':
|
|
description: N-up PDF
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/pdf/booklet-pdf:
|
|
post:
|
|
operationId: bookletPdf
|
|
tags:
|
|
- Tools
|
|
summary: Booklet PDF
|
|
description: पृष्ठों को एक बुकलेट में मोड़ने के लिए व्यवस्थित करें (डुप्लेक्स प्रिंटिंग के लिए impose करें)।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: PDF file to process
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `perSheet` (integer, default 2) - One of: 2, 4, 6, 8
|
|
responses:
|
|
'200':
|
|
description: Booklet-imposed PDF
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/pdf/watermark-pdf:
|
|
post:
|
|
operationId: watermarkPdf
|
|
tags:
|
|
- Tools
|
|
summary: Watermark PDF
|
|
description: एक PDF के हर पृष्ठ पर एक टेक्स्ट वॉटरमार्क जोड़ें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: PDF file to watermark
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `text` (string 1-200 chars, required) - Watermark text
|
|
- `position` (string, default "c") - One of: tl, tc, tr, l, c, r, bl, bc, br
|
|
- `fontSize` (integer 6-72, default 48) - Font size in points
|
|
- `opacity` (number 0.05-1, default 0.3) - Watermark opacity
|
|
- `rotation` (number -180 to 180, default 45) - Rotation angle in degrees
|
|
responses:
|
|
'200':
|
|
description: Watermarked PDF
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/pdf/pdf-page-numbers:
|
|
post:
|
|
operationId: pdfPageNumbers
|
|
tags:
|
|
- Tools
|
|
summary: PDF पृष्ठ संख्या
|
|
description: एक PDF के हर पृष्ठ पर पृष्ठ संख्याएं ("Page N of M") जोड़ें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: PDF file to process
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `position` (string, default "bc") - One of: bl, bc, br, tl, tc, tr
|
|
- `fontSize` (integer 6-24, default 10) - Font size in points
|
|
responses:
|
|
'200':
|
|
description: PDF with page numbers
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/files/convert-document:
|
|
post:
|
|
operationId: convertDocument
|
|
tags:
|
|
- Tools
|
|
summary: दस्तावेज़ बदलें
|
|
description: Word, OpenDocument, RTF, और सादा टेक्स्ट formats के बीच बदलें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Document file to convert (.docx, .doc, .odt, .rtf, .txt)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `format` (string, required) - One of: docx, odt, rtf, txt
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'202':
|
|
description: Accepted for async processing. Track progress via SSE at /api/v1/jobs/{jobId}/progress.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
jobId:
|
|
type: string
|
|
async:
|
|
type: boolean
|
|
example: true
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/files/convert-presentation:
|
|
post:
|
|
operationId: convertPresentation
|
|
tags:
|
|
- Tools
|
|
summary: प्रस्तुति बदलें
|
|
description: PowerPoint और OpenDocument प्रस्तुति formats के बीच बदलें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Presentation file to convert (.pptx, .ppt, .odp)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `format` (string, required) - One of: pptx, odp
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'202':
|
|
description: Accepted for async processing. Track progress via SSE at /api/v1/jobs/{jobId}/progress.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
jobId:
|
|
type: string
|
|
async:
|
|
type: boolean
|
|
example: true
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/files/convert-spreadsheet:
|
|
post:
|
|
operationId: convertSpreadsheet
|
|
tags:
|
|
- Tools
|
|
summary: स्प्रेडशीट बदलें
|
|
description: Excel, OpenDocument, और CSV formats के बीच बदलें। मल्टी-शीट workbooks पहली शीट को CSV में निर्यात करते हैं।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Spreadsheet file to convert (.xlsx, .xls, .ods, .csv)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `format` (string, required) - One of: xlsx, ods, csv
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'202':
|
|
description: Accepted for async processing. Track progress via SSE at /api/v1/jobs/{jobId}/progress.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
jobId:
|
|
type: string
|
|
async:
|
|
type: boolean
|
|
example: true
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/files/excel-to-pdf:
|
|
post:
|
|
operationId: excelToPdf
|
|
tags:
|
|
- Tools
|
|
summary: Excel to PDF
|
|
description: स्प्रेडशीट को PDF में बदलें। चौड़ी शीट कई पृष्ठों में पेजिनेट हो सकती हैं।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Spreadsheet file to convert (.xlsx, .xls, .ods, .csv)
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'202':
|
|
description: Accepted for async processing. Track progress via SSE at /api/v1/jobs/{jobId}/progress.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
jobId:
|
|
type: string
|
|
async:
|
|
type: boolean
|
|
example: true
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/files/word-to-pdf:
|
|
post:
|
|
operationId: wordToPdf
|
|
tags:
|
|
- Tools
|
|
summary: Word to PDF
|
|
description: Word दस्तावेज़ों को PDF में बदलें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Word document to convert (.docx, .doc, .odt, .rtf, .txt)
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'202':
|
|
description: Accepted for async processing. Track progress via SSE at /api/v1/jobs/{jobId}/progress.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
jobId:
|
|
type: string
|
|
async:
|
|
type: boolean
|
|
example: true
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/files/powerpoint-to-pdf:
|
|
post:
|
|
operationId: powerpointToPdf
|
|
tags:
|
|
- Tools
|
|
summary: PowerPoint to PDF
|
|
description: प्रस्तुतियों को PDF में बदलें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Presentation file to convert (.pptx, .ppt, .odp)
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'202':
|
|
description: Accepted for async processing. Track progress via SSE at /api/v1/jobs/{jobId}/progress.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
jobId:
|
|
type: string
|
|
async:
|
|
type: boolean
|
|
example: true
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/files/html-to-pdf:
|
|
post:
|
|
operationId: htmlToPdf
|
|
tags:
|
|
- Tools
|
|
summary: HTML to PDF
|
|
description: एक HTML फ़ाइल को PDF में बदलें। गोपनीयता के लिए रिमोट संसाधन अक्षम हैं।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: HTML file to convert (.html, .htm)
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'202':
|
|
description: Accepted for async processing. Track progress via SSE at /api/v1/jobs/{jobId}/progress.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
jobId:
|
|
type: string
|
|
async:
|
|
type: boolean
|
|
example: true
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/files/markdown-to-docx:
|
|
post:
|
|
operationId: markdownToDocx
|
|
tags:
|
|
- Tools
|
|
summary: Markdown to Word
|
|
description: एक Markdown फ़ाइल को एक Word दस्तावेज़ (DOCX) में बदलें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Markdown file to convert (.md, .markdown)
|
|
responses:
|
|
'200':
|
|
description: Processed document
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/files/markdown-to-html:
|
|
post:
|
|
operationId: markdownToHtml
|
|
tags:
|
|
- Tools
|
|
summary: Markdown to HTML
|
|
description: एक Markdown फ़ाइल को एक स्टैंडअलोन HTML पृष्ठ में बदलें। स्रोत में रिमोट images आउटपुट में यथावत रहती हैं।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Markdown file to convert (.md, .markdown)
|
|
responses:
|
|
'200':
|
|
description: Processed document
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/files/markdown-to-pdf:
|
|
post:
|
|
operationId: markdownToPdf
|
|
tags:
|
|
- Tools
|
|
summary: Markdown to PDF
|
|
description: एक Markdown फ़ाइल को एक स्टाइल किए गए PDF में बदलें। गोपनीयता के लिए रिमोट संसाधन अक्षम हैं।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Markdown file to convert (.md, .markdown)
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'202':
|
|
description: Accepted for async processing. Track progress via SSE at /api/v1/jobs/{jobId}/progress.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
jobId:
|
|
type: string
|
|
async:
|
|
type: boolean
|
|
example: true
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/files/epub-convert:
|
|
post:
|
|
operationId: epubConvert
|
|
tags:
|
|
- Tools
|
|
summary: EPUB से कन्वर्ट
|
|
description: एक EPUB को PDF, DOCX, HTML, या Markdown में बदलें। पुस्तक के भीतर रिमोट संसाधन प्राप्त नहीं किए जाते।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: EPUB file to convert (.epub)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `format` (string, required) - One of: pdf, docx, html, md
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'202':
|
|
description: Accepted for async processing. Track progress via SSE at /api/v1/jobs/{jobId}/progress.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
jobId:
|
|
type: string
|
|
async:
|
|
type: boolean
|
|
example: true
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/files/to-epub:
|
|
post:
|
|
operationId: toEpub
|
|
tags:
|
|
- Tools
|
|
summary: Convert to EPUB
|
|
description: Word, Markdown, HTML, या सादा टेक्स्ट फ़ाइलों को EPUB में बदलें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Document file to convert (.docx, .md, .html, .txt)
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'202':
|
|
description: Accepted for async processing. Track progress via SSE at /api/v1/jobs/{jobId}/progress.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
jobId:
|
|
type: string
|
|
async:
|
|
type: boolean
|
|
example: true
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/pdf/flatten-pdf:
|
|
post:
|
|
operationId: flattenPdf
|
|
tags:
|
|
- Tools
|
|
summary: Flatten PDF
|
|
description: forms और annotations को पृष्ठ सामग्री में बेक करें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: PDF file to process (.pdf)
|
|
responses:
|
|
'200':
|
|
description: Processed PDF
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/pdf/redact-pdf:
|
|
post:
|
|
operationId: redactPdf
|
|
tags:
|
|
- Tools
|
|
summary: Redact PDF
|
|
description: टेक्स्ट घटनाओं को स्थायी रूप से हटाएं (सत्यापित सच्चा redaction)।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: PDF file to process (.pdf)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `terms` (string[], required) - Text strings to redact (1-50 terms, each up to 200 characters)
|
|
- `caseSensitive` (boolean, default false) - Whether matching is case-sensitive
|
|
responses:
|
|
'200':
|
|
description: Processed PDF
|
|
content:
|
|
application/json:
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/components/schemas/ToolResponse'
|
|
- type: object
|
|
properties:
|
|
found:
|
|
type: integer
|
|
description: Number of redacted occurrences found
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/pdf/pdf-to-text:
|
|
post:
|
|
operationId: pdfToText
|
|
tags:
|
|
- Tools
|
|
summary: PDF to text
|
|
description: एक PDF से सादा टेक्स्ट निकालें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: PDF file to process (.pdf)
|
|
responses:
|
|
'200':
|
|
description: Extracted text file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/components/schemas/ToolResponse'
|
|
- type: object
|
|
properties:
|
|
chars:
|
|
type: integer
|
|
description: Number of characters extracted
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/pdf/pdf-to-word:
|
|
post:
|
|
operationId: pdfToWord
|
|
tags:
|
|
- Tools
|
|
summary: PDF to Word
|
|
description: टेक्स्ट-आधारित PDFs के लिए सर्वश्रेष्ठ; स्कैन किए गए पृष्ठों को OCR की आवश्यकता होती है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: PDF file to convert (.pdf)
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'202':
|
|
description: Accepted for async processing. Track progress via SSE at /api/v1/jobs/{jobId}/progress.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
jobId:
|
|
type: string
|
|
async:
|
|
type: boolean
|
|
example: true
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/pdf/pdf-metadata:
|
|
post:
|
|
operationId: pdfMetadata
|
|
tags:
|
|
- Tools
|
|
summary: PDF metadata
|
|
description: PDF दस्तावेज़ metadata पढ़ें और लिखें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: PDF file to process (.pdf)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `title` (string, optional, max 500) - Document title
|
|
- `author` (string, optional, max 500) - Document author
|
|
- `subject` (string, optional, max 500) - Document subject
|
|
- `keywords` (string, optional, max 500) - Document keywords
|
|
responses:
|
|
'200':
|
|
description: Processed PDF with updated metadata
|
|
content:
|
|
application/json:
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/components/schemas/ToolResponse'
|
|
- type: object
|
|
properties:
|
|
metadata:
|
|
type: object
|
|
description: The resulting PDF metadata fields
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/pdf/ocr-pdf:
|
|
post:
|
|
operationId: ocrPdf
|
|
tags:
|
|
- Tools
|
|
summary: PDF OCR
|
|
description: |-
|
|
स्कैन किए गए PDF दस्तावेज़ों से पेज दर पेज टेक्स्ट निकालें। Fast का उपयोग करता है
|
|
अंतर्निहित Tesseract रनटाइम। Balanced और Best हस्ताक्षरित वैकल्पिक का उपयोग करें
|
|
पिन किए गए PP-OCR ONNX मॉडल के साथ RapidOCR रनटाइम। स्पष्ट स्तरीय अनुरोध
|
|
कभी भी चुपचाप डाउनग्रेड न करें। एक अनुरोध अधिकतम 50 पृष्ठों का चयन कर सकता है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
maxLength: 536870912
|
|
description: PDF file to process (.pdf)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `quality` (string, optional) - One of: fast, balanced, best. When both quality and engine are omitted, uses the best available tier in this order: best, balanced, fast. Korean never selects fast; it uses best, then balanced, or returns an accurate-runtime install/compatibility error
|
|
- `language` (string, default "auto") - One of: auto, en, de, fr, es, zh, ja, ko. Korean is unsupported by fast and the legacy tesseract alias
|
|
- `pages` (string, default "all") - Page selection, e.g. "all", "1-3", "1,3,5"
|
|
- `enhance` (boolean, optional) - Improve local contrast. Fast applies it directly; accurate tiers retain the variant only when calibrated scoring improves the result. Defaults to true for Best and false for Fast/Balanced
|
|
- `engine` (string, deprecated) - Compatibility alias: tesseract maps to fast; the legacy paddleocr value maps to balanced but does not load PaddlePaddle
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'202':
|
|
description: Accepted for async processing. Track progress via SSE at /api/v1/jobs/{jobId}/progress.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- jobId
|
|
- async
|
|
properties:
|
|
jobId:
|
|
type: string
|
|
progressJobId:
|
|
type: string
|
|
artifactJobId:
|
|
type: string
|
|
async:
|
|
type: boolean
|
|
const: true
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'413':
|
|
description: Encoded PDF exceeds the hard 512 MiB safety limit
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'501':
|
|
description: Requested Balanced/Best runtime is not installed or is incompatible
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/FeatureNotInstalledError'
|
|
'503':
|
|
description: PDF OCR could not be queued
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/files/chart-maker:
|
|
post:
|
|
operationId: chartMaker
|
|
tags:
|
|
- Tools
|
|
summary: Chart Maker
|
|
description: CSV या JSON डेटा से बार, लाइन, या पाई चार्ट बनाएं। एक PNG image लौटाता है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: CSV or JSON data file
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `kind` (string, default "bar") - One of: bar, line, pie
|
|
- `title` (string, optional) - Chart title (max 120 characters)
|
|
- `width` (integer 320-2048, default 960) - Chart width in pixels
|
|
- `height` (integer 240-1536, default 540) - Chart height in pixels
|
|
responses:
|
|
'200':
|
|
description: Generated chart image
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/files/csv-excel:
|
|
post:
|
|
operationId: csvExcel
|
|
tags:
|
|
- Tools
|
|
summary: CSV to Excel
|
|
description: CSV और Excel (XLSX) के बीच, दोनों दिशाओं में बदलें। XLSX पाने के लिए एक CSV या TSV फ़ाइल upload करें, या CSV पाने के लिए एक XLSX फ़ाइल upload करें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: CSV, TSV, or XLSX file to convert
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `sheet` (integer, min 1, default 1) - Worksheet number to export when converting from XLSX
|
|
responses:
|
|
'200':
|
|
description: Converted file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/files/csv-json:
|
|
post:
|
|
operationId: csvJson
|
|
tags:
|
|
- Tools
|
|
summary: CSV to JSON
|
|
description: CSV और JSON के बीच, दोनों दिशाओं में बदलें। JSON पाने के लिए एक CSV या TSV फ़ाइल upload करें, या CSV पाने के लिए objects का एक JSON array upload करें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: CSV, TSV, or JSON file to convert
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `pretty` (boolean, default true) - Pretty-print JSON output with indentation
|
|
responses:
|
|
'200':
|
|
description: Converted file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/files/json-xml:
|
|
post:
|
|
operationId: jsonXml
|
|
tags:
|
|
- Tools
|
|
summary: JSON to XML
|
|
description: JSON और XML के बीच, दोनों दिशाओं में बदलें। XML पाने के लिए एक JSON फ़ाइल upload करें, या JSON पाने के लिए एक XML फ़ाइल upload करें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: JSON or XML file to convert
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `pretty` (boolean, default true) - Pretty-print output with indentation
|
|
responses:
|
|
'200':
|
|
description: Converted file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/files/split-csv:
|
|
post:
|
|
operationId: splitCsv
|
|
tags:
|
|
- Tools
|
|
summary: Split CSV
|
|
description: एक CSV फ़ाइल को row संख्या के अनुसार छोटी फ़ाइलों में विभाजित करें। भागों वाला एक ZIP archive लौटाता है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: CSV or TSV file to split
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `rowsPerFile` (integer 1-1000000, default 1000) - Number of data rows per output file
|
|
- `keepHeader` (boolean, default true) - Repeat the header row in each output file
|
|
responses:
|
|
'200':
|
|
description: ZIP archive containing split CSV parts
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/files/merge-csvs:
|
|
post:
|
|
operationId: mergeCsvs
|
|
tags:
|
|
- Tools
|
|
summary: Merge CSVs
|
|
description: मेल खाते columns वाली कई CSV या TSV फ़ाइलों को एक मर्ज की गई फ़ाइल में संयोजित करें। सभी फ़ाइलों में समान column हेडर होने चाहिए।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: array
|
|
items:
|
|
type: string
|
|
format: binary
|
|
description: Two or more CSV or TSV files to merge (2-20 files)
|
|
responses:
|
|
'200':
|
|
description: Merged CSV file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/files/yaml-json:
|
|
post:
|
|
operationId: yamlJson
|
|
tags:
|
|
- Tools
|
|
summary: YAML / JSON कन्वर्ट
|
|
description: YAML और JSON के बीच, दोनों दिशाओं में बदलें। JSON पाने के लिए एक YAML फ़ाइल upload करें, या YAML पाने के लिए एक JSON फ़ाइल upload करें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: YAML (.yaml, .yml) or JSON file to convert
|
|
responses:
|
|
'200':
|
|
description: Converted file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/files/xml-to-csv:
|
|
post:
|
|
operationId: xmlToCsv
|
|
tags:
|
|
- Tools
|
|
summary: XML to CSV
|
|
description: एक XML फ़ाइल से दोहराए जाने वाले elements को एक CSV तालिका में निकालें। XML ट्री में objects के पहले array को स्वचालित रूप से ढूँढता है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: XML file to convert
|
|
responses:
|
|
'200':
|
|
description: Extracted CSV file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/files/create-zip:
|
|
post:
|
|
operationId: createZip
|
|
tags:
|
|
- Tools
|
|
summary: Create ZIP
|
|
description: कई फ़ाइलों को एक ही ZIP archive में बंडल करें। डुप्लिकेट filenames स्वचालित रूप से deduplicate किए जाते हैं।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: array
|
|
items:
|
|
type: string
|
|
format: binary
|
|
description: Two or more files to bundle (2-50 files, any type)
|
|
responses:
|
|
'200':
|
|
description: ZIP archive
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/files/extract-zip:
|
|
post:
|
|
operationId: extractZip
|
|
tags:
|
|
- Tools
|
|
summary: Extract ZIP
|
|
description: बम सुरक्षा के साथ एक ZIP archive से फ़ाइलें सुरक्षित रूप से निकालें। एकल-फ़ाइल archives फ़ाइल सीधे लौटाते हैं; मल्टी-फ़ाइल archives एक फ़्लैट ZIP लौटाते हैं।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: ZIP archive to extract
|
|
responses:
|
|
'200':
|
|
description: Extracted file or repackaged ZIP archive
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/image/background-replace:
|
|
post:
|
|
operationId: backgroundReplace
|
|
tags:
|
|
- Tools
|
|
summary: बैकग्राउंड बदलें
|
|
description: |
|
|
AI-संचालित बैकग्राउंड प्रतिस्थापन। विषय का बैकग्राउंड हटाता है
|
|
और इसे एक ठोस रंग या ग्रेडिएंट पर कंपोज़िट करता है। इसके लिए
|
|
background-removal feature bundle इंस्टॉल होना आवश्यक है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Image file to process
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `backgroundType` (string, default "color") - One of: color, gradient
|
|
- `color` (string, default "#ffffff") - Background hex color (when backgroundType is color)
|
|
- `gradientColor1` (string, optional) - First gradient hex color
|
|
- `gradientColor2` (string, optional) - Second gradient hex color
|
|
- `gradientAngle` (integer 0-360, default 180) - Gradient angle in degrees
|
|
- `feather` (integer 0-20, default 0) - Edge feathering radius
|
|
- `format` (string, default "png") - One of: png, webp
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'202':
|
|
description: Accepted for async processing. Track progress via SSE at /api/v1/jobs/{jobId}/progress.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
jobId:
|
|
type: string
|
|
async:
|
|
type: boolean
|
|
example: true
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'501':
|
|
description: Feature not installed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/FeatureNotInstalledError'
|
|
/api/v1/tools/image/blur-background:
|
|
post:
|
|
operationId: blurBackground
|
|
tags:
|
|
- Tools
|
|
summary: बैकग्राउंड धुंधला करें
|
|
description: |
|
|
AI-संचालित बैकग्राउंड धुंधलापन। बैकग्राउंड हटाता है,
|
|
मूल को धुंधला करता है, और तीक्ष्ण विषय को शीर्ष पर कंपोज़िट करता है। इसके लिए
|
|
background-removal feature bundle इंस्टॉल होना आवश्यक है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Image file to process
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `intensity` (integer 1-100, default 50) - Blur intensity
|
|
- `feather` (integer 0-20, default 0) - Edge feathering radius
|
|
- `format` (string, default "png") - One of: png, webp
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'202':
|
|
description: Accepted for async processing. Track progress via SSE at /api/v1/jobs/{jobId}/progress.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
jobId:
|
|
type: string
|
|
async:
|
|
type: boolean
|
|
example: true
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'501':
|
|
description: Feature not installed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/FeatureNotInstalledError'
|
|
/api/v1/tools/image/barcode-generate:
|
|
post:
|
|
operationId: generateBarcode
|
|
tags:
|
|
- Tools
|
|
summary: बारकोड जनरेटर
|
|
description: टेक्स्ट से एक बारकोड image जनरेट करें। यह tool एक JSON body स्वीकार करता है, multipart नहीं।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- text
|
|
properties:
|
|
text:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 256
|
|
description: Text to encode in the barcode
|
|
type:
|
|
type: string
|
|
enum:
|
|
- code128
|
|
- ean13
|
|
- upca
|
|
- code39
|
|
- itf14
|
|
- datamatrix
|
|
default: code128
|
|
description: Barcode format
|
|
scale:
|
|
type: integer
|
|
minimum: 1
|
|
maximum: 8
|
|
default: 3
|
|
description: Image scale factor
|
|
includeText:
|
|
type: boolean
|
|
default: true
|
|
description: Whether to render the text below the barcode
|
|
responses:
|
|
'200':
|
|
description: Generated barcode
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/image/circle-crop:
|
|
post:
|
|
operationId: circleCrop
|
|
tags:
|
|
- Tools
|
|
summary: सर्कल क्रॉप
|
|
description: एक image को पारदर्शी कोनों, वैकल्पिक बॉर्डर, और समायोज्य ज़ूम/ऑफ़सेट के साथ एक केंद्रित सर्कल में क्रॉप करें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Image file to process
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `zoom` (number 1-5, default 1) - Zoom factor (>=1 crops tighter)
|
|
- `offsetX` (number 0-1, default 0.5) - Horizontal center position
|
|
- `offsetY` (number 0-1, default 0.5) - Vertical center position
|
|
- `borderWidth` (integer 0-200, default 0) - Border width in pixels
|
|
- `borderColor` (string, default "#ffffff") - Border hex color
|
|
- `background` (string, default "transparent") - "transparent" or a hex color for corners
|
|
- `outputSize` (integer 16-4096, optional) - Final square dimension in pixels
|
|
responses:
|
|
'200':
|
|
description: Processed image
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/image/rounded-crop:
|
|
post:
|
|
operationId: roundedCrop
|
|
tags:
|
|
- Tools
|
|
summary: Rounded crop
|
|
description: Crop an image to a rounded square or squircle with transparent corners, optional border, and adjustable zoom/offset.
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Image file to process
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `shape` (string, default "rounded-square") - "rounded-square" or "squircle"
|
|
- `cornerRadius` (number 0-50, default 25) - Corner radius as a percent of the shorter side (rounded-square only)
|
|
- `zoom` (number 1-5, default 1) - Zoom factor (>=1 crops tighter)
|
|
- `offsetX` (number 0-1, default 0.5) - Horizontal center position
|
|
- `offsetY` (number 0-1, default 0.5) - Vertical center position
|
|
- `borderWidth` (integer 0-200, default 0) - Border width in pixels
|
|
- `borderColor` (string, default "#ffffff") - Border hex color
|
|
- `background` (string, default "transparent") - "transparent" or a hex color for corners
|
|
- `outputSize` (integer 16-4096, optional) - Final square dimension in pixels
|
|
responses:
|
|
'200':
|
|
description: Processed image
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/image/duotone:
|
|
post:
|
|
operationId: duotone
|
|
tags:
|
|
- Tools
|
|
summary: Duotone
|
|
description: कस्टम शैडो और हाइलाइट रंगों के साथ एक दो-रंग duotone प्रभाव लागू करें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Image file to process
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `shadow` (string, default "#1e3a8a") - Shadow hex color
|
|
- `highlight` (string, default "#fbbf24") - Highlight hex color
|
|
- `intensity` (integer 0-100, default 100) - Effect intensity (0 = original, 100 = full duotone)
|
|
responses:
|
|
'200':
|
|
description: Processed image
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/image/image-pad:
|
|
post:
|
|
operationId: imagePad
|
|
tags:
|
|
- Tools
|
|
summary: image पैड
|
|
description: एक image को एक ठोस रंग, पारदर्शी, या धुंधले बैकग्राउंड के साथ एक लक्ष्य आस्पेक्ट अनुपात में पैड करें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Image file to process
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `target` (string, default "1:1") - One of: 16:9, 9:16, 1:1, 4:3, 3:4, custom
|
|
- `ratioW` (integer 1-100, default 1) - Custom ratio width (when target is custom)
|
|
- `ratioH` (integer 1-100, default 1) - Custom ratio height (when target is custom)
|
|
- `background` (string, default "color") - One of: color, transparent, blur
|
|
- `color` (string, default "#ffffff") - Background hex color (when background is color)
|
|
- `padding` (integer 0-50, default 0) - Extra padding as percentage of canvas
|
|
responses:
|
|
'200':
|
|
description: Processed image
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/image/pixelate:
|
|
post:
|
|
operationId: pixelate
|
|
tags:
|
|
- Tools
|
|
summary: Pixelate
|
|
description: पूरी image या किसी विशिष्ट आयताकार क्षेत्र पर एक पिक्सेलेशन प्रभाव लागू करें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Image file to process
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `blockSize` (integer 2-128, default 12) - Pixel block size
|
|
- `region` (object, optional) - Restrict pixelation to a rectangle:
|
|
- `left` (integer >= 0) - Left offset in pixels
|
|
- `top` (integer >= 0) - Top offset in pixels
|
|
- `width` (integer >= 1) - Region width in pixels
|
|
- `height` (integer >= 1) - Region height in pixels
|
|
responses:
|
|
'200':
|
|
description: Processed image
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/image/vignette:
|
|
post:
|
|
operationId: vignette
|
|
tags:
|
|
- Tools
|
|
summary: Vignette
|
|
description: समायोज्य ताकत, रंग, त्रिज्या, कोमलता, गोलाई, और केंद्र स्थिति के साथ एक vignette प्रभाव जोड़ें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Image file to process
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `strength` (number 0.1-1, default 0.5) - Vignette opacity
|
|
- `color` (string, default "#000000") - Vignette hex color
|
|
- `radius` (integer 0-100, default 70) - Outer radius as percentage of half-diagonal
|
|
- `softness` (integer 0-100, default 50) - Feather softness (higher = more gradual)
|
|
- `roundness` (integer 0-100, default 100) - 100 = circle, 0 = ellipse matching image aspect ratio
|
|
- `centerX` (integer 0-100, default 50) - Horizontal center position as percentage
|
|
- `centerY` (integer 0-100, default 50) - Vertical center position as percentage
|
|
responses:
|
|
'200':
|
|
description: Processed image
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/image/gif-webp:
|
|
post:
|
|
operationId: gifWebp
|
|
tags:
|
|
- Tools
|
|
summary: GIF/WebP कन्वर्टर
|
|
description: एनिमेटेड GIF को WebP में और इसके विपरीत बदलें, सभी फ़्रेम संरक्षित करते हुए। केवल .gif और .webp inputs स्वीकार करता है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: GIF or WebP file to convert
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `quality` (integer 1-100, default 80) - Output quality for WebP encoding
|
|
- `lossless` (boolean, default false) - Use lossless WebP compression
|
|
- `resizePercent` (integer 10-100, default 100) - Scale the output by percentage
|
|
responses:
|
|
'200':
|
|
description: Converted animation
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/image/histogram:
|
|
post:
|
|
operationId: histogram
|
|
tags:
|
|
- Tools
|
|
summary: Histogram
|
|
description: |
|
|
एक image से एक RGB histogram चार्ट जनरेट करें। response JSON में
|
|
एक PNG histogram image के साथ per-channel आंकड़े और raw 256-bin histogram डेटा
|
|
लौटाता है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Image file to analyze
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `scale` (string, default "linear") - One of: linear, log
|
|
responses:
|
|
'200':
|
|
description: Histogram image and channel statistics
|
|
content:
|
|
application/json:
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/components/schemas/ToolResponse'
|
|
- type: object
|
|
properties:
|
|
bins:
|
|
type: object
|
|
description: Raw 256-bin histogram arrays per channel
|
|
properties:
|
|
r:
|
|
type: array
|
|
items:
|
|
type: integer
|
|
g:
|
|
type: array
|
|
items:
|
|
type: integer
|
|
b:
|
|
type: array
|
|
items:
|
|
type: integer
|
|
lum:
|
|
type: array
|
|
items:
|
|
type: integer
|
|
stats:
|
|
type: object
|
|
description: Per-channel statistics
|
|
properties:
|
|
r:
|
|
type: object
|
|
properties:
|
|
mean:
|
|
type: integer
|
|
median:
|
|
type: integer
|
|
stdev:
|
|
type: number
|
|
g:
|
|
type: object
|
|
properties:
|
|
mean:
|
|
type: integer
|
|
median:
|
|
type: integer
|
|
stdev:
|
|
type: number
|
|
b:
|
|
type: object
|
|
properties:
|
|
mean:
|
|
type: integer
|
|
median:
|
|
type: integer
|
|
stdev:
|
|
type: number
|
|
lum:
|
|
type: object
|
|
properties:
|
|
mean:
|
|
type: integer
|
|
median:
|
|
type: integer
|
|
stdev:
|
|
type: number
|
|
mean:
|
|
type: object
|
|
description: Backward-compatible mean values
|
|
properties:
|
|
r:
|
|
type: integer
|
|
g:
|
|
type: integer
|
|
b:
|
|
type: integer
|
|
max:
|
|
type: object
|
|
description: Backward-compatible max bin values
|
|
properties:
|
|
r:
|
|
type: integer
|
|
g:
|
|
type: integer
|
|
b:
|
|
type: integer
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/image/lqip-placeholder:
|
|
post:
|
|
operationId: lqipPlaceholder
|
|
tags:
|
|
- Tools
|
|
summary: LQIP प्लेसहोल्डर
|
|
description: |
|
|
एक छोटा निम्न-गुणवत्ता image प्लेसहोल्डर जनरेट करें। response JSON में एक छोटी image
|
|
फ़ाइल के साथ एक base64 data URI, उपयोग-के-लिए-तैयार HTML img टैग, और CSS
|
|
बैकग्राउंड स्निपेट लौटाता है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Image file to process
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `width` (integer 4-64, default 16) - Target width in pixels
|
|
- `blur` (number 0-20, default 2) - Blur radius (for blur strategy)
|
|
- `strategy` (string, default "blur") - One of: blur, pixelate, solid
|
|
- `format` (string, default "webp") - One of: webp, png, jpeg
|
|
- `quality` (integer 1-100, default 50) - Output quality
|
|
responses:
|
|
'200':
|
|
description: LQIP placeholder image and data URI
|
|
content:
|
|
application/json:
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/components/schemas/ToolResponse'
|
|
- type: object
|
|
properties:
|
|
dataUri:
|
|
type: string
|
|
description: Complete data URI (data:mime;base64,...)
|
|
width:
|
|
type: integer
|
|
description: Placeholder width in pixels
|
|
height:
|
|
type: integer
|
|
description: Placeholder height in pixels
|
|
bytes:
|
|
type: integer
|
|
description: Placeholder file size in bytes
|
|
strategy:
|
|
type: string
|
|
description: Strategy used (blur, pixelate, or solid)
|
|
html:
|
|
type: string
|
|
description: Ready-to-use HTML img tag
|
|
css:
|
|
type: string
|
|
description: Ready-to-use CSS background-image snippet
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/image/sprite-sheet:
|
|
post:
|
|
operationId: spriteSheet
|
|
tags:
|
|
- Tools
|
|
summary: Sprite sheet
|
|
description: |
|
|
कई images को एक ही sprite sheet ग्रिड में संयोजित करें। 2 से 64 images
|
|
स्वीकार करता है। प्रत्येक image को पहली image के आयामों से मेल खाने के लिए आकार बदला जाता है। sprite sheet image के साथ frame निर्देशांक
|
|
metadata लौटाता है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: array
|
|
items:
|
|
type: string
|
|
format: binary
|
|
description: Two or more image files to combine (max 64)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
JSON string with options:
|
|
- `columns` (integer 1-16, default 4) - Number of columns in the grid
|
|
- `padding` (integer 0-64, default 0) - Padding between cells in pixels
|
|
- `background` (string, default "#ffffff") - Background hex color
|
|
- `format` (string, default "png") - One of: png, webp, jpeg
|
|
- `quality` (integer 1-100, default 90) - Output quality
|
|
responses:
|
|
'200':
|
|
description: Sprite sheet image with frame metadata
|
|
content:
|
|
application/json:
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/components/schemas/ToolResponse'
|
|
- type: object
|
|
properties:
|
|
frames:
|
|
type: array
|
|
description: Per-frame coordinates in the sprite sheet
|
|
items:
|
|
type: object
|
|
properties:
|
|
index:
|
|
type: integer
|
|
left:
|
|
type: integer
|
|
top:
|
|
type: integer
|
|
width:
|
|
type: integer
|
|
height:
|
|
type: integer
|
|
cols:
|
|
type: integer
|
|
description: Number of columns
|
|
rows:
|
|
type: integer
|
|
description: Number of rows
|
|
cellWidth:
|
|
type: integer
|
|
description: Cell width in pixels
|
|
cellHeight:
|
|
type: integer
|
|
description: Cell height in pixels
|
|
canvasWidth:
|
|
type: integer
|
|
description: Total canvas width in pixels
|
|
canvasHeight:
|
|
type: integer
|
|
description: Total canvas height in pixels
|
|
'400':
|
|
description: Invalid input
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
/api/v1/tools/image/passport-photo:
|
|
post:
|
|
operationId: passportPhotoTool
|
|
tags:
|
|
- Tools
|
|
summary: Passport Photo
|
|
description: |
|
|
दो-चरण पासपोर्ट फ़ोटो फ़्लो के लिए मार्गदर्शन endpoint। एक image का विश्लेषण करने के लिए
|
|
`/api/v1/tools/image/passport-photo/analyze` का उपयोग करें,
|
|
फिर अंतिम पासपोर्ट फ़ोटो बनाने के लिए `/api/v1/tools/image/passport-photo/generate` का उपयोग करें। जब आवश्यक feature bundles इंस्टॉल हों तो यह बेस route एक 400 मार्गदर्शन त्रुटि लौटाता है, या जब वे गायब हों तो 501।
|
|
security:
|
|
- bearerAuth: []
|
|
responses:
|
|
'400':
|
|
description: Use the analyze or generate endpoint
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'501':
|
|
description: Feature not installed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/FeatureNotInstalledError'
|
|
/api/v1/tools/pdf/sign-pdf:
|
|
post:
|
|
operationId: signPdfTool
|
|
tags:
|
|
- Tools
|
|
summary: Sign PDF
|
|
description: सामान्यीकृत पृष्ठ प्लेसमेंट का उपयोग करके एक या अधिक signature PNG images को एक PDF पर स्टैंप करें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
- placements
|
|
- sig0
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: PDF file to sign
|
|
sig0:
|
|
type: string
|
|
format: binary
|
|
description: First signature image. Additional signatures use sig1, sig2, and so on.
|
|
placements:
|
|
type: string
|
|
description: JSON array of placement objects with sig, page, x, y, w, and h. Coordinates are page fractions with top-left origin.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
fileId:
|
|
type: string
|
|
description: Optional file library ID to save the signed result as a new version
|
|
responses:
|
|
'200':
|
|
description: Signed PDF
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'202':
|
|
description: Accepted for async processing. Track progress via SSE at /api/v1/jobs/{jobId}/progress.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
jobId:
|
|
type: string
|
|
async:
|
|
type: boolean
|
|
example: true
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/image/jpg-to-png:
|
|
post:
|
|
operationId: jpgToPngTool
|
|
tags:
|
|
- Tools
|
|
summary: JPG to PNG
|
|
description: |
|
|
JPG को PNG में बदलें
|
|
यह `convert` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: JPG to PNG input file (.jpg, .jpeg)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated JPG to PNG converter using the convert pipeline.
|
|
Optional settings: quality (number 1-100). The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'200':
|
|
description: Processed file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/image/png-to-jpg:
|
|
post:
|
|
operationId: pngToJpgTool
|
|
tags:
|
|
- Tools
|
|
summary: PNG to JPG
|
|
description: |
|
|
PNG को JPG में बदलें
|
|
यह `convert` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: PNG to JPG input file (.png)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated PNG to JPG converter using the convert pipeline.
|
|
Optional settings: quality (number 1-100). The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'200':
|
|
description: Processed file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/image/jpg-to-webp:
|
|
post:
|
|
operationId: jpgToWebpTool
|
|
tags:
|
|
- Tools
|
|
summary: JPG to WebP
|
|
description: |
|
|
JPG को WebP में बदलें
|
|
यह `convert` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: JPG to WebP input file (.jpg, .jpeg)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated JPG to WebP converter using the convert pipeline.
|
|
Optional settings: quality (number 1-100). The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'200':
|
|
description: Processed file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/image/png-to-webp:
|
|
post:
|
|
operationId: pngToWebpTool
|
|
tags:
|
|
- Tools
|
|
summary: PNG to WebP
|
|
description: |
|
|
PNG को WebP में बदलें
|
|
यह `convert` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: PNG to WebP input file (.png)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated PNG to WebP converter using the convert pipeline.
|
|
Optional settings: quality (number 1-100). The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'200':
|
|
description: Processed file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/image/webp-to-jpg:
|
|
post:
|
|
operationId: webpToJpgTool
|
|
tags:
|
|
- Tools
|
|
summary: WebP to JPG
|
|
description: |
|
|
WebP को JPG में बदलें
|
|
यह `convert` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: WebP to JPG input file (.webp)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated WebP to JPG converter using the convert pipeline.
|
|
Optional settings: quality (number 1-100). The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'200':
|
|
description: Processed file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/image/webp-to-png:
|
|
post:
|
|
operationId: webpToPngTool
|
|
tags:
|
|
- Tools
|
|
summary: WebP to PNG
|
|
description: |
|
|
WebP को PNG में बदलें
|
|
यह `convert` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: WebP to PNG input file (.webp)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated WebP to PNG converter using the convert pipeline.
|
|
Optional settings: quality (number 1-100). The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'200':
|
|
description: Processed file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/image/jpg-to-avif:
|
|
post:
|
|
operationId: jpgToAvifTool
|
|
tags:
|
|
- Tools
|
|
summary: JPG to AVIF
|
|
description: |
|
|
JPG को AVIF में बदलें
|
|
यह `convert` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: JPG to AVIF input file (.jpg, .jpeg)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated JPG to AVIF converter using the convert pipeline.
|
|
Optional settings: quality (number 1-100). The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'200':
|
|
description: Processed file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/image/png-to-avif:
|
|
post:
|
|
operationId: pngToAvifTool
|
|
tags:
|
|
- Tools
|
|
summary: PNG to AVIF
|
|
description: |
|
|
PNG को AVIF में बदलें
|
|
यह `convert` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: PNG to AVIF input file (.png)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated PNG to AVIF converter using the convert pipeline.
|
|
Optional settings: quality (number 1-100). The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'200':
|
|
description: Processed file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/image/webp-to-avif:
|
|
post:
|
|
operationId: webpToAvifTool
|
|
tags:
|
|
- Tools
|
|
summary: WebP to AVIF
|
|
description: |
|
|
WebP को AVIF में बदलें
|
|
यह `convert` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: WebP to AVIF input file (.webp)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated WebP to AVIF converter using the convert pipeline.
|
|
Optional settings: quality (number 1-100). The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'200':
|
|
description: Processed file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/image/heic-to-jpg:
|
|
post:
|
|
operationId: heicToJpgTool
|
|
tags:
|
|
- Tools
|
|
summary: HEIC to JPG
|
|
description: |
|
|
HEIC को JPG में बदलें
|
|
यह `convert` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: HEIC to JPG input file (.heic, .heif)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated HEIC to JPG converter using the convert pipeline.
|
|
Optional settings: quality (number 1-100). The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'200':
|
|
description: Processed file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/image/heic-to-png:
|
|
post:
|
|
operationId: heicToPngTool
|
|
tags:
|
|
- Tools
|
|
summary: HEIC to PNG
|
|
description: |
|
|
HEIC को PNG में बदलें
|
|
यह `convert` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: HEIC to PNG input file (.heic, .heif)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated HEIC to PNG converter using the convert pipeline.
|
|
Optional settings: quality (number 1-100). The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'200':
|
|
description: Processed file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/image/heic-to-avif:
|
|
post:
|
|
operationId: heicToAvifTool
|
|
tags:
|
|
- Tools
|
|
summary: HEIC to AVIF
|
|
description: |
|
|
HEIC को AVIF में बदलें
|
|
यह `convert` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: HEIC to AVIF input file (.heic, .heif)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated HEIC to AVIF converter using the convert pipeline.
|
|
Optional settings: quality (number 1-100). The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'200':
|
|
description: Processed file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/image/jpg-to-gif:
|
|
post:
|
|
operationId: jpgToGifTool
|
|
tags:
|
|
- Tools
|
|
summary: JPG to GIF
|
|
description: |
|
|
JPG को GIF में बदलें
|
|
यह `convert` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: JPG to GIF input file (.jpg, .jpeg)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated JPG to GIF converter using the convert pipeline.
|
|
Optional settings: quality (number 1-100). The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'200':
|
|
description: Processed file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/image/png-to-gif:
|
|
post:
|
|
operationId: pngToGifTool
|
|
tags:
|
|
- Tools
|
|
summary: PNG to GIF
|
|
description: |
|
|
PNG को GIF में बदलें
|
|
यह `convert` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: PNG to GIF input file (.png)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated PNG to GIF converter using the convert pipeline.
|
|
Optional settings: quality (number 1-100). The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'200':
|
|
description: Processed file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/image/gif-to-jpg:
|
|
post:
|
|
operationId: gifToJpgTool
|
|
tags:
|
|
- Tools
|
|
summary: GIF to JPG
|
|
description: |
|
|
GIF को JPG में बदलें
|
|
यह `convert` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: GIF to JPG input file (.gif)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated GIF to JPG converter using the convert pipeline.
|
|
Optional settings: quality (number 1-100). The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'200':
|
|
description: Processed file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/image/gif-to-png:
|
|
post:
|
|
operationId: gifToPngTool
|
|
tags:
|
|
- Tools
|
|
summary: GIF to PNG
|
|
description: |
|
|
GIF को PNG में बदलें
|
|
यह `convert` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: GIF to PNG input file (.gif)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated GIF to PNG converter using the convert pipeline.
|
|
Optional settings: quality (number 1-100). The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'200':
|
|
description: Processed file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/image/webp-to-gif:
|
|
post:
|
|
operationId: webpToGifTool
|
|
tags:
|
|
- Tools
|
|
summary: WebP to GIF
|
|
description: |
|
|
WebP को GIF में बदलें
|
|
यह `convert` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: WebP to GIF input file (.webp)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated WebP to GIF converter using the convert pipeline.
|
|
Optional settings: quality (number 1-100). The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'200':
|
|
description: Processed file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/image/jpg-to-tiff:
|
|
post:
|
|
operationId: jpgToTiffTool
|
|
tags:
|
|
- Tools
|
|
summary: JPG to TIFF
|
|
description: |
|
|
JPG को TIFF में बदलें
|
|
यह `convert` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: JPG to TIFF input file (.jpg, .jpeg)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated JPG to TIFF converter using the convert pipeline.
|
|
Optional settings: quality (number 1-100). The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'200':
|
|
description: Processed file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/image/png-to-tiff:
|
|
post:
|
|
operationId: pngToTiffTool
|
|
tags:
|
|
- Tools
|
|
summary: PNG to TIFF
|
|
description: |
|
|
PNG को TIFF में बदलें
|
|
यह `convert` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: PNG to TIFF input file (.png)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated PNG to TIFF converter using the convert pipeline.
|
|
Optional settings: quality (number 1-100). The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'200':
|
|
description: Processed file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/image/tiff-to-jpg:
|
|
post:
|
|
operationId: tiffToJpgTool
|
|
tags:
|
|
- Tools
|
|
summary: TIFF to JPG
|
|
description: |
|
|
TIFF को JPG में बदलें
|
|
यह `convert` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: TIFF to JPG input file (.tiff, .tif)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated TIFF to JPG converter using the convert pipeline.
|
|
Optional settings: quality (number 1-100). The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'200':
|
|
description: Processed file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/image/tiff-to-png:
|
|
post:
|
|
operationId: tiffToPngTool
|
|
tags:
|
|
- Tools
|
|
summary: TIFF to PNG
|
|
description: |
|
|
TIFF को PNG में बदलें
|
|
यह `convert` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: TIFF to PNG input file (.tiff, .tif)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated TIFF to PNG converter using the convert pipeline.
|
|
Optional settings: quality (number 1-100). The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'200':
|
|
description: Processed file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/image/psd-to-jpg:
|
|
post:
|
|
operationId: psdToJpgTool
|
|
tags:
|
|
- Tools
|
|
summary: PSD to JPG
|
|
description: |
|
|
PSD को JPG में बदलें
|
|
यह `convert` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: PSD to JPG input file (.psd)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated PSD to JPG converter using the convert pipeline.
|
|
Optional settings: quality (number 1-100). The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'200':
|
|
description: Processed file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/image/psd-to-png:
|
|
post:
|
|
operationId: psdToPngTool
|
|
tags:
|
|
- Tools
|
|
summary: PSD to PNG
|
|
description: |
|
|
PSD को PNG में बदलें
|
|
यह `convert` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: PSD to PNG input file (.psd)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated PSD to PNG converter using the convert pipeline.
|
|
Optional settings: quality (number 1-100). The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'200':
|
|
description: Processed file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/image/png-to-eps:
|
|
post:
|
|
operationId: pngToEpsTool
|
|
tags:
|
|
- Tools
|
|
summary: PNG to EPS
|
|
description: |
|
|
PNG को EPS में बदलें
|
|
यह `convert` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: PNG to EPS input file (.png)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated PNG to EPS converter using the convert pipeline.
|
|
Optional settings: quality (number 1-100). The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'200':
|
|
description: Processed file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/image/jpg-to-eps:
|
|
post:
|
|
operationId: jpgToEpsTool
|
|
tags:
|
|
- Tools
|
|
summary: JPG to EPS
|
|
description: |
|
|
JPG को EPS में बदलें
|
|
यह `convert` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: JPG to EPS input file (.jpg, .jpeg)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated JPG to EPS converter using the convert pipeline.
|
|
Optional settings: quality (number 1-100). The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'200':
|
|
description: Processed file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/image/eps-to-png:
|
|
post:
|
|
operationId: epsToPngTool
|
|
tags:
|
|
- Tools
|
|
summary: EPS to PNG
|
|
description: |
|
|
EPS को PNG में बदलें
|
|
यह `convert` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: EPS to PNG input file (.eps)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated EPS to PNG converter using the convert pipeline.
|
|
Optional settings: quality (number 1-100). The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'200':
|
|
description: Processed file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/image/eps-to-jpg:
|
|
post:
|
|
operationId: epsToJpgTool
|
|
tags:
|
|
- Tools
|
|
summary: EPS to JPG
|
|
description: |
|
|
EPS को JPG में बदलें
|
|
यह `convert` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: EPS to JPG input file (.eps)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated EPS to JPG converter using the convert pipeline.
|
|
Optional settings: quality (number 1-100). The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'200':
|
|
description: Processed file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/image/png-to-svg:
|
|
post:
|
|
operationId: pngToSvgTool
|
|
tags:
|
|
- Tools
|
|
summary: PNG to SVG
|
|
description: |
|
|
PNG को SVG में बदलें
|
|
यह `vectorize` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: PNG to SVG input file (.png)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated PNG to SVG converter using the vectorize pipeline.
|
|
The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'200':
|
|
description: Processed file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/image/jpg-to-svg:
|
|
post:
|
|
operationId: jpgToSvgTool
|
|
tags:
|
|
- Tools
|
|
summary: JPG to SVG
|
|
description: |
|
|
JPG को SVG में बदलें
|
|
यह `vectorize` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: JPG to SVG input file (.jpg, .jpeg)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated JPG to SVG converter using the vectorize pipeline.
|
|
The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'200':
|
|
description: Processed file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/image/tiff-to-svg:
|
|
post:
|
|
operationId: tiffToSvgTool
|
|
tags:
|
|
- Tools
|
|
summary: TIFF to SVG
|
|
description: |
|
|
TIFF को SVG में बदलें
|
|
यह `vectorize` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: TIFF to SVG input file (.tiff, .tif)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated TIFF to SVG converter using the vectorize pipeline.
|
|
The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'200':
|
|
description: Processed file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/image/psd-to-svg:
|
|
post:
|
|
operationId: psdToSvgTool
|
|
tags:
|
|
- Tools
|
|
summary: PSD to SVG
|
|
description: |
|
|
PSD को SVG में बदलें
|
|
यह `vectorize` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: PSD to SVG input file (.psd)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated PSD to SVG converter using the vectorize pipeline.
|
|
The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'200':
|
|
description: Processed file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/image/eps-to-svg:
|
|
post:
|
|
operationId: epsToSvgTool
|
|
tags:
|
|
- Tools
|
|
summary: EPS to SVG
|
|
description: |
|
|
EPS को SVG में बदलें
|
|
यह `vectorize` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: EPS to SVG input file (.eps)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated EPS to SVG converter using the vectorize pipeline.
|
|
The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'200':
|
|
description: Processed file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/image/svg-to-png:
|
|
post:
|
|
operationId: svgToPngTool
|
|
tags:
|
|
- Tools
|
|
summary: SVG to PNG
|
|
description: |
|
|
SVG को PNG में बदलें
|
|
यह `svg-to-raster` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: SVG to PNG input file (.svg, .svgz)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated SVG to PNG converter using the svg-to-raster pipeline.
|
|
Optional settings: quality (number 1-100). The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'200':
|
|
description: Processed file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/image/svg-to-jpg:
|
|
post:
|
|
operationId: svgToJpgTool
|
|
tags:
|
|
- Tools
|
|
summary: SVG to JPG
|
|
description: |
|
|
SVG को JPG में बदलें
|
|
यह `svg-to-raster` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: SVG to JPG input file (.svg, .svgz)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated SVG to JPG converter using the svg-to-raster pipeline.
|
|
Optional settings: quality (number 1-100). The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'200':
|
|
description: Processed file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/image/jpg-to-pdf:
|
|
post:
|
|
operationId: jpgToPdfTool
|
|
tags:
|
|
- Tools
|
|
summary: JPG to PDF
|
|
description: |
|
|
JPG को PDF में बदलें
|
|
यह `image-to-pdf` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: array
|
|
items:
|
|
type: string
|
|
format: binary
|
|
description: JPG to PDF input files (.jpg, .jpeg)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated JPG to PDF converter using the image-to-pdf pipeline.
|
|
Optional settings: pageSize (A4, Letter, A3, A5), orientation (portrait or landscape), margin, targetSize, and collate.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'200':
|
|
description: Processed file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/image/png-to-pdf:
|
|
post:
|
|
operationId: pngToPdfTool
|
|
tags:
|
|
- Tools
|
|
summary: PNG to PDF
|
|
description: |
|
|
PNG को PDF में बदलें
|
|
यह `image-to-pdf` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: array
|
|
items:
|
|
type: string
|
|
format: binary
|
|
description: PNG to PDF input files (.png)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated PNG to PDF converter using the image-to-pdf pipeline.
|
|
Optional settings: pageSize (A4, Letter, A3, A5), orientation (portrait or landscape), margin, targetSize, and collate.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'200':
|
|
description: Processed file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/image/heic-to-pdf:
|
|
post:
|
|
operationId: heicToPdfTool
|
|
tags:
|
|
- Tools
|
|
summary: HEIC to PDF
|
|
description: |
|
|
HEIC को PDF में बदलें
|
|
यह `image-to-pdf` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: array
|
|
items:
|
|
type: string
|
|
format: binary
|
|
description: HEIC to PDF input files (.heic, .heif)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated HEIC to PDF converter using the image-to-pdf pipeline.
|
|
Optional settings: pageSize (A4, Letter, A3, A5), orientation (portrait or landscape), margin, targetSize, and collate.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'200':
|
|
description: Processed file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/image/tiff-to-pdf:
|
|
post:
|
|
operationId: tiffToPdfTool
|
|
tags:
|
|
- Tools
|
|
summary: TIFF to PDF
|
|
description: |
|
|
TIFF को PDF में बदलें
|
|
यह `image-to-pdf` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: array
|
|
items:
|
|
type: string
|
|
format: binary
|
|
description: TIFF to PDF input files (.tiff, .tif)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated TIFF to PDF converter using the image-to-pdf pipeline.
|
|
Optional settings: pageSize (A4, Letter, A3, A5), orientation (portrait or landscape), margin, targetSize, and collate.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'200':
|
|
description: Processed file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/image/webp-to-pdf:
|
|
post:
|
|
operationId: webpToPdfTool
|
|
tags:
|
|
- Tools
|
|
summary: WebP to PDF
|
|
description: |
|
|
WebP को PDF में बदलें
|
|
यह `image-to-pdf` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: array
|
|
items:
|
|
type: string
|
|
format: binary
|
|
description: WebP to PDF input files (.webp)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated WebP to PDF converter using the image-to-pdf pipeline.
|
|
Optional settings: pageSize (A4, Letter, A3, A5), orientation (portrait or landscape), margin, targetSize, and collate.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'200':
|
|
description: Processed file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/image/gif-to-pdf:
|
|
post:
|
|
operationId: gifToPdfTool
|
|
tags:
|
|
- Tools
|
|
summary: GIF to PDF
|
|
description: |
|
|
GIF को PDF में बदलें
|
|
यह `image-to-pdf` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: array
|
|
items:
|
|
type: string
|
|
format: binary
|
|
description: GIF to PDF input files (.gif)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated GIF to PDF converter using the image-to-pdf pipeline.
|
|
Optional settings: pageSize (A4, Letter, A3, A5), orientation (portrait or landscape), margin, targetSize, and collate.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'200':
|
|
description: Processed file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/image/eps-to-pdf:
|
|
post:
|
|
operationId: epsToPdfTool
|
|
tags:
|
|
- Tools
|
|
summary: EPS to PDF
|
|
description: |
|
|
EPS को PDF में बदलें
|
|
यह `image-to-pdf` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: array
|
|
items:
|
|
type: string
|
|
format: binary
|
|
description: EPS to PDF input files (.eps)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated EPS to PDF converter using the image-to-pdf pipeline.
|
|
Optional settings: pageSize (A4, Letter, A3, A5), orientation (portrait or landscape), margin, targetSize, and collate.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'200':
|
|
description: Processed file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/pdf/pdf-to-jpg:
|
|
post:
|
|
operationId: pdfToJpgTool
|
|
tags:
|
|
- Tools
|
|
summary: PDF to JPG
|
|
description: |
|
|
PDF को JPG में बदलें
|
|
यह `pdf-to-image` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: PDF to JPG input file (.pdf)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated PDF to JPG converter using the pdf-to-image pipeline.
|
|
The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'200':
|
|
description: Processed file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/pdf/pdf-to-png:
|
|
post:
|
|
operationId: pdfToPngTool
|
|
tags:
|
|
- Tools
|
|
summary: PDF to PNG
|
|
description: |
|
|
PDF को PNG में बदलें
|
|
यह `pdf-to-image` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: PDF to PNG input file (.pdf)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated PDF to PNG converter using the pdf-to-image pipeline.
|
|
The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'200':
|
|
description: Processed file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/pdf/pdf-to-tiff:
|
|
post:
|
|
operationId: pdfToTiffTool
|
|
tags:
|
|
- Tools
|
|
summary: PDF to TIFF
|
|
description: |
|
|
PDF को TIFF में बदलें
|
|
यह `pdf-to-image` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: PDF to TIFF input file (.pdf)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated PDF to TIFF converter using the pdf-to-image pipeline.
|
|
The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'200':
|
|
description: Processed file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/video/mov-to-mp4:
|
|
post:
|
|
operationId: movToMp4Tool
|
|
tags:
|
|
- Tools
|
|
summary: MOV to MP4
|
|
description: |
|
|
MOV को MP4 में बदलें
|
|
यह `convert-video` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: MOV to MP4 input file (.mov)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated MOV to MP4 converter using the convert-video pipeline.
|
|
Optional settings: quality (high, balanced, small). The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'202':
|
|
description: Accepted for async processing. Track progress via SSE at /api/v1/jobs/{jobId}/progress.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
jobId:
|
|
type: string
|
|
async:
|
|
type: boolean
|
|
example: true
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/video/webm-to-mp4:
|
|
post:
|
|
operationId: webmToMp4Tool
|
|
tags:
|
|
- Tools
|
|
summary: WEBM to MP4
|
|
description: |
|
|
WEBM को MP4 में बदलें
|
|
यह `convert-video` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: WEBM to MP4 input file (.webm)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated WEBM to MP4 converter using the convert-video pipeline.
|
|
Optional settings: quality (high, balanced, small). The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'202':
|
|
description: Accepted for async processing. Track progress via SSE at /api/v1/jobs/{jobId}/progress.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
jobId:
|
|
type: string
|
|
async:
|
|
type: boolean
|
|
example: true
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/video/mkv-to-mp4:
|
|
post:
|
|
operationId: mkvToMp4Tool
|
|
tags:
|
|
- Tools
|
|
summary: MKV to MP4
|
|
description: |
|
|
MKV को MP4 में बदलें
|
|
यह `convert-video` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: MKV to MP4 input file (.mkv)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated MKV to MP4 converter using the convert-video pipeline.
|
|
Optional settings: quality (high, balanced, small). The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'202':
|
|
description: Accepted for async processing. Track progress via SSE at /api/v1/jobs/{jobId}/progress.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
jobId:
|
|
type: string
|
|
async:
|
|
type: boolean
|
|
example: true
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/video/avi-to-mp4:
|
|
post:
|
|
operationId: aviToMp4Tool
|
|
tags:
|
|
- Tools
|
|
summary: AVI to MP4
|
|
description: |
|
|
AVI को MP4 में बदलें
|
|
यह `convert-video` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: AVI to MP4 input file (.avi)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated AVI to MP4 converter using the convert-video pipeline.
|
|
Optional settings: quality (high, balanced, small). The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'202':
|
|
description: Accepted for async processing. Track progress via SSE at /api/v1/jobs/{jobId}/progress.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
jobId:
|
|
type: string
|
|
async:
|
|
type: boolean
|
|
example: true
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/video/mp4-to-mov:
|
|
post:
|
|
operationId: mp4ToMovTool
|
|
tags:
|
|
- Tools
|
|
summary: MP4 to MOV
|
|
description: |
|
|
MP4 को MOV में बदलें
|
|
यह `convert-video` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: MP4 to MOV input file (.mp4)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated MP4 to MOV converter using the convert-video pipeline.
|
|
Optional settings: quality (high, balanced, small). The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'202':
|
|
description: Accepted for async processing. Track progress via SSE at /api/v1/jobs/{jobId}/progress.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
jobId:
|
|
type: string
|
|
async:
|
|
type: boolean
|
|
example: true
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/video/mp4-to-webm:
|
|
post:
|
|
operationId: mp4ToWebmTool
|
|
tags:
|
|
- Tools
|
|
summary: MP4 to WEBM
|
|
description: |
|
|
MP4 को WEBM में बदलें
|
|
यह `convert-video` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: MP4 to WEBM input file (.mp4)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated MP4 to WEBM converter using the convert-video pipeline.
|
|
Optional settings: quality (high, balanced, small). The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'202':
|
|
description: Accepted for async processing. Track progress via SSE at /api/v1/jobs/{jobId}/progress.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
jobId:
|
|
type: string
|
|
async:
|
|
type: boolean
|
|
example: true
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/video/webm-to-mov:
|
|
post:
|
|
operationId: webmToMovTool
|
|
tags:
|
|
- Tools
|
|
summary: WEBM to MOV
|
|
description: |
|
|
WEBM को MOV में बदलें
|
|
यह `convert-video` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: WEBM to MOV input file (.webm)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated WEBM to MOV converter using the convert-video pipeline.
|
|
Optional settings: quality (high, balanced, small). The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'202':
|
|
description: Accepted for async processing. Track progress via SSE at /api/v1/jobs/{jobId}/progress.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
jobId:
|
|
type: string
|
|
async:
|
|
type: boolean
|
|
example: true
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/video/mkv-to-mov:
|
|
post:
|
|
operationId: mkvToMovTool
|
|
tags:
|
|
- Tools
|
|
summary: MKV to MOV
|
|
description: |
|
|
MKV को MOV में बदलें
|
|
यह `convert-video` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: MKV to MOV input file (.mkv)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated MKV to MOV converter using the convert-video pipeline.
|
|
Optional settings: quality (high, balanced, small). The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'202':
|
|
description: Accepted for async processing. Track progress via SSE at /api/v1/jobs/{jobId}/progress.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
jobId:
|
|
type: string
|
|
async:
|
|
type: boolean
|
|
example: true
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/video/avi-to-mov:
|
|
post:
|
|
operationId: aviToMovTool
|
|
tags:
|
|
- Tools
|
|
summary: AVI to MOV
|
|
description: |
|
|
AVI को MOV में बदलें
|
|
यह `convert-video` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: AVI to MOV input file (.avi)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated AVI to MOV converter using the convert-video pipeline.
|
|
Optional settings: quality (high, balanced, small). The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'202':
|
|
description: Accepted for async processing. Track progress via SSE at /api/v1/jobs/{jobId}/progress.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
jobId:
|
|
type: string
|
|
async:
|
|
type: boolean
|
|
example: true
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/video/mp4-to-avi:
|
|
post:
|
|
operationId: mp4ToAviTool
|
|
tags:
|
|
- Tools
|
|
summary: MP4 to AVI
|
|
description: |
|
|
MP4 को AVI में बदलें
|
|
यह `convert-video` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: MP4 to AVI input file (.mp4)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated MP4 to AVI converter using the convert-video pipeline.
|
|
Optional settings: quality (high, balanced, small). The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'202':
|
|
description: Accepted for async processing. Track progress via SSE at /api/v1/jobs/{jobId}/progress.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
jobId:
|
|
type: string
|
|
async:
|
|
type: boolean
|
|
example: true
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/video/mov-to-avi:
|
|
post:
|
|
operationId: movToAviTool
|
|
tags:
|
|
- Tools
|
|
summary: MOV to AVI
|
|
description: |
|
|
MOV को AVI में बदलें
|
|
यह `convert-video` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: MOV to AVI input file (.mov)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated MOV to AVI converter using the convert-video pipeline.
|
|
Optional settings: quality (high, balanced, small). The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'202':
|
|
description: Accepted for async processing. Track progress via SSE at /api/v1/jobs/{jobId}/progress.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
jobId:
|
|
type: string
|
|
async:
|
|
type: boolean
|
|
example: true
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/video/mkv-to-avi:
|
|
post:
|
|
operationId: mkvToAviTool
|
|
tags:
|
|
- Tools
|
|
summary: MKV to AVI
|
|
description: |
|
|
MKV को AVI में बदलें
|
|
यह `convert-video` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: MKV to AVI input file (.mkv)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated MKV to AVI converter using the convert-video pipeline.
|
|
Optional settings: quality (high, balanced, small). The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'202':
|
|
description: Accepted for async processing. Track progress via SSE at /api/v1/jobs/{jobId}/progress.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
jobId:
|
|
type: string
|
|
async:
|
|
type: boolean
|
|
example: true
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/video/avi-to-mkv:
|
|
post:
|
|
operationId: aviToMkvTool
|
|
tags:
|
|
- Tools
|
|
summary: AVI to MKV
|
|
description: |
|
|
AVI को MKV में बदलें
|
|
यह `convert-video` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: AVI to MKV input file (.avi)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated AVI to MKV converter using the convert-video pipeline.
|
|
Optional settings: quality (high, balanced, small). The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'202':
|
|
description: Accepted for async processing. Track progress via SSE at /api/v1/jobs/{jobId}/progress.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
jobId:
|
|
type: string
|
|
async:
|
|
type: boolean
|
|
example: true
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/video/mp4-to-gif:
|
|
post:
|
|
operationId: mp4ToGifTool
|
|
tags:
|
|
- Tools
|
|
summary: MP4 to GIF
|
|
description: |
|
|
MP4 को GIF में बदलें
|
|
यह `video-to-gif` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: MP4 to GIF input file (.mp4)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated MP4 to GIF converter using the video-to-gif pipeline.
|
|
The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'202':
|
|
description: Accepted for async processing. Track progress via SSE at /api/v1/jobs/{jobId}/progress.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
jobId:
|
|
type: string
|
|
async:
|
|
type: boolean
|
|
example: true
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/video/mov-to-gif:
|
|
post:
|
|
operationId: movToGifTool
|
|
tags:
|
|
- Tools
|
|
summary: MOV to GIF
|
|
description: |
|
|
MOV को GIF में बदलें
|
|
यह `video-to-gif` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: MOV to GIF input file (.mov)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated MOV to GIF converter using the video-to-gif pipeline.
|
|
The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'202':
|
|
description: Accepted for async processing. Track progress via SSE at /api/v1/jobs/{jobId}/progress.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
jobId:
|
|
type: string
|
|
async:
|
|
type: boolean
|
|
example: true
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/video/mkv-to-gif:
|
|
post:
|
|
operationId: mkvToGifTool
|
|
tags:
|
|
- Tools
|
|
summary: MKV to GIF
|
|
description: |
|
|
MKV को GIF में बदलें
|
|
यह `video-to-gif` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: MKV to GIF input file (.mkv)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated MKV to GIF converter using the video-to-gif pipeline.
|
|
The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'202':
|
|
description: Accepted for async processing. Track progress via SSE at /api/v1/jobs/{jobId}/progress.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
jobId:
|
|
type: string
|
|
async:
|
|
type: boolean
|
|
example: true
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/video/avi-to-gif:
|
|
post:
|
|
operationId: aviToGifTool
|
|
tags:
|
|
- Tools
|
|
summary: AVI to GIF
|
|
description: |
|
|
AVI को GIF में बदलें
|
|
यह `video-to-gif` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: AVI to GIF input file (.avi)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated AVI to GIF converter using the video-to-gif pipeline.
|
|
The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'202':
|
|
description: Accepted for async processing. Track progress via SSE at /api/v1/jobs/{jobId}/progress.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
jobId:
|
|
type: string
|
|
async:
|
|
type: boolean
|
|
example: true
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/video/gif-to-mp4:
|
|
post:
|
|
operationId: gifToMp4Tool
|
|
tags:
|
|
- Tools
|
|
summary: GIF to MP4
|
|
description: |
|
|
GIF को MP4 में बदलें
|
|
यह `gif-to-video` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: GIF to MP4 input file (.gif)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated GIF to MP4 converter using the gif-to-video pipeline.
|
|
The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'200':
|
|
description: Processed file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/video/gif-to-webm:
|
|
post:
|
|
operationId: gifToWebmTool
|
|
tags:
|
|
- Tools
|
|
summary: GIF to WEBM
|
|
description: |
|
|
GIF को WEBM में बदलें
|
|
यह `gif-to-video` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: GIF to WEBM input file (.gif)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated GIF to WEBM converter using the gif-to-video pipeline.
|
|
The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'200':
|
|
description: Processed file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/video/gif-to-mov:
|
|
post:
|
|
operationId: gifToMovTool
|
|
tags:
|
|
- Tools
|
|
summary: GIF to MOV
|
|
description: |
|
|
GIF को MOV में बदलें
|
|
यह `gif-to-video` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: GIF to MOV input file (.gif)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated GIF to MOV converter using the gif-to-video pipeline.
|
|
The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'200':
|
|
description: Processed file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/video/mp4-to-mp3:
|
|
post:
|
|
operationId: mp4ToMp3Tool
|
|
tags:
|
|
- Tools
|
|
summary: MP4 to MP3
|
|
description: |
|
|
MP4 को MP3 में बदलें
|
|
यह `extract-audio` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: MP4 to MP3 input file (.mp4)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated MP4 to MP3 converter using the extract-audio pipeline.
|
|
The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'200':
|
|
description: Processed file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/video/mov-to-mp3:
|
|
post:
|
|
operationId: movToMp3Tool
|
|
tags:
|
|
- Tools
|
|
summary: MOV to MP3
|
|
description: |
|
|
MOV को MP3 में बदलें
|
|
यह `extract-audio` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: MOV to MP3 input file (.mov)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated MOV to MP3 converter using the extract-audio pipeline.
|
|
The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'200':
|
|
description: Processed file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/video/mkv-to-mp3:
|
|
post:
|
|
operationId: mkvToMp3Tool
|
|
tags:
|
|
- Tools
|
|
summary: MKV to MP3
|
|
description: |
|
|
MKV को MP3 में बदलें
|
|
यह `extract-audio` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: MKV to MP3 input file (.mkv)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated MKV to MP3 converter using the extract-audio pipeline.
|
|
The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'200':
|
|
description: Processed file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/video/webm-to-mp3:
|
|
post:
|
|
operationId: webmToMp3Tool
|
|
tags:
|
|
- Tools
|
|
summary: WEBM to MP3
|
|
description: |
|
|
WEBM को MP3 में बदलें
|
|
यह `extract-audio` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: WEBM to MP3 input file (.webm)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated WEBM to MP3 converter using the extract-audio pipeline.
|
|
The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'200':
|
|
description: Processed file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/video/avi-to-mp3:
|
|
post:
|
|
operationId: aviToMp3Tool
|
|
tags:
|
|
- Tools
|
|
summary: AVI to MP3
|
|
description: |
|
|
AVI को MP3 में बदलें
|
|
यह `extract-audio` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: AVI to MP3 input file (.avi)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated AVI to MP3 converter using the extract-audio pipeline.
|
|
The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'200':
|
|
description: Processed file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/video/mp4-to-wav:
|
|
post:
|
|
operationId: mp4ToWavTool
|
|
tags:
|
|
- Tools
|
|
summary: MP4 to WAV
|
|
description: |
|
|
MP4 को WAV में बदलें
|
|
यह `extract-audio` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: MP4 to WAV input file (.mp4)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated MP4 to WAV converter using the extract-audio pipeline.
|
|
The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'200':
|
|
description: Processed file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/video/mov-to-wav:
|
|
post:
|
|
operationId: movToWavTool
|
|
tags:
|
|
- Tools
|
|
summary: MOV to WAV
|
|
description: |
|
|
MOV को WAV में बदलें
|
|
यह `extract-audio` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: MOV to WAV input file (.mov)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated MOV to WAV converter using the extract-audio pipeline.
|
|
The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'200':
|
|
description: Processed file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/video/mp4-to-ogg:
|
|
post:
|
|
operationId: mp4ToOggTool
|
|
tags:
|
|
- Tools
|
|
summary: MP4 to OGG
|
|
description: |
|
|
MP4 को OGG में बदलें
|
|
यह `extract-audio` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: MP4 to OGG input file (.mp4)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated MP4 to OGG converter using the extract-audio pipeline.
|
|
The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'200':
|
|
description: Processed file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/audio/m4a-to-mp3:
|
|
post:
|
|
operationId: m4aToMp3Tool
|
|
tags:
|
|
- Tools
|
|
summary: M4A to MP3
|
|
description: |
|
|
M4A को MP3 में बदलें
|
|
यह `convert-audio` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: M4A to MP3 input file (.m4a)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated M4A to MP3 converter using the convert-audio pipeline.
|
|
The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'200':
|
|
description: Processed file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/audio/m4a-to-wav:
|
|
post:
|
|
operationId: m4aToWavTool
|
|
tags:
|
|
- Tools
|
|
summary: M4A to WAV
|
|
description: |
|
|
M4A को WAV में बदलें
|
|
यह `convert-audio` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: M4A to WAV input file (.m4a)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated M4A to WAV converter using the convert-audio pipeline.
|
|
The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'200':
|
|
description: Processed file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/audio/aac-to-mp3:
|
|
post:
|
|
operationId: aacToMp3Tool
|
|
tags:
|
|
- Tools
|
|
summary: AAC to MP3
|
|
description: |
|
|
AAC को MP3 में बदलें
|
|
यह `convert-audio` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: AAC to MP3 input file (.aac)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated AAC to MP3 converter using the convert-audio pipeline.
|
|
The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'200':
|
|
description: Processed file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/audio/aac-to-wav:
|
|
post:
|
|
operationId: aacToWavTool
|
|
tags:
|
|
- Tools
|
|
summary: AAC to WAV
|
|
description: |
|
|
AAC को WAV में बदलें
|
|
यह `convert-audio` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: AAC to WAV input file (.aac)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated AAC to WAV converter using the convert-audio pipeline.
|
|
The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'200':
|
|
description: Processed file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/audio/aac-to-flac:
|
|
post:
|
|
operationId: aacToFlacTool
|
|
tags:
|
|
- Tools
|
|
summary: AAC to FLAC
|
|
description: |
|
|
AAC को FLAC में बदलें
|
|
यह `convert-audio` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: AAC to FLAC input file (.aac)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated AAC to FLAC converter using the convert-audio pipeline.
|
|
The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'200':
|
|
description: Processed file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/audio/ogg-to-mp3:
|
|
post:
|
|
operationId: oggToMp3Tool
|
|
tags:
|
|
- Tools
|
|
summary: OGG to MP3
|
|
description: |
|
|
OGG को MP3 में बदलें
|
|
यह `convert-audio` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: OGG to MP3 input file (.ogg)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated OGG to MP3 converter using the convert-audio pipeline.
|
|
The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'200':
|
|
description: Processed file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/audio/ogg-to-wav:
|
|
post:
|
|
operationId: oggToWavTool
|
|
tags:
|
|
- Tools
|
|
summary: OGG to WAV
|
|
description: |
|
|
OGG को WAV में बदलें
|
|
यह `convert-audio` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: OGG to WAV input file (.ogg)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated OGG to WAV converter using the convert-audio pipeline.
|
|
The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'200':
|
|
description: Processed file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/audio/wav-to-mp3:
|
|
post:
|
|
operationId: wavToMp3Tool
|
|
tags:
|
|
- Tools
|
|
summary: WAV to MP3
|
|
description: |
|
|
WAV को MP3 में बदलें
|
|
यह `convert-audio` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: WAV to MP3 input file (.wav)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated WAV to MP3 converter using the convert-audio pipeline.
|
|
The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'200':
|
|
description: Processed file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/audio/mp3-to-wav:
|
|
post:
|
|
operationId: mp3ToWavTool
|
|
tags:
|
|
- Tools
|
|
summary: MP3 to WAV
|
|
description: |
|
|
MP3 को WAV में बदलें
|
|
यह `convert-audio` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: MP3 to WAV input file (.mp3)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated MP3 to WAV converter using the convert-audio pipeline.
|
|
The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'200':
|
|
description: Processed file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/audio/flac-to-mp3:
|
|
post:
|
|
operationId: flacToMp3Tool
|
|
tags:
|
|
- Tools
|
|
summary: FLAC to MP3
|
|
description: |
|
|
FLAC को MP3 में बदलें
|
|
यह `convert-audio` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: FLAC to MP3 input file (.flac)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated FLAC to MP3 converter using the convert-audio pipeline.
|
|
The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'200':
|
|
description: Processed file
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolResponse'
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/tools/files/excel-to-csv:
|
|
post:
|
|
operationId: excelToCsvTool
|
|
tags:
|
|
- Tools
|
|
summary: Excel to CSV
|
|
description: |
|
|
Excel को CSV में बदलें
|
|
यह `convert-spreadsheet` द्वारा समर्थित एक समर्पित conversion preset endpoint है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: Excel to CSV input file (.xlsx, .xls)
|
|
settings:
|
|
type: string
|
|
description: |
|
|
Dedicated Excel to CSV converter using the convert-spreadsheet pipeline.
|
|
The output format is locked by the endpoint.
|
|
clientJobId:
|
|
type: string
|
|
description: Client-provided job ID for SSE progress tracking
|
|
responses:
|
|
'202':
|
|
description: Accepted for async processing. Track progress via SSE at /api/v1/jobs/{jobId}/progress.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
jobId:
|
|
type: string
|
|
async:
|
|
type: boolean
|
|
example: true
|
|
'400':
|
|
description: Invalid input or settings
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
'401':
|
|
description: Authentication required
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UnauthorizedError'
|
|
'422':
|
|
description: Processing failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/api/v1/readyz:
|
|
get:
|
|
operationId: readinessCheck
|
|
tags:
|
|
- System
|
|
summary: तैयारी जाँच
|
|
description: PostgreSQL, Redis, स्थानीय डिस्क स्थान, और कॉन्फ़िगर होने पर S3 पहुँच योग्यता की जाँच करता है। लोड बैलेंसर और ऑर्केस्ट्रेटर के लिए सार्वजनिक endpoint।
|
|
security: []
|
|
responses:
|
|
'200':
|
|
description: Instance is ready to receive traffic
|
|
'503':
|
|
description: Instance is not ready to receive traffic
|
|
/api/v1/jobs/{jobId}/cancel:
|
|
post:
|
|
operationId: cancelJob
|
|
tags:
|
|
- System
|
|
summary: job रद्द करें
|
|
description: एक queued या चल रहे job के लिए रद्दीकरण का अनुरोध करें।
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: jobId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: Cancellation request result
|
|
'401':
|
|
description: Authentication required
|
|
/api/v1/preferences:
|
|
get:
|
|
operationId: getPreferences
|
|
tags:
|
|
- Settings
|
|
summary: user प्राथमिकताएं प्राप्त करें
|
|
description: वर्तमान user का per-user प्राथमिकता मानचित्र लौटाएं।
|
|
security:
|
|
- bearerAuth: []
|
|
responses:
|
|
'200':
|
|
description: Preference map
|
|
'401':
|
|
description: Authentication required
|
|
put:
|
|
operationId: updatePreferences
|
|
tags:
|
|
- Settings
|
|
summary: user प्राथमिकताएं अपडेट करें
|
|
description: वर्तमान user के लिए एक या अधिक प्राथमिकताएं upsert करें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
responses:
|
|
'200':
|
|
description: Preferences updated
|
|
'400':
|
|
description: Invalid preferences body
|
|
'401':
|
|
description: Authentication required
|
|
/api/auth/mfa/enroll:
|
|
post:
|
|
operationId: enrollMfa
|
|
tags:
|
|
- Auth
|
|
summary: MFA नामांकन शुरू करें
|
|
description: वर्तमान user के लिए TOTP MFA नामांकन शुरू करें। इसके लिए enterprise MFA feature आवश्यक है।
|
|
security:
|
|
- bearerAuth: []
|
|
responses:
|
|
'200':
|
|
description: Enrollment URI and recovery codes
|
|
'401':
|
|
description: Authentication required
|
|
'403':
|
|
description: MFA feature not licensed
|
|
'409':
|
|
description: MFA enrollment already enabled or pending
|
|
/api/auth/mfa/verify:
|
|
post:
|
|
operationId: verifyMfaEnrollment
|
|
tags:
|
|
- Auth
|
|
summary: MFA नामांकन सत्यापित करें
|
|
description: एक TOTP code के साथ लंबित MFA नामांकन की पुष्टि करें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- code
|
|
properties:
|
|
code:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: MFA enabled
|
|
'400':
|
|
description: No pending enrollment or invalid body
|
|
'401':
|
|
description: Invalid TOTP code
|
|
/api/auth/mfa/complete:
|
|
post:
|
|
operationId: completeMfaLogin
|
|
tags:
|
|
- Auth
|
|
summary: MFA login पूर्ण करें
|
|
description: एक TOTP या recovery code के साथ एक लंबित login चुनौती पूर्ण करें।
|
|
security: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- mfaToken
|
|
- code
|
|
properties:
|
|
mfaToken:
|
|
type: string
|
|
code:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: Session token and user profile
|
|
'400':
|
|
description: Invalid request body
|
|
'401':
|
|
description: Invalid or expired MFA challenge
|
|
/api/auth/mfa/disable:
|
|
post:
|
|
operationId: disableMfa
|
|
tags:
|
|
- Auth
|
|
summary: MFA अक्षम करें
|
|
description: एक TOTP code सत्यापित करने के बाद वर्तमान user के लिए MFA अक्षम करें।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- code
|
|
properties:
|
|
code:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: MFA disabled
|
|
'400':
|
|
description: MFA is not enabled or body is invalid
|
|
'401':
|
|
description: Authentication required or invalid code
|
|
/api/auth/users/{id}/mfa/reset:
|
|
post:
|
|
operationId: resetUserMfa
|
|
tags:
|
|
- Auth
|
|
summary: user MFA रीसेट करें
|
|
description: |
|
|
Reset a user's MFA enrollment. Requires users:manage permission and authority over the target's current role, including hierarchy, permissions, tool access, and any API-key scope.
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: MFA reset
|
|
'401':
|
|
description: Authentication required
|
|
'403':
|
|
description: Insufficient permissions
|
|
'404':
|
|
description: User not found
|
|
/api/auth/oidc/login:
|
|
get:
|
|
operationId: oidcLogin
|
|
tags:
|
|
- Auth
|
|
summary: OIDC login शुरू करें
|
|
description: कॉन्फ़िगर किए गए OpenID Connect प्रदाता पर रीडायरेक्ट करें।
|
|
security: []
|
|
responses:
|
|
'302':
|
|
description: Redirect to identity provider
|
|
'500':
|
|
description: OIDC provider discovery failed
|
|
/api/auth/oidc/callback:
|
|
get:
|
|
operationId: oidcCallback
|
|
tags:
|
|
- Auth
|
|
summary: OIDC callback
|
|
description: OIDC authorization code फ़्लो पूर्ण करें और एक session बनाएं।
|
|
security: []
|
|
responses:
|
|
'302':
|
|
description: Redirect to the application
|
|
/api/auth/saml/metadata:
|
|
get:
|
|
operationId: samlMetadata
|
|
tags:
|
|
- Auth
|
|
summary: SAML metadata
|
|
description: SAML service provider metadata XML लौटाएं।
|
|
security: []
|
|
responses:
|
|
'200':
|
|
description: SAML metadata XML
|
|
/api/auth/saml/login:
|
|
get:
|
|
operationId: samlLogin
|
|
tags:
|
|
- Auth
|
|
summary: SAML login शुरू करें
|
|
description: कॉन्फ़िगर किए गए SAML identity provider पर रीडायरेक्ट करें।
|
|
security: []
|
|
responses:
|
|
'302':
|
|
description: Redirect to identity provider
|
|
/api/auth/saml/callback:
|
|
post:
|
|
operationId: samlCallback
|
|
tags:
|
|
- Auth
|
|
summary: SAML callback
|
|
description: SAML login के लिए assertion consumer service endpoint।
|
|
security: []
|
|
responses:
|
|
'302':
|
|
description: Redirect to the application
|
|
/api/v1/files/{id}/preview:
|
|
get:
|
|
operationId: getFilePreview
|
|
tags:
|
|
- Files
|
|
summary: फ़ाइल preview
|
|
description: एक सहेजी गई PDF, office दस्तावेज़, video, या audio फ़ाइल के लिए एक browser-संगत preview स्ट्रीम या जनरेट करें।
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: Preview binary
|
|
'400':
|
|
description: Preview not supported
|
|
'401':
|
|
description: Authentication required
|
|
'404':
|
|
description: File not found
|
|
'422':
|
|
description: Could not generate preview
|
|
/api/v1/preview/generate:
|
|
post:
|
|
operationId: generatePreview
|
|
tags:
|
|
- Files
|
|
summary: upload preview जनरेट करें
|
|
description: एक upload की गई मीडिया फ़ाइल के लिए एक ऑन-डिमांड MP4 या MP3 preview जनरेट करें।
|
|
security: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- file
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
responses:
|
|
'200':
|
|
description: Preview binary
|
|
'400':
|
|
description: Unsupported file type or missing file
|
|
'422':
|
|
description: Could not generate preview
|
|
/api/v1/admin/log-level:
|
|
get:
|
|
operationId: getLogLevel
|
|
tags:
|
|
- Admin
|
|
summary: log स्तर प्राप्त करें
|
|
description: वर्तमान runtime log स्तर पढ़ें। settings:write permission आवश्यक है।
|
|
security:
|
|
- bearerAuth: []
|
|
responses:
|
|
'200':
|
|
description: Current log level
|
|
'403':
|
|
description: Insufficient permissions
|
|
post:
|
|
operationId: setLogLevel
|
|
tags:
|
|
- Admin
|
|
summary: log स्तर सेट करें
|
|
description: runtime log स्तर बदलें। settings:write permission आवश्यक है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- level
|
|
properties:
|
|
level:
|
|
type: string
|
|
enum:
|
|
- fatal
|
|
- error
|
|
- warn
|
|
- info
|
|
- debug
|
|
- trace
|
|
- silent
|
|
responses:
|
|
'200':
|
|
description: New log level
|
|
'400':
|
|
description: Invalid log level
|
|
'403':
|
|
description: Insufficient permissions
|
|
/api/v1/metrics:
|
|
get:
|
|
operationId: getMetrics
|
|
tags:
|
|
- Admin
|
|
summary: Prometheus metrics
|
|
description: Prometheus metrics लौटाएं। system:health permission आवश्यक है।
|
|
security:
|
|
- bearerAuth: []
|
|
responses:
|
|
'200':
|
|
description: Prometheus text format
|
|
'403':
|
|
description: Insufficient permissions
|
|
/api/v1/admin/support-bundle:
|
|
get:
|
|
operationId: getSupportBundle
|
|
tags:
|
|
- Admin
|
|
summary: Support bundle
|
|
description: एक redacted diagnostic support bundle ZIP download करें। system:health permission आवश्यक है।
|
|
security:
|
|
- bearerAuth: []
|
|
responses:
|
|
'200':
|
|
description: Support bundle ZIP
|
|
'403':
|
|
description: Insufficient permissions
|
|
/api/v1/admin/usage:
|
|
get:
|
|
operationId: getAdminUsage
|
|
tags:
|
|
- Admin
|
|
summary: उपयोग डैशबोर्ड डेटा
|
|
description: स्थानीय उपयोग डैशबोर्ड डेटा लौटाएं। audit:read permission आवश्यक है।
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: days
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: Usage dashboard data
|
|
'400':
|
|
description: Invalid query parameters
|
|
'403':
|
|
description: Insufficient permissions
|
|
/api/v1/admin/backup-status:
|
|
get:
|
|
operationId: getBackupStatus
|
|
tags:
|
|
- Admin
|
|
summary: बैकअप स्थिति
|
|
description: अंतिम बैकअप metadata और ताज़गी लौटाएं। system:health permission आवश्यक है।
|
|
security:
|
|
- bearerAuth: []
|
|
responses:
|
|
'200':
|
|
description: Backup status
|
|
'403':
|
|
description: Insufficient permissions
|
|
post:
|
|
operationId: setBackupStatus
|
|
tags:
|
|
- Admin
|
|
summary: बैकअप स्थिति रिकॉर्ड करें
|
|
description: एक पूर्ण बैकअप रिकॉर्ड करें। system:health permission आवश्यक है।
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- type
|
|
properties:
|
|
type:
|
|
type: string
|
|
sizeBytes:
|
|
type: integer
|
|
notes:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: Backup status recorded
|
|
'400':
|
|
description: Invalid backup status
|
|
'403':
|
|
description: Insufficient permissions
|
|
/api/v1/admin/features/import:
|
|
post:
|
|
operationId: importFeatureBundle
|
|
tags:
|
|
- Features
|
|
summary: feature bundle आयात करें
|
|
description: |-
|
|
एक लीगेसी AI बंडल संग्रह आयात करें, या एक ऑफ़लाइन सटीक OCR आयात करें
|
|
इसके हस्ताक्षरित सूचकांक और मिलान प्लेटफ़ॉर्म संग्रह का उपयोग करके रिलीज़ करें। OCR
|
|
आयात समान हस्ताक्षर, हैश, अनुकूलता, निष्कर्षण करता है,
|
|
और smoke-test सटीक सहित ऑनलाइन इंस्टॉलेशन की जांच करता है
|
|
रनटाइम की 4 GiB प्रभावी-मेमोरी न्यूनतम। Fast Tesseract OCR नहीं है
|
|
इस आवश्यकता के अधीन. features:manage अनुमति की आवश्यकता है.
|
|
security:
|
|
- bearerAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
oneOf:
|
|
- required:
|
|
- file
|
|
- required:
|
|
- index
|
|
- archive
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: One legacy AI bundle archive; mutually exclusive with index/archive
|
|
index:
|
|
type: string
|
|
format: binary
|
|
description: Signed ocr-runtime-index.json from the SnapOtter release
|
|
archive:
|
|
type: string
|
|
format: binary
|
|
description: OCR runtime archive for the current Linux amd64 or arm64 target; must follow index
|
|
responses:
|
|
'200':
|
|
description: Bundle verified, imported, and activated
|
|
'400':
|
|
description: Invalid archive
|
|
'403':
|
|
description: Insufficient permissions
|
|
'409':
|
|
description: Import lock is held
|
|
'507':
|
|
description: Insufficient storage for the authenticated archive and expanded runtime
|
|
/api/v1/enterprise/scim/token:
|
|
post:
|
|
operationId: createScimToken
|
|
tags:
|
|
- Enterprise
|
|
summary: SCIM token बनाएं
|
|
description: |
|
|
Generate a global SCIM bearer token. Requires the enterprise SCIM feature and full effective built-in administrator authority; custom roles and API keys missing any administrator permission do not qualify. Legacy unversioned tokens are invalid and must be reissued as v2 tokens.
|
|
security:
|
|
- bearerAuth: []
|
|
responses:
|
|
'201':
|
|
description: SCIM token created
|
|
'403':
|
|
description: SCIM feature not licensed or insufficient permissions
|
|
delete:
|
|
operationId: revokeScimToken
|
|
tags:
|
|
- Enterprise
|
|
summary: SCIM token रद्द करें
|
|
description: |
|
|
Revoke the global SCIM bearer token. Requires the enterprise SCIM feature and full effective built-in administrator authority; custom roles and API keys missing any administrator permission do not qualify.
|
|
security:
|
|
- bearerAuth: []
|
|
responses:
|
|
'204':
|
|
description: SCIM token revoked
|
|
'403':
|
|
description: SCIM feature not licensed or insufficient permissions
|
|
/api/v1/scim/v2/ServiceProviderConfig:
|
|
get:
|
|
operationId: getScimServiceProviderConfig
|
|
tags:
|
|
- Enterprise
|
|
summary: SCIM service provider config
|
|
description: सार्वजनिक SCIM डिस्कवरी endpoint।
|
|
security: []
|
|
responses:
|
|
'200':
|
|
description: SCIM service provider capabilities
|
|
/api/v1/scim/v2/Schemas:
|
|
get:
|
|
operationId: getScimSchemas
|
|
tags:
|
|
- Enterprise
|
|
summary: SCIM schemas
|
|
description: सार्वजनिक SCIM schema डिस्कवरी endpoint।
|
|
security: []
|
|
responses:
|
|
'200':
|
|
description: SCIM schemas
|
|
/api/v1/scim/v2/ResourceTypes:
|
|
get:
|
|
operationId: getScimResourceTypes
|
|
tags:
|
|
- Enterprise
|
|
summary: SCIM resource types
|
|
description: सार्वजनिक SCIM resource type डिस्कवरी endpoint।
|
|
security: []
|
|
responses:
|
|
'200':
|
|
description: SCIM resource types
|
|
/api/v1/scim/v2/Users:
|
|
get:
|
|
operationId: listScimUsers
|
|
tags:
|
|
- Enterprise
|
|
summary: SCIM users सूचीबद्ध करें
|
|
description: SCIM users सूचीबद्ध करें। SCIM bearer token आवश्यक है।
|
|
responses:
|
|
'200':
|
|
description: SCIM user list
|
|
post:
|
|
operationId: createScimUser
|
|
tags:
|
|
- Enterprise
|
|
summary: SCIM user बनाएं
|
|
description: एक SCIM user बनाएं। SCIM bearer token आवश्यक है।
|
|
responses:
|
|
'201':
|
|
description: SCIM user created
|
|
/api/v1/scim/v2/Users/{id}:
|
|
get:
|
|
operationId: getScimUser
|
|
tags:
|
|
- Enterprise
|
|
summary: SCIM user प्राप्त करें
|
|
description: ID द्वारा एक SCIM user प्राप्त करें। SCIM bearer token आवश्यक है।
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: SCIM user
|
|
put:
|
|
operationId: updateScimUser
|
|
tags:
|
|
- Enterprise
|
|
summary: SCIM user अपडेट करें
|
|
description: ID द्वारा एक SCIM user को प्रतिस्थापित करें। SCIM bearer token आवश्यक है।
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: SCIM user updated
|
|
delete:
|
|
operationId: deleteScimUser
|
|
tags:
|
|
- Enterprise
|
|
summary: SCIM user हटाएं
|
|
description: ID द्वारा एक SCIM user को सॉफ़्ट निष्क्रिय करें। SCIM bearer token आवश्यक है।
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: SCIM user deactivated
|
|
/api/v1/scim/v2/Groups:
|
|
get:
|
|
operationId: listScimGroups
|
|
tags:
|
|
- Enterprise
|
|
summary: SCIM groups सूचीबद्ध करें
|
|
description: SCIM groups सूचीबद्ध करें। SCIM bearer token आवश्यक है।
|
|
responses:
|
|
'200':
|
|
description: SCIM group list
|
|
post:
|
|
operationId: createScimGroup
|
|
tags:
|
|
- Enterprise
|
|
summary: SCIM group बनाएं
|
|
description: एक SCIM group बनाएं। SCIM bearer token आवश्यक है।
|
|
responses:
|
|
'201':
|
|
description: SCIM group created
|
|
/api/v1/scim/v2/Groups/{id}:
|
|
get:
|
|
operationId: getScimGroup
|
|
tags:
|
|
- Enterprise
|
|
summary: SCIM group प्राप्त करें
|
|
description: ID द्वारा एक SCIM group प्राप्त करें। SCIM bearer token आवश्यक है।
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: SCIM group
|
|
put:
|
|
operationId: updateScimGroup
|
|
tags:
|
|
- Enterprise
|
|
summary: SCIM group अपडेट करें
|
|
description: ID द्वारा एक SCIM group को प्रतिस्थापित करें। SCIM bearer token आवश्यक है।
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: SCIM group updated
|
|
delete:
|
|
operationId: deleteScimGroup
|
|
tags:
|
|
- Enterprise
|
|
summary: SCIM group हटाएं
|
|
description: ID द्वारा एक SCIM group हटाएं। SCIM bearer token आवश्यक है।
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'204':
|
|
description: SCIM group deleted
|
|
/api/v1/enterprise/audit/export:
|
|
get:
|
|
operationId: exportAuditLog
|
|
tags:
|
|
- Enterprise
|
|
summary: audit log निर्यात करें
|
|
description: audit entries को JSON या CSV के रूप में निर्यात करें। audit:read permission और enterprise audit export feature आवश्यक है।
|
|
security:
|
|
- bearerAuth: []
|
|
responses:
|
|
'200':
|
|
description: Audit export
|
|
'400':
|
|
description: Invalid query parameters
|
|
'403':
|
|
description: Feature not licensed or insufficient permissions
|
|
/api/v1/enterprise/config/export:
|
|
get:
|
|
operationId: exportEnterpriseConfig
|
|
tags:
|
|
- Enterprise
|
|
summary: configuration निर्यात करें
|
|
description: |
|
|
संशोधित इंस्टेंस कॉन्फ़िगरेशन, कस्टम भूमिकाएँ और टीमें निर्यात करें। पूर्ण प्रभावी अंतर्निहित एडमिन अधिकार आवश्यक है; कस्टम भूमिकाएँ योग्य नहीं हैं और वे API कुंजियाँ भी योग्य नहीं हैं जिनमें एडमिन की कोई अनुमति अनुपलब्ध है।
|
|
security:
|
|
- bearerAuth: []
|
|
responses:
|
|
'200':
|
|
description: Configuration export
|
|
'403':
|
|
description: Feature not licensed or insufficient permissions
|
|
/api/v1/enterprise/config/import:
|
|
post:
|
|
operationId: importEnterpriseConfig
|
|
tags:
|
|
- Enterprise
|
|
summary: configuration आयात करें
|
|
description: |
|
|
इंस्टेंस कॉन्फ़िगरेशन, कस्टम भूमिकाएँ और टीमें आयात करें। पूर्ण प्रभावी अंतर्निहित एडमिन अधिकार आवश्यक है; कस्टम भूमिकाएँ योग्य नहीं हैं और वे API कुंजियाँ भी योग्य नहीं हैं जिनमें एडमिन की कोई अनुमति अनुपलब्ध है।
|
|
security:
|
|
- bearerAuth: []
|
|
responses:
|
|
'200':
|
|
description: Import result
|
|
'400':
|
|
description: Invalid import payload
|
|
'403':
|
|
description: Feature not licensed or insufficient permissions
|
|
/api/v1/enterprise/ip-allowlist:
|
|
get:
|
|
operationId: getIpAllowlist
|
|
tags:
|
|
- Enterprise
|
|
summary: IP allowlist प्राप्त करें
|
|
description: enterprise IP allowlist पढ़ें। security:manage permission आवश्यक है।
|
|
security:
|
|
- bearerAuth: []
|
|
responses:
|
|
'200':
|
|
description: IP allowlist
|
|
'403':
|
|
description: Feature not licensed or insufficient permissions
|
|
put:
|
|
operationId: updateIpAllowlist
|
|
tags:
|
|
- Enterprise
|
|
summary: IP allowlist अपडेट करें
|
|
description: सेल्फ-लॉकआउट रोकथाम के साथ CIDR allowlist entries अपडेट करें। security:manage permission आवश्यक है।
|
|
security:
|
|
- bearerAuth: []
|
|
responses:
|
|
'200':
|
|
description: IP allowlist updated
|
|
'400':
|
|
description: Invalid CIDR entries
|
|
'403':
|
|
description: Feature not licensed or insufficient permissions
|
|
/api/v1/enterprise/legal-hold:
|
|
get:
|
|
operationId: listLegalHolds
|
|
tags:
|
|
- Enterprise
|
|
summary: legal holds सूचीबद्ध करें
|
|
description: legal hold के अंतर्गत users और teams सूचीबद्ध करें। compliance:manage permission आवश्यक है।
|
|
security:
|
|
- bearerAuth: []
|
|
responses:
|
|
'200':
|
|
description: Legal holds
|
|
'403':
|
|
description: Feature not licensed or insufficient permissions
|
|
put:
|
|
operationId: updateLegalHold
|
|
tags:
|
|
- Enterprise
|
|
summary: legal hold अपडेट करें
|
|
description: एक user या team पर एक legal hold लागू करें या जारी करें। compliance:manage permission आवश्यक है।
|
|
security:
|
|
- bearerAuth: []
|
|
responses:
|
|
'200':
|
|
description: Legal hold updated
|
|
'400':
|
|
description: Invalid request body
|
|
'403':
|
|
description: Feature not licensed or insufficient permissions
|
|
/api/v1/enterprise/siem/config:
|
|
get:
|
|
operationId: getSiemConfig
|
|
tags:
|
|
- Enterprise
|
|
summary: SIEM config प्राप्त करें
|
|
description: SIEM forwarding configuration पढ़ें। webhooks:manage permission आवश्यक है।
|
|
security:
|
|
- bearerAuth: []
|
|
responses:
|
|
'200':
|
|
description: SIEM config
|
|
'403':
|
|
description: Feature not licensed or insufficient permissions
|
|
put:
|
|
operationId: updateSiemConfig
|
|
tags:
|
|
- Enterprise
|
|
summary: SIEM config अपडेट करें
|
|
description: SIEM forwarding configuration अपडेट करें। webhooks:manage permission आवश्यक है।
|
|
security:
|
|
- bearerAuth: []
|
|
responses:
|
|
'200':
|
|
description: SIEM config updated
|
|
'400':
|
|
description: Invalid SIEM config
|
|
'403':
|
|
description: Feature not licensed or insufficient permissions
|
|
/api/v1/enterprise/webhooks:
|
|
get:
|
|
operationId: listWebhooks
|
|
tags:
|
|
- Enterprise
|
|
summary: webhooks सूचीबद्ध करें
|
|
description: webhook destinations सूचीबद्ध करें। webhooks:manage permission आवश्यक है।
|
|
security:
|
|
- bearerAuth: []
|
|
responses:
|
|
'200':
|
|
description: Webhook destinations
|
|
'403':
|
|
description: Feature not licensed or insufficient permissions
|
|
post:
|
|
operationId: createWebhook
|
|
tags:
|
|
- Enterprise
|
|
summary: webhook बनाएं
|
|
description: एक webhook destination बनाएं। webhooks:manage permission आवश्यक है।
|
|
security:
|
|
- bearerAuth: []
|
|
responses:
|
|
'201':
|
|
description: Webhook created
|
|
'400':
|
|
description: Invalid webhook destination
|
|
'403':
|
|
description: Feature not licensed or insufficient permissions
|
|
/api/v1/enterprise/webhooks/{index}:
|
|
put:
|
|
operationId: updateWebhook
|
|
tags:
|
|
- Enterprise
|
|
summary: webhook अपडेट करें
|
|
description: index द्वारा एक webhook destination अपडेट करें। webhooks:manage permission आवश्यक है।
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: index
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: Webhook updated
|
|
'400':
|
|
description: Invalid index or destination
|
|
'404':
|
|
description: Webhook not found
|
|
delete:
|
|
operationId: deleteWebhook
|
|
tags:
|
|
- Enterprise
|
|
summary: webhook हटाएं
|
|
description: index द्वारा एक webhook destination हटाएं। webhooks:manage permission आवश्यक है।
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: index
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: Webhook deleted
|
|
'400':
|
|
description: Invalid index
|
|
'404':
|
|
description: Webhook not found
|
|
/api/v1/enterprise/webhooks/{index}/test:
|
|
post:
|
|
operationId: testWebhook
|
|
tags:
|
|
- Enterprise
|
|
summary: webhook परीक्षण करें
|
|
description: एक webhook destination पर एक परीक्षण payload भेजें। webhooks:manage permission आवश्यक है।
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: index
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: Test result
|
|
'400':
|
|
description: Invalid index
|
|
'404':
|
|
description: Webhook not found
|
|
/api/v1/enterprise/users/{id}/export:
|
|
post:
|
|
operationId: startGdprUserExport
|
|
tags:
|
|
- Enterprise
|
|
summary: GDPR निर्यात शुरू करें
|
|
description: एक GDPR user data निर्यात job शुरू करें। compliance:manage permission आवश्यक है।
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'202':
|
|
description: Export job started
|
|
'403':
|
|
description: Feature not licensed or insufficient permissions
|
|
'404':
|
|
description: User not found
|
|
/api/v1/enterprise/users/{id}/export/{jobId}:
|
|
get:
|
|
operationId: getGdprUserExport
|
|
tags:
|
|
- Enterprise
|
|
summary: GDPR निर्यात स्थिति प्राप्त करें
|
|
description: एक GDPR user निर्यात job के लिए स्थिति और download URL पढ़ें। compliance:manage permission आवश्यक है।
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: jobId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: Export status
|
|
'404':
|
|
description: Export job not found
|
|
/api/v1/enterprise/users/{id}/purge:
|
|
delete:
|
|
operationId: purgeEnterpriseUser
|
|
tags:
|
|
- Enterprise
|
|
summary: user data पर्ज करें
|
|
description: |
|
|
Permanently purge a user's data after explicit confirmation. Requires compliance:manage permission and authority over the target's current role, including hierarchy, permissions, tool access, and any API-key scope.
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: User purged
|
|
'400':
|
|
description: Confirmation required
|
|
'403':
|
|
description: Feature not licensed, insufficient permission, or target role beyond actor authority
|
|
'409':
|
|
description: User or team is under legal hold
|
|
/api/v1/enterprise/teams/{id}/purge:
|
|
delete:
|
|
operationId: purgeEnterpriseTeam
|
|
tags:
|
|
- Enterprise
|
|
summary: team data पर्ज करें
|
|
description: |
|
|
Permanently purge a team's data after explicit confirmation. Requires compliance:manage permission and authority over every member's current role, including hierarchy, permissions, tool access, and any API-key scope. A team containing the actor cannot be purged.
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: Team purged
|
|
'400':
|
|
description: Confirmation required
|
|
'403':
|
|
description: Feature not licensed, insufficient permission, or a member role beyond actor authority
|
|
'409':
|
|
description: Team is under legal hold
|
|
/api/v1/admin/version:
|
|
get:
|
|
operationId: getAdminVersion
|
|
tags:
|
|
- Admin
|
|
summary: संस्करण metadata
|
|
description: app संस्करण, build तिथि, Node संस्करण, और schema संस्करण पढ़ें। system:health permission और enterprise upgrade management feature आवश्यक है।
|
|
security:
|
|
- bearerAuth: []
|
|
responses:
|
|
'200':
|
|
description: Version metadata
|
|
'403':
|
|
description: Feature not licensed or insufficient permissions
|
|
/api/v1/admin/migrations/pending:
|
|
get:
|
|
operationId: getPendingMigrations
|
|
tags:
|
|
- Admin
|
|
summary: Migration स्थिति
|
|
description: पैकेज्ड migrations की लागू किए गए migrations से तुलना करें। system:health permission और enterprise upgrade management feature आवश्यक है।
|
|
security:
|
|
- bearerAuth: []
|
|
responses:
|
|
'200':
|
|
description: Migration status
|
|
'403':
|
|
description: Feature not licensed or insufficient permissions
|
|
/api/v1/admin/upgrade-check:
|
|
get:
|
|
operationId: getUpgradeCheck
|
|
tags:
|
|
- Admin
|
|
summary: Upgrade तैयारी
|
|
description: upgrade तैयारी जाँच चलाएं। system:health permission और enterprise upgrade management feature आवश्यक है।
|
|
security:
|
|
- bearerAuth: []
|
|
responses:
|
|
'200':
|
|
description: Upgrade readiness result
|
|
'403':
|
|
description: Feature not licensed or insufficient permissions
|
|
/llms.txt:
|
|
get:
|
|
operationId: getLlmsTxt
|
|
tags:
|
|
- System
|
|
summary: LLM सारांश
|
|
description: OpenAPI spec से जनरेट किया गया LLM-अनुकूल सादा-टेक्स्ट API सारांश।
|
|
security: []
|
|
responses:
|
|
'200':
|
|
description: Plain-text LLM summary
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/llms-full.txt:
|
|
get:
|
|
operationId: getLlmsFullTxt
|
|
tags:
|
|
- System
|
|
summary: पूर्ण LLM API डॉक्स
|
|
description: OpenAPI spec से जनरेट किया गया संपूर्ण सादा-टेक्स्ट API दस्तावेज़ीकरण।
|
|
security: []
|
|
responses:
|
|
'200':
|
|
description: Full plain-text API docs
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/api/v1/openapi.yaml:
|
|
get:
|
|
operationId: getOpenApiYaml
|
|
tags:
|
|
- System
|
|
summary: OpenAPI YAML
|
|
description: इस SnapOtter instance के लिए मशीन-पठनीय OpenAPI 3.1 विनिर्देश।
|
|
security: []
|
|
responses:
|
|
'200':
|
|
description: OpenAPI YAML document
|
|
content:
|
|
text/yaml:
|
|
schema:
|
|
type: string
|
|
/api/v1/tools/popular:
|
|
get:
|
|
operationId: getPopularTools
|
|
tags:
|
|
- Tools
|
|
summary: लोकप्रिय tools
|
|
description: 12 तक लोकप्रिय tool IDs लौटाएं, जब उपयोग डेटा विरल हो तो एक क्यूरेटेड डिफ़ॉल्ट सूची पर fallback करते हुए।
|
|
security: []
|
|
responses:
|
|
'200':
|
|
description: Popular tool IDs
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
tools:
|
|
type: array
|
|
items:
|
|
type: string
|
|
x-i18n:
|
|
locale: hi
|
|
generator: scripts/i18n/adapters/api-spec.mjs
|
|
entries:
|
|
info.description:
|
|
sourceHash: 0a7d56a602a9
|
|
provenance: machine
|
|
outputHash: 7932bff8e4ea
|
|
tags.Tools.description:
|
|
sourceHash: 9c71553d06df
|
|
provenance: machine
|
|
outputHash: be95104f8946
|
|
tags.Batch.description:
|
|
sourceHash: f9c99eda7653
|
|
provenance: machine
|
|
outputHash: d3d84a4d9068
|
|
tags.Pipelines.description:
|
|
sourceHash: 18d60931b26d
|
|
provenance: machine
|
|
outputHash: f695ced037c9
|
|
tags.Files.description:
|
|
sourceHash: c3b0e1590a61
|
|
provenance: machine
|
|
outputHash: e64314f7a579
|
|
tags.Auth.description:
|
|
sourceHash: 23f6a0fcf611
|
|
provenance: machine
|
|
outputHash: 2622d1ba57ba
|
|
tags.API Keys.description:
|
|
sourceHash: fb725a6a642a
|
|
provenance: machine
|
|
outputHash: 637265888a73
|
|
tags.Settings.description:
|
|
sourceHash: 25788b024fe2
|
|
provenance: machine
|
|
outputHash: a9c3bcb6e6a4
|
|
tags.Teams.description:
|
|
sourceHash: 750d92c8bb9f
|
|
provenance: machine
|
|
outputHash: eae0cbe0ad33
|
|
tags.Roles.description:
|
|
sourceHash: d031f589a884
|
|
provenance: machine
|
|
outputHash: c44a26d88b41
|
|
tags.Audit.description:
|
|
sourceHash: ed43b35a8636
|
|
provenance: machine
|
|
outputHash: 47a5ff499f07
|
|
tags.Analytics.description:
|
|
sourceHash: 36832a1b1df0
|
|
provenance: machine
|
|
outputHash: dbedffdf05d6
|
|
tags.Features.description:
|
|
sourceHash: a6cdd16968b5
|
|
provenance: machine
|
|
outputHash: 599e71acb44e
|
|
tags.Admin.description:
|
|
sourceHash: c19c4b4f68c4
|
|
provenance: machine
|
|
outputHash: f24bb8e3f484
|
|
tags.System.description:
|
|
sourceHash: 91561bc11296
|
|
provenance: machine
|
|
outputHash: 138133c8d0e7
|
|
tags.Enterprise.description:
|
|
sourceHash: 91b6b46b0dd1
|
|
provenance: machine
|
|
outputHash: 24e596d13d7d
|
|
paths./api/v1/health.get.summary:
|
|
sourceHash: 14290e1d0681
|
|
provenance: machine
|
|
outputHash: 4d34a47031a4
|
|
paths./api/v1/health.get.description:
|
|
sourceHash: 784e94eaa9df
|
|
provenance: machine
|
|
outputHash: b9d7303fa9d4
|
|
paths./api/v1/tools/image/resize.post.summary:
|
|
sourceHash: 6cc5dc48975b
|
|
provenance: machine
|
|
outputHash: 59d0c70a999b
|
|
paths./api/v1/tools/image/resize.post.description:
|
|
sourceHash: 3dd014df5258
|
|
provenance: machine
|
|
outputHash: 750b0c929322
|
|
paths./api/v1/tools/image/content-aware-resize.post.summary:
|
|
sourceHash: 7f86a6451d78
|
|
provenance: machine
|
|
outputHash: 794d60b869fc
|
|
paths./api/v1/tools/image/content-aware-resize.post.description:
|
|
sourceHash: fe6de26388f5
|
|
provenance: machine
|
|
outputHash: 36bea81a59ed
|
|
paths./api/v1/tools/image/crop.post.summary:
|
|
sourceHash: fb3dabcf0d02
|
|
provenance: machine
|
|
outputHash: 9be8b6b069b7
|
|
paths./api/v1/tools/image/crop.post.description:
|
|
sourceHash: db6c5c89d359
|
|
provenance: machine
|
|
outputHash: 1a3744e5270c
|
|
paths./api/v1/tools/image/rotate.post.summary:
|
|
sourceHash: 816edfdfe65e
|
|
provenance: machine
|
|
outputHash: d51d7a55f166
|
|
paths./api/v1/tools/image/rotate.post.description:
|
|
sourceHash: 5360b7d1a4c3
|
|
provenance: machine
|
|
outputHash: c04a1d8213dd
|
|
paths./api/v1/tools/image/convert.post.summary:
|
|
sourceHash: 6ccca094d767
|
|
provenance: machine
|
|
outputHash: dc4fa3323165
|
|
paths./api/v1/tools/image/convert.post.description:
|
|
sourceHash: 2298d8af460d
|
|
provenance: machine
|
|
outputHash: d7e8b01b4a25
|
|
paths./api/v1/tools/image/compress.post.summary:
|
|
sourceHash: a18573a37f49
|
|
provenance: machine
|
|
outputHash: e8fedf8f6e97
|
|
paths./api/v1/tools/image/compress.post.description:
|
|
sourceHash: 01f63e9e928a
|
|
provenance: machine
|
|
outputHash: 01549bece8b8
|
|
paths./api/v1/tools/image/strip-metadata.post.summary:
|
|
sourceHash: 1b49ff96cee6
|
|
provenance: machine
|
|
outputHash: 41b5c19430f5
|
|
paths./api/v1/tools/image/strip-metadata.post.description:
|
|
sourceHash: b5718bfd5335
|
|
provenance: machine
|
|
outputHash: fdc4a3d739f2
|
|
paths./api/v1/tools/image/border.post.summary:
|
|
sourceHash: 1d23e2771077
|
|
provenance: machine
|
|
outputHash: 06bad868483b
|
|
paths./api/v1/tools/image/border.post.description:
|
|
sourceHash: 6d48679c08cd
|
|
provenance: machine
|
|
outputHash: 93a0620c5b00
|
|
paths./api/v1/tools/image/beautify.post.summary:
|
|
sourceHash: 096b365107c5
|
|
provenance: machine
|
|
outputHash: f8b597a99a7e
|
|
paths./api/v1/tools/image/beautify.post.description:
|
|
sourceHash: 7db7fb58263f
|
|
provenance: machine
|
|
outputHash: 658f8ad4a967
|
|
paths./api/v1/tools/image/adjust-colors.post.summary:
|
|
sourceHash: a45b7d1e2535
|
|
provenance: machine
|
|
outputHash: 749a56543fe7
|
|
paths./api/v1/tools/image/adjust-colors.post.description:
|
|
sourceHash: 1fb36db32da7
|
|
provenance: machine
|
|
outputHash: 427d0c3e086b
|
|
paths./api/v1/tools/image/sharpening.post.summary:
|
|
sourceHash: d07b9f428bbf
|
|
provenance: machine
|
|
outputHash: 83f14218b71e
|
|
paths./api/v1/tools/image/sharpening.post.description:
|
|
sourceHash: 8080cda0610a
|
|
provenance: machine
|
|
outputHash: 883431d63bd0
|
|
paths./api/v1/tools/image/optimize-for-web.post.summary:
|
|
sourceHash: 54245d072fef
|
|
provenance: machine
|
|
outputHash: 98518d89dd2f
|
|
paths./api/v1/tools/image/optimize-for-web.post.description:
|
|
sourceHash: e846eaabbabc
|
|
provenance: machine
|
|
outputHash: d9f9b3050b55
|
|
paths./api/v1/tools/image/optimize-for-web/preview.post.summary:
|
|
sourceHash: f50e6149b56c
|
|
provenance: machine
|
|
outputHash: b1fdfcda40dc
|
|
paths./api/v1/tools/image/optimize-for-web/preview.post.description:
|
|
sourceHash: 10a427197f6e
|
|
provenance: machine
|
|
outputHash: 56a726fe9e56
|
|
paths./api/v1/tools/image/image-enhancement.post.summary:
|
|
sourceHash: 246a536c8207
|
|
provenance: machine
|
|
outputHash: ee3858796a05
|
|
paths./api/v1/tools/image/image-enhancement.post.description:
|
|
sourceHash: 17ec5e5e2b04
|
|
provenance: machine
|
|
outputHash: 99fe53b2b860
|
|
paths./api/v1/tools/image/image-enhancement/analyze.post.summary:
|
|
sourceHash: 2697cf8b079f
|
|
provenance: machine
|
|
outputHash: 702cfe304999
|
|
paths./api/v1/tools/image/image-enhancement/analyze.post.description:
|
|
sourceHash: 7712bfd40c3a
|
|
provenance: machine
|
|
outputHash: 8f35d82f5f66
|
|
paths./api/v1/tools/image/noise-removal.post.summary:
|
|
sourceHash: 9301fe47b563
|
|
provenance: machine
|
|
outputHash: 2809f811381a
|
|
paths./api/v1/tools/image/noise-removal.post.description:
|
|
sourceHash: e16aa743abcb
|
|
provenance: machine
|
|
outputHash: 231499aa1d85
|
|
paths./api/v1/tools/image/red-eye-removal.post.summary:
|
|
sourceHash: d9315c5a87b4
|
|
provenance: machine
|
|
outputHash: b775fec3f85e
|
|
paths./api/v1/tools/image/red-eye-removal.post.description:
|
|
sourceHash: 479c687988eb
|
|
provenance: machine
|
|
outputHash: c7a396f0939c
|
|
paths./api/v1/tools/image/restore-photo.post.summary:
|
|
sourceHash: 3ef425c0ba9b
|
|
provenance: machine
|
|
outputHash: a7b0282e0d45
|
|
paths./api/v1/tools/image/restore-photo.post.description:
|
|
sourceHash: 6e3b2de0372c
|
|
provenance: machine
|
|
outputHash: c1382481112e
|
|
paths./api/v1/tools/image/passport-photo/analyze.post.summary:
|
|
sourceHash: 0a3c3687ff5f
|
|
provenance: machine
|
|
outputHash: 299068c973af
|
|
paths./api/v1/tools/image/passport-photo/analyze.post.description:
|
|
sourceHash: 235c51cb497e
|
|
provenance: machine
|
|
outputHash: 2f7b7b1fb139
|
|
paths./api/v1/tools/image/passport-photo/generate.post.summary:
|
|
sourceHash: 029eecf0438e
|
|
provenance: machine
|
|
outputHash: c7270ff70c8c
|
|
paths./api/v1/tools/image/passport-photo/generate.post.description:
|
|
sourceHash: d0edd7c634d9
|
|
provenance: machine
|
|
outputHash: 178a2520cba0
|
|
paths./api/v1/tools/image/colorize.post.summary:
|
|
sourceHash: 34df56e96234
|
|
provenance: machine
|
|
outputHash: ea97e7e1ed6f
|
|
paths./api/v1/tools/image/colorize.post.description:
|
|
sourceHash: 04d7dc54396a
|
|
provenance: machine
|
|
outputHash: 6b81407f591e
|
|
paths./api/v1/tools/image/enhance-faces.post.summary:
|
|
sourceHash: 74f27131fec9
|
|
provenance: machine
|
|
outputHash: 8fa6e8d7e1f9
|
|
paths./api/v1/tools/image/enhance-faces.post.description:
|
|
sourceHash: beec2f7e8561
|
|
provenance: machine
|
|
outputHash: c8891b1d404d
|
|
paths./api/v1/tools/image/image-to-base64.post.summary:
|
|
sourceHash: 440737c09f0d
|
|
provenance: machine
|
|
outputHash: 440737c09f0d
|
|
paths./api/v1/tools/image/image-to-base64.post.description:
|
|
sourceHash: 02a80d960185
|
|
provenance: machine
|
|
outputHash: 7a186c4af97d
|
|
paths./api/v1/tools/image/watermark-text.post.summary:
|
|
sourceHash: dfef3d1052de
|
|
provenance: machine
|
|
outputHash: 96cd667be03b
|
|
paths./api/v1/tools/image/watermark-text.post.description:
|
|
sourceHash: 158e444c0a77
|
|
provenance: machine
|
|
outputHash: 4a68ca345cad
|
|
paths./api/v1/tools/image/text-overlay.post.summary:
|
|
sourceHash: 7311c0ffc340
|
|
provenance: machine
|
|
outputHash: 5641b73e0edc
|
|
paths./api/v1/tools/image/text-overlay.post.description:
|
|
sourceHash: e5dd74752a49
|
|
provenance: machine
|
|
outputHash: 022a13cdf084
|
|
paths./api/v1/tools/image/replace-color.post.summary:
|
|
sourceHash: 80e60e5fe0ed
|
|
provenance: machine
|
|
outputHash: c1d0804cf074
|
|
paths./api/v1/tools/image/replace-color.post.description:
|
|
sourceHash: cbafc4d168c3
|
|
provenance: machine
|
|
outputHash: d9f26dc4d805
|
|
paths./api/v1/tools/image/color-blindness.post.summary:
|
|
sourceHash: 1ab73f30893d
|
|
provenance: machine
|
|
outputHash: fcc2130f1085
|
|
paths./api/v1/tools/image/color-blindness.post.description:
|
|
sourceHash: 1e362d094237
|
|
provenance: machine
|
|
outputHash: 1acf7016b734
|
|
paths./api/v1/tools/image/gif-tools.post.summary:
|
|
sourceHash: 985d94d31548
|
|
provenance: machine
|
|
outputHash: 985d94d31548
|
|
paths./api/v1/tools/image/gif-tools.post.description:
|
|
sourceHash: fe7113c6fefd
|
|
provenance: machine
|
|
outputHash: 349c6dc63649
|
|
paths./api/v1/tools/image/gif-tools/info.post.summary:
|
|
sourceHash: e864c10b29f7
|
|
provenance: machine
|
|
outputHash: 2fa3752dacec
|
|
paths./api/v1/tools/image/gif-tools/info.post.description:
|
|
sourceHash: aaeba6b11dbf
|
|
provenance: machine
|
|
outputHash: cc184e37fdd2
|
|
paths./api/v1/tools/image/smart-crop.post.summary:
|
|
sourceHash: 890848540d35
|
|
provenance: machine
|
|
outputHash: 5131fb6c4520
|
|
paths./api/v1/tools/image/smart-crop.post.description:
|
|
sourceHash: 0f00f334ba29
|
|
provenance: machine
|
|
outputHash: 0da719170d96
|
|
paths./api/v1/tools/image/vectorize.post.summary:
|
|
sourceHash: ffa9db773ada
|
|
provenance: machine
|
|
outputHash: ffa9db773ada
|
|
paths./api/v1/tools/image/vectorize.post.description:
|
|
sourceHash: 3d5de38dc3f3
|
|
provenance: machine
|
|
outputHash: b09892faaa68
|
|
paths./api/v1/tools/image/svg-to-raster.post.summary:
|
|
sourceHash: bccef23ad06b
|
|
provenance: machine
|
|
outputHash: bccef23ad06b
|
|
paths./api/v1/tools/image/svg-to-raster.post.description:
|
|
sourceHash: 27a0b0dfe170
|
|
provenance: machine
|
|
outputHash: c37a5673b7d6
|
|
paths./api/v1/tools/image/svg-to-raster/batch.post.summary:
|
|
sourceHash: 340743c4e68b
|
|
provenance: machine
|
|
outputHash: 340743c4e68b
|
|
paths./api/v1/tools/image/svg-to-raster/batch.post.description:
|
|
sourceHash: a0069d315b7e
|
|
provenance: machine
|
|
outputHash: 7cfe1cd3d44f
|
|
paths./api/v1/tools/image/image-to-pdf.post.summary:
|
|
sourceHash: 966eba6e1412
|
|
provenance: machine
|
|
outputHash: 966eba6e1412
|
|
paths./api/v1/tools/image/image-to-pdf.post.description:
|
|
sourceHash: f5a0819f56f7
|
|
provenance: machine
|
|
outputHash: 308dd9d36fa0
|
|
paths./api/v1/tools/pdf/pdf-to-image.post.summary:
|
|
sourceHash: 4c3c2ae28b1f
|
|
provenance: machine
|
|
outputHash: 4c3c2ae28b1f
|
|
paths./api/v1/tools/pdf/pdf-to-image.post.description:
|
|
sourceHash: 4f0f5c643801
|
|
provenance: machine
|
|
outputHash: e5b67932423b
|
|
paths./api/v1/tools/pdf/pdf-to-image/info.post.summary:
|
|
sourceHash: d9398268b597
|
|
provenance: machine
|
|
outputHash: d8398f59cf9a
|
|
paths./api/v1/tools/pdf/pdf-to-image/info.post.description:
|
|
sourceHash: 9ace4aaa3978
|
|
provenance: machine
|
|
outputHash: 32b27f610fc8
|
|
paths./api/v1/tools/pdf/pdf-to-image/preview.post.summary:
|
|
sourceHash: 3bd369a401ba
|
|
provenance: machine
|
|
outputHash: cba6700192d5
|
|
paths./api/v1/tools/pdf/pdf-to-image/preview.post.description:
|
|
sourceHash: 90db92475b9a
|
|
provenance: machine
|
|
outputHash: e0bade9d4c65
|
|
paths./api/v1/tools/image/split.post.summary:
|
|
sourceHash: 6a45e35cf509
|
|
provenance: machine
|
|
outputHash: c2b0fc39ab15
|
|
paths./api/v1/tools/image/split.post.description:
|
|
sourceHash: d7d4988765b3
|
|
provenance: machine
|
|
outputHash: f51ca4eb8581
|
|
paths./api/v1/tools/image/bulk-rename.post.summary:
|
|
sourceHash: 5489fe2b69b0
|
|
provenance: machine
|
|
outputHash: 2188f8ff9515
|
|
paths./api/v1/tools/image/bulk-rename.post.description:
|
|
sourceHash: 093bf3688b13
|
|
provenance: machine
|
|
outputHash: 1d354dff1d47
|
|
paths./api/v1/tools/image/favicon.post.summary:
|
|
sourceHash: 7a587af97797
|
|
provenance: machine
|
|
outputHash: 835b6398c427
|
|
paths./api/v1/tools/image/favicon.post.description:
|
|
sourceHash: 5351a1c80471
|
|
provenance: machine
|
|
outputHash: 9e0fa696cd3f
|
|
paths./api/v1/tools/image/watermark-image.post.summary:
|
|
sourceHash: 577e5e431f77
|
|
provenance: machine
|
|
outputHash: 1de28d6ce030
|
|
paths./api/v1/tools/image/watermark-image.post.description:
|
|
sourceHash: 4e103b8a7d17
|
|
provenance: machine
|
|
outputHash: 77d869f92a14
|
|
paths./api/v1/tools/image/compose.post.summary:
|
|
sourceHash: 06718c2a3b98
|
|
provenance: machine
|
|
outputHash: 702c7d1bebc0
|
|
paths./api/v1/tools/image/compose.post.description:
|
|
sourceHash: d48d40e77edf
|
|
provenance: machine
|
|
outputHash: e3888fbeea0d
|
|
paths./api/v1/tools/image/meme-generator.post.summary:
|
|
sourceHash: a4e89614a5c1
|
|
provenance: machine
|
|
outputHash: 3d7306564fbb
|
|
paths./api/v1/tools/image/meme-generator.post.description:
|
|
sourceHash: 7aa04984be62
|
|
provenance: machine
|
|
outputHash: 1a8ecce2f8a6
|
|
paths./api/v1/meme-templates.get.summary:
|
|
sourceHash: fd3392277306
|
|
provenance: machine
|
|
outputHash: 81c34181969a
|
|
paths./api/v1/meme-templates.get.description:
|
|
sourceHash: a147e348597c
|
|
provenance: machine
|
|
outputHash: e67c5ff44292
|
|
paths./api/v1/meme-templates/full/{filename}.get.summary:
|
|
sourceHash: fd501704c913
|
|
provenance: machine
|
|
outputHash: e7f6acd2a987
|
|
paths./api/v1/meme-templates/full/{filename}.get.description:
|
|
sourceHash: 3bb962f4402c
|
|
provenance: machine
|
|
outputHash: 16b082f31259
|
|
paths./api/v1/meme-templates/thumbs/{filename}.get.summary:
|
|
sourceHash: d2102190f5a2
|
|
provenance: machine
|
|
outputHash: 73076e6f7c69
|
|
paths./api/v1/meme-templates/thumbs/{filename}.get.description:
|
|
sourceHash: 77c69805732d
|
|
provenance: machine
|
|
outputHash: a89f5fc38fe7
|
|
paths./api/v1/meme-templates/fonts/{filename}.get.summary:
|
|
sourceHash: 3627280f2609
|
|
provenance: machine
|
|
outputHash: 0b6d1aa895b9
|
|
paths./api/v1/meme-templates/fonts/{filename}.get.description:
|
|
sourceHash: 717c6764f472
|
|
provenance: machine
|
|
outputHash: 34ca7d7ffcb4
|
|
paths./api/v1/tools/image/compare.post.summary:
|
|
sourceHash: 46e3612ffee1
|
|
provenance: machine
|
|
outputHash: 01ad51f47729
|
|
paths./api/v1/tools/image/compare.post.description:
|
|
sourceHash: ac21fee13ecc
|
|
provenance: machine
|
|
outputHash: 07c7e893845d
|
|
paths./api/v1/tools/image/erase-object.post.summary:
|
|
sourceHash: 21f13ba2930d
|
|
provenance: machine
|
|
outputHash: bd6d0038fd6e
|
|
paths./api/v1/tools/image/erase-object.post.description:
|
|
sourceHash: 9d6614ed28c6
|
|
provenance: machine
|
|
outputHash: 72dc5e177592
|
|
paths./api/v1/tools/image/ai-canvas-expand.post.summary:
|
|
sourceHash: 990aeca723ff
|
|
provenance: machine
|
|
outputHash: 7ac3772fbb8d
|
|
paths./api/v1/tools/image/ai-canvas-expand.post.description:
|
|
sourceHash: 084de536af45
|
|
provenance: machine
|
|
outputHash: eea0731c9e30
|
|
paths./api/v1/tools/image/collage.post.summary:
|
|
sourceHash: 6e5e905e8c16
|
|
provenance: machine
|
|
outputHash: 2b4ccecc19e6
|
|
paths./api/v1/tools/image/collage.post.description:
|
|
sourceHash: fb0ba3d2cf44
|
|
provenance: machine
|
|
outputHash: bba96af0d2de
|
|
paths./api/v1/tools/image/stitch.post.summary:
|
|
sourceHash: d0e2b34fe22b
|
|
provenance: machine
|
|
outputHash: 009a4abcfd3d
|
|
paths./api/v1/tools/image/stitch.post.description:
|
|
sourceHash: 914837a5d232
|
|
provenance: machine
|
|
outputHash: f3385b1cc4c4
|
|
paths./api/v1/tools/image/remove-gif-background.post.summary:
|
|
sourceHash: a316267cf5d1
|
|
provenance: machine
|
|
outputHash: cf7d1350ac94
|
|
paths./api/v1/tools/image/remove-gif-background.post.description:
|
|
sourceHash: ef1d100f2345
|
|
provenance: machine
|
|
outputHash: 41787aa48bdc
|
|
paths./api/v1/tools/image/remove-background.post.summary:
|
|
sourceHash: a8d1ab54b32c
|
|
provenance: machine
|
|
outputHash: 9831149fa9c5
|
|
paths./api/v1/tools/image/remove-background.post.description:
|
|
sourceHash: 3bb193c0a2f9
|
|
provenance: machine
|
|
outputHash: 025ee2929583
|
|
paths./api/v1/tools/image/remove-background/effects.post.summary:
|
|
sourceHash: 2194d6947f3f
|
|
provenance: machine
|
|
outputHash: 166d21f31ad3
|
|
paths./api/v1/tools/image/remove-background/effects.post.description:
|
|
sourceHash: 1e2ab8e3b1ae
|
|
provenance: machine
|
|
outputHash: fb439272f9b1
|
|
paths./api/v1/tools/image/transparency-fixer.post.summary:
|
|
sourceHash: 0cf307cacb91
|
|
provenance: machine
|
|
outputHash: 6f35bc4717de
|
|
paths./api/v1/tools/image/transparency-fixer.post.description:
|
|
sourceHash: 67b2a3c1cb7b
|
|
provenance: machine
|
|
outputHash: 7e247e2ea68d
|
|
paths./api/v1/tools/image/upscale.post.summary:
|
|
sourceHash: ce44856d9e64
|
|
provenance: machine
|
|
outputHash: 297a60317d72
|
|
paths./api/v1/tools/image/upscale.post.description:
|
|
sourceHash: e603db60e711
|
|
provenance: machine
|
|
outputHash: 783ab886531b
|
|
paths./api/v1/tools/image/blur-faces.post.summary:
|
|
sourceHash: d9a7e1d9a145
|
|
provenance: machine
|
|
outputHash: 525f33cc2dc4
|
|
paths./api/v1/tools/image/blur-faces.post.description:
|
|
sourceHash: 28790ae08ac7
|
|
provenance: machine
|
|
outputHash: 02ce08fcf3c0
|
|
paths./api/v1/tools/image/ocr.post.summary:
|
|
sourceHash: 0b508f19963b
|
|
provenance: machine
|
|
outputHash: ec33b69b7a16
|
|
paths./api/v1/tools/image/ocr.post.description:
|
|
sourceHash: 7b74b30329a5
|
|
provenance: machine
|
|
outputHash: 22669457be65
|
|
paths./api/v1/tools/image/info.post.summary:
|
|
sourceHash: 1823e118aed5
|
|
provenance: machine
|
|
outputHash: 46d1f81de031
|
|
paths./api/v1/tools/image/info.post.description:
|
|
sourceHash: 196d7190f16c
|
|
provenance: machine
|
|
outputHash: c92202a43740
|
|
paths./api/v1/tools/image/color-palette.post.summary:
|
|
sourceHash: 81a9be1a8044
|
|
provenance: machine
|
|
outputHash: ead340514d98
|
|
paths./api/v1/tools/image/color-palette.post.description:
|
|
sourceHash: d34d5ff2ade7
|
|
provenance: machine
|
|
outputHash: 43456b63d355
|
|
paths./api/v1/tools/image/barcode-read.post.summary:
|
|
sourceHash: b51dcac65420
|
|
provenance: machine
|
|
outputHash: 91dd75a8cd43
|
|
paths./api/v1/tools/image/barcode-read.post.description:
|
|
sourceHash: ae952218a233
|
|
provenance: machine
|
|
outputHash: 031401ba2f1a
|
|
paths./api/v1/tools/image/find-duplicates.post.summary:
|
|
sourceHash: bd6e5d3e4d26
|
|
provenance: machine
|
|
outputHash: a28638c42bb8
|
|
paths./api/v1/tools/image/find-duplicates.post.description:
|
|
sourceHash: 61322792b4bd
|
|
provenance: machine
|
|
outputHash: c2fe51f6a6c9
|
|
paths./api/v1/tools/image/qr-generate.post.summary:
|
|
sourceHash: 799653bb4ee1
|
|
provenance: machine
|
|
outputHash: ccd20d230115
|
|
paths./api/v1/tools/image/qr-generate.post.description:
|
|
sourceHash: ad4154c7b555
|
|
provenance: machine
|
|
outputHash: a660861dcb7c
|
|
paths./api/v1/tools/image/html-to-image.post.summary:
|
|
sourceHash: d4dcd8d52cfd
|
|
provenance: machine
|
|
outputHash: 8b3729b69a3a
|
|
paths./api/v1/tools/image/html-to-image.post.description:
|
|
sourceHash: adb3e27eb0e6
|
|
provenance: machine
|
|
outputHash: ec800aa7b484
|
|
paths./api/v1/tools/image/strip-metadata/inspect.post.summary:
|
|
sourceHash: 26c48e56ad62
|
|
provenance: machine
|
|
outputHash: 48aa70fd467a
|
|
paths./api/v1/tools/image/strip-metadata/inspect.post.description:
|
|
sourceHash: a6a7d5c72088
|
|
provenance: machine
|
|
outputHash: 254f71c3eb6a
|
|
paths./api/v1/tools/image/edit-metadata.post.summary:
|
|
sourceHash: b2e22f0aa9d8
|
|
provenance: machine
|
|
outputHash: 97604b84efb4
|
|
paths./api/v1/tools/image/edit-metadata.post.description:
|
|
sourceHash: 70d277ec5566
|
|
provenance: machine
|
|
outputHash: 1e90d10bdc20
|
|
paths./api/v1/tools/image/edit-metadata/inspect.post.summary:
|
|
sourceHash: a9b31ad7470f
|
|
provenance: machine
|
|
outputHash: 6cfa72be8d51
|
|
paths./api/v1/tools/image/edit-metadata/inspect.post.description:
|
|
sourceHash: 71173fd89d89
|
|
provenance: machine
|
|
outputHash: ea67ac6d061a
|
|
paths./api/v1/tools/{section}/{toolId}/batch.post.summary:
|
|
sourceHash: c48b2b0a9212
|
|
provenance: machine
|
|
outputHash: 1dd9d448ece8
|
|
paths./api/v1/tools/{section}/{toolId}/batch.post.description:
|
|
sourceHash: e2ddfe55094d
|
|
provenance: machine
|
|
outputHash: 71cf5fa0ce4b
|
|
paths./api/v1/pipeline/execute.post.summary:
|
|
sourceHash: 6357b47fa7a9
|
|
provenance: machine
|
|
outputHash: 52be75afd358
|
|
paths./api/v1/pipeline/execute.post.description:
|
|
sourceHash: ca3c9eb4acf1
|
|
provenance: machine
|
|
outputHash: 614b02905c9c
|
|
paths./api/v1/pipeline/save.post.summary:
|
|
sourceHash: 8209ec3e0c9b
|
|
provenance: machine
|
|
outputHash: 347cab0978aa
|
|
paths./api/v1/pipeline/save.post.description:
|
|
sourceHash: a904ab4f3701
|
|
provenance: machine
|
|
outputHash: 6497745fc8ef
|
|
paths./api/v1/pipeline/list.get.summary:
|
|
sourceHash: c8d290eff4a7
|
|
provenance: machine
|
|
outputHash: 041beb47ab45
|
|
paths./api/v1/pipeline/list.get.description:
|
|
sourceHash: d11170073568
|
|
provenance: machine
|
|
outputHash: 86d50828854f
|
|
paths./api/v1/pipeline/{id}.delete.summary:
|
|
sourceHash: 0a798831c1be
|
|
provenance: machine
|
|
outputHash: 1d82c502b6fa
|
|
paths./api/v1/pipeline/{id}.delete.description:
|
|
sourceHash: e3b43bf6d73d
|
|
provenance: machine
|
|
outputHash: 1f7b2c19ad09
|
|
paths./api/v1/pipeline/tools.get.summary:
|
|
sourceHash: 79f28e6075f7
|
|
provenance: machine
|
|
outputHash: 58a067be9960
|
|
paths./api/v1/pipeline/tools.get.description:
|
|
sourceHash: 6f341cc670d3
|
|
provenance: machine
|
|
outputHash: 5f83e2a28665
|
|
paths./api/v1/pipeline/batch.post.summary:
|
|
sourceHash: 14abb819b562
|
|
provenance: machine
|
|
outputHash: 9f1fc5b5451f
|
|
paths./api/v1/pipeline/batch.post.description:
|
|
sourceHash: 0c7b90acb5d8
|
|
provenance: machine
|
|
outputHash: 16d1ca27cdb5
|
|
paths./api/v1/upload.post.summary:
|
|
sourceHash: 25d0eba68bdc
|
|
provenance: machine
|
|
outputHash: 9cf4af22f996
|
|
paths./api/v1/upload.post.description:
|
|
sourceHash: a9e18800407e
|
|
provenance: machine
|
|
outputHash: 2edde35d4b60
|
|
paths./api/v1/download/{jobId}/{filename}.get.summary:
|
|
sourceHash: 6246d8c07e4b
|
|
provenance: machine
|
|
outputHash: 4462ce0f3585
|
|
paths./api/v1/download/{jobId}/{filename}.get.description:
|
|
sourceHash: a09d603b069c
|
|
provenance: machine
|
|
outputHash: bcb512ed7314
|
|
paths./api/v1/preview.post.summary:
|
|
sourceHash: 8266fbd3ff72
|
|
provenance: machine
|
|
outputHash: 73b69c1cbe63
|
|
paths./api/v1/preview.post.description:
|
|
sourceHash: d5e04d49c594
|
|
provenance: machine
|
|
outputHash: 7838b336f290
|
|
paths./api/v1/files.get.summary:
|
|
sourceHash: aefb51ff8aaa
|
|
provenance: machine
|
|
outputHash: d6a15bf82950
|
|
paths./api/v1/files.get.description:
|
|
sourceHash: 45f45ad625ed
|
|
provenance: machine
|
|
outputHash: aa57c69afdab
|
|
paths./api/v1/files.delete.summary:
|
|
sourceHash: 179bb72a6deb
|
|
provenance: machine
|
|
outputHash: 741ae5ab08c1
|
|
paths./api/v1/files.delete.description:
|
|
sourceHash: 1bfaa5c376bb
|
|
provenance: machine
|
|
outputHash: db8e5f290798
|
|
paths./api/v1/files/upload.post.summary:
|
|
sourceHash: b94c597782ee
|
|
provenance: machine
|
|
outputHash: '733067327173'
|
|
paths./api/v1/files/upload.post.description:
|
|
sourceHash: 8a070581c1e5
|
|
provenance: machine
|
|
outputHash: 1f884bc8dcf2
|
|
paths./api/v1/files/save-result.post.summary:
|
|
sourceHash: c35e320d9164
|
|
provenance: machine
|
|
outputHash: 2e33fe402fff
|
|
paths./api/v1/files/save-result.post.description:
|
|
sourceHash: 3c434713031e
|
|
provenance: machine
|
|
outputHash: 9339a8918e7e
|
|
paths./api/v1/files/{id}.get.summary:
|
|
sourceHash: a09c1fb7e33a
|
|
provenance: machine
|
|
outputHash: 4edf99b7c794
|
|
paths./api/v1/files/{id}.get.description:
|
|
sourceHash: 8193066e23c5
|
|
provenance: machine
|
|
outputHash: 1d30cba4d1eb
|
|
paths./api/v1/files/{id}/download.get.summary:
|
|
sourceHash: c0043bd46394
|
|
provenance: machine
|
|
outputHash: 7b284debf93a
|
|
paths./api/v1/files/{id}/download.get.description:
|
|
sourceHash: 96df2a599e22
|
|
provenance: machine
|
|
outputHash: 7aa67e734d9a
|
|
paths./api/v1/files/{id}/thumbnail.get.summary:
|
|
sourceHash: 07714ad0c5f8
|
|
provenance: machine
|
|
outputHash: 5d7c42ffa3ee
|
|
paths./api/v1/files/{id}/thumbnail.get.description:
|
|
sourceHash: 9b04bbf75cba
|
|
provenance: machine
|
|
outputHash: 437ac82a24c5
|
|
paths./api/v1/fetch-urls.post.summary:
|
|
sourceHash: a00341e59161
|
|
provenance: machine
|
|
outputHash: cfa51782b8fd
|
|
paths./api/v1/fetch-urls.post.description:
|
|
sourceHash: ac474639261c
|
|
provenance: machine
|
|
outputHash: 5457e8f09c74
|
|
paths./api/v1/config/locale.get.summary:
|
|
sourceHash: 78de2255222d
|
|
provenance: machine
|
|
outputHash: e4da58d804d3
|
|
paths./api/v1/config/locale.get.description:
|
|
sourceHash: b9967e400d09
|
|
provenance: machine
|
|
outputHash: 9da985970506
|
|
paths./api/auth/login.post.summary:
|
|
sourceHash: c189840cf7e2
|
|
provenance: machine
|
|
outputHash: 6d19e795e22a
|
|
paths./api/auth/login.post.description:
|
|
sourceHash: 91ad9a828bf3
|
|
provenance: machine
|
|
outputHash: 8a0ee3c702d7
|
|
paths./api/auth/logout.post.summary:
|
|
sourceHash: 49616145514e
|
|
provenance: machine
|
|
outputHash: 119f6cee8ede
|
|
paths./api/auth/logout.post.description:
|
|
sourceHash: 0b9ae300808d
|
|
provenance: machine
|
|
outputHash: b5bba72ce730
|
|
paths./api/auth/session.get.summary:
|
|
sourceHash: f4f7376ca1ea
|
|
provenance: machine
|
|
outputHash: 145ff14781d3
|
|
paths./api/auth/session.get.description:
|
|
sourceHash: 2dad822c46ea
|
|
provenance: machine
|
|
outputHash: 8fdfd981a6bd
|
|
paths./api/auth/change-password.post.summary:
|
|
sourceHash: 3f9c991f63a9
|
|
provenance: machine
|
|
outputHash: 86961805986c
|
|
paths./api/auth/change-password.post.description:
|
|
sourceHash: 5190db8a04e7
|
|
provenance: machine
|
|
outputHash: 7ab55c1fc4da
|
|
paths./api/auth/users.get.summary:
|
|
sourceHash: '9029730603e0'
|
|
provenance: machine
|
|
outputHash: 83db7d55ae82
|
|
paths./api/auth/users.get.description:
|
|
sourceHash: 34d5a11733bd
|
|
provenance: machine
|
|
outputHash: ca30c0150768
|
|
paths./api/auth/register.post.summary:
|
|
sourceHash: f06da128c342
|
|
provenance: machine
|
|
outputHash: ee4fc9fef8a4
|
|
paths./api/auth/users/{id}.put.summary:
|
|
sourceHash: 602b8b1607b0
|
|
provenance: machine
|
|
outputHash: a80d88e0b5d2
|
|
paths./api/auth/users/{id}.delete.summary:
|
|
sourceHash: 58363fd94240
|
|
provenance: machine
|
|
outputHash: 83e2cc37a32d
|
|
paths./api/auth/users/{id}/reset-password.post.summary:
|
|
sourceHash: aae899c2d3ad
|
|
provenance: machine
|
|
outputHash: b42e554ee28d
|
|
paths./api/v1/api-keys.get.summary:
|
|
sourceHash: ad0527749f03
|
|
provenance: machine
|
|
outputHash: 3c2e0abf4f77
|
|
paths./api/v1/api-keys.get.description:
|
|
sourceHash: 470cee6220f0
|
|
provenance: machine
|
|
outputHash: 393fdffd1a7c
|
|
paths./api/v1/api-keys.post.summary:
|
|
sourceHash: eb136082215a
|
|
provenance: machine
|
|
outputHash: eb6dc930f22e
|
|
paths./api/v1/api-keys.post.description:
|
|
sourceHash: 7568aec4ab9b
|
|
provenance: machine
|
|
outputHash: 6baddb6dc532
|
|
paths./api/v1/api-keys/{id}.delete.summary:
|
|
sourceHash: 9ebde15b7f02
|
|
provenance: machine
|
|
outputHash: 7f65d798521b
|
|
paths./api/v1/api-keys/{id}.delete.description:
|
|
sourceHash: 46a57dbc68a5
|
|
provenance: machine
|
|
outputHash: f9680e957534
|
|
paths./api/v1/settings.get.summary:
|
|
sourceHash: 8530e17de153
|
|
provenance: machine
|
|
outputHash: c6fdce15d344
|
|
paths./api/v1/settings.get.description:
|
|
sourceHash: 57a4d7da3780
|
|
provenance: human
|
|
outputHash: 970c5299cc14
|
|
paths./api/v1/settings.put.summary:
|
|
sourceHash: 46ed69579c39
|
|
provenance: machine
|
|
outputHash: 072888ed4abc
|
|
paths./api/v1/settings.put.description:
|
|
sourceHash: 0ad5adfe3216
|
|
provenance: human
|
|
outputHash: aab6513a2028
|
|
paths./api/v1/settings/{key}.get.summary:
|
|
sourceHash: 186add054525
|
|
provenance: machine
|
|
outputHash: 4dde6655440e
|
|
paths./api/v1/settings/{key}.get.description:
|
|
sourceHash: ffbf8af128f0
|
|
provenance: human
|
|
outputHash: b6fec86f5f9e
|
|
paths./api/v1/teams.get.summary:
|
|
sourceHash: 863546c57b78
|
|
provenance: machine
|
|
outputHash: 40ff24b770d1
|
|
paths./api/v1/teams.get.description:
|
|
sourceHash: 88ce5170c6ed
|
|
provenance: machine
|
|
outputHash: 1031650c67de
|
|
paths./api/v1/teams.post.summary:
|
|
sourceHash: 00766ad4b096
|
|
provenance: machine
|
|
outputHash: 3ec3e0ef4035
|
|
paths./api/v1/teams.post.description:
|
|
sourceHash: 88ce5170c6ed
|
|
provenance: machine
|
|
outputHash: 1031650c67de
|
|
paths./api/v1/teams/{id}.put.summary:
|
|
sourceHash: c5dd33827a5b
|
|
provenance: machine
|
|
outputHash: 66ac0c31460d
|
|
paths./api/v1/teams/{id}.put.description:
|
|
sourceHash: 88ce5170c6ed
|
|
provenance: machine
|
|
outputHash: 1031650c67de
|
|
paths./api/v1/teams/{id}.delete.summary:
|
|
sourceHash: b51488367ba6
|
|
provenance: machine
|
|
outputHash: e00bc25760fe
|
|
paths./api/v1/teams/{id}.delete.description:
|
|
sourceHash: 88ce5170c6ed
|
|
provenance: machine
|
|
outputHash: 1031650c67de
|
|
paths./api/v1/config/auth.get.summary:
|
|
sourceHash: 13189298880a
|
|
provenance: machine
|
|
outputHash: 13189298880a
|
|
paths./api/v1/config/auth.get.description:
|
|
sourceHash: 404909083a24
|
|
provenance: machine
|
|
outputHash: de8bf378259a
|
|
paths./api/v1/jobs/{jobId}/progress.get.summary:
|
|
sourceHash: bcf19846aa43
|
|
provenance: machine
|
|
outputHash: 01ebf40a4868
|
|
paths./api/v1/jobs/{jobId}/progress.get.description:
|
|
sourceHash: 2df913c75d85
|
|
provenance: human
|
|
outputHash: 4fb6dcbff064
|
|
paths./api/v1/admin/health.get.summary:
|
|
sourceHash: 92f8575c9c94
|
|
provenance: machine
|
|
outputHash: ee07af770058
|
|
paths./api/v1/admin/health.get.description:
|
|
sourceHash: 4abbba893ea4
|
|
provenance: machine
|
|
outputHash: 6d54837ec00c
|
|
paths./api/v1/config/analytics.get.summary:
|
|
sourceHash: b7fdcf112830
|
|
provenance: machine
|
|
outputHash: 31eed73fca2e
|
|
paths./api/v1/config/analytics.get.description:
|
|
sourceHash: 2447c239373f
|
|
provenance: machine
|
|
outputHash: ffd67c0825da
|
|
paths./api/v1/features.get.summary:
|
|
sourceHash: e45ee3163f96
|
|
provenance: machine
|
|
outputHash: 68dec6bce163
|
|
paths./api/v1/features.get.description:
|
|
sourceHash: aa0b433ca9a9
|
|
provenance: machine
|
|
outputHash: 0f91db19ca62
|
|
paths./api/v1/admin/features/{bundleId}/install.post.summary:
|
|
sourceHash: bebc6f7ea7c3
|
|
provenance: machine
|
|
outputHash: d68ee36d3af2
|
|
paths./api/v1/admin/features/{bundleId}/install.post.description:
|
|
sourceHash: 6051af19be7e
|
|
provenance: machine
|
|
outputHash: 95d79a5eff08
|
|
paths./api/v1/admin/features/{bundleId}/uninstall.post.summary:
|
|
sourceHash: 160eaf179d4f
|
|
provenance: machine
|
|
outputHash: 390d1d713f51
|
|
paths./api/v1/admin/features/{bundleId}/uninstall.post.description:
|
|
sourceHash: 35bdb459a1a7
|
|
provenance: machine
|
|
outputHash: 4b64d0d0ad2c
|
|
paths./api/v1/admin/features/disk-usage.get.summary:
|
|
sourceHash: 54dc8991b9a7
|
|
provenance: machine
|
|
outputHash: 8604fc575f75
|
|
paths./api/v1/admin/features/disk-usage.get.description:
|
|
sourceHash: a78fac026ea3
|
|
provenance: machine
|
|
outputHash: d3b2fd722d81
|
|
paths./api/v1/audit-log.get.summary:
|
|
sourceHash: 05536545727c
|
|
provenance: machine
|
|
outputHash: 5190b46de074
|
|
paths./api/v1/audit-log.get.description:
|
|
sourceHash: b7950dcf7e49
|
|
provenance: machine
|
|
outputHash: 4dbe977755fd
|
|
paths./api/v1/roles.get.summary:
|
|
sourceHash: 833a75e86b93
|
|
provenance: machine
|
|
outputHash: 473042f065ff
|
|
paths./api/v1/roles.get.description:
|
|
sourceHash: 9ccdec8630d3
|
|
provenance: machine
|
|
outputHash: 246b89bd155d
|
|
paths./api/v1/roles.post.summary:
|
|
sourceHash: 6dd06b2529d4
|
|
provenance: machine
|
|
outputHash: 20b639a2c3dc
|
|
paths./api/v1/roles/{id}.put.summary:
|
|
sourceHash: 6c0cda1bc967
|
|
provenance: machine
|
|
outputHash: f823846ad3b6
|
|
paths./api/v1/roles/{id}.delete.summary:
|
|
sourceHash: d5a3ab01055a
|
|
provenance: machine
|
|
outputHash: f038a74fc497
|
|
paths./api/v1/tools/video/convert-video.post.summary:
|
|
sourceHash: b4defe1d6906
|
|
provenance: machine
|
|
outputHash: b4defe1d6906
|
|
paths./api/v1/tools/video/convert-video.post.description:
|
|
sourceHash: 00ab19fbffe4
|
|
provenance: machine
|
|
outputHash: 22b984df61fe
|
|
paths./api/v1/tools/video/compress-video.post.summary:
|
|
sourceHash: 8af3d4b27a4b
|
|
provenance: machine
|
|
outputHash: 8af3d4b27a4b
|
|
paths./api/v1/tools/video/compress-video.post.description:
|
|
sourceHash: 7f517e885483
|
|
provenance: machine
|
|
outputHash: fb45417f85b6
|
|
paths./api/v1/tools/video/trim-video.post.summary:
|
|
sourceHash: af6ed946e090
|
|
provenance: machine
|
|
outputHash: af6ed946e090
|
|
paths./api/v1/tools/video/trim-video.post.description:
|
|
sourceHash: c01dd24a19dd
|
|
provenance: machine
|
|
outputHash: 34ddcacb44d3
|
|
paths./api/v1/tools/video/mute-video.post.summary:
|
|
sourceHash: 48ed61cb4802
|
|
provenance: machine
|
|
outputHash: 48ed61cb4802
|
|
paths./api/v1/tools/video/mute-video.post.description:
|
|
sourceHash: 76898fc22f53
|
|
provenance: machine
|
|
outputHash: 312a673406dd
|
|
paths./api/v1/tools/video/video-to-gif.post.summary:
|
|
sourceHash: 4abd5ab74c35
|
|
provenance: machine
|
|
outputHash: 4abd5ab74c35
|
|
paths./api/v1/tools/video/video-to-gif.post.description:
|
|
sourceHash: d2d195459149
|
|
provenance: machine
|
|
outputHash: 5309e806f6ed
|
|
paths./api/v1/tools/video/resize-video.post.summary:
|
|
sourceHash: 99fde7cc129d
|
|
provenance: machine
|
|
outputHash: 99fde7cc129d
|
|
paths./api/v1/tools/video/resize-video.post.description:
|
|
sourceHash: ffe090ccf55b
|
|
provenance: machine
|
|
outputHash: c5573c3680a7
|
|
paths./api/v1/tools/video/crop-video.post.summary:
|
|
sourceHash: f042b21b17c0
|
|
provenance: machine
|
|
outputHash: f042b21b17c0
|
|
paths./api/v1/tools/video/crop-video.post.description:
|
|
sourceHash: a70528f0d600
|
|
provenance: machine
|
|
outputHash: 4339a8dbaf4d
|
|
paths./api/v1/tools/video/rotate-video.post.summary:
|
|
sourceHash: a1d5d2488fd5
|
|
provenance: machine
|
|
outputHash: a1d5d2488fd5
|
|
paths./api/v1/tools/video/rotate-video.post.description:
|
|
sourceHash: 0858085b737b
|
|
provenance: machine
|
|
outputHash: 479720c92aaa
|
|
paths./api/v1/tools/video/change-fps.post.summary:
|
|
sourceHash: bc48dbea9413
|
|
provenance: machine
|
|
outputHash: bc48dbea9413
|
|
paths./api/v1/tools/video/change-fps.post.description:
|
|
sourceHash: 20c9ae3f7c23
|
|
provenance: machine
|
|
outputHash: 329bbd56b2e2
|
|
paths./api/v1/tools/video/video-color.post.summary:
|
|
sourceHash: 6005cc99c426
|
|
provenance: machine
|
|
outputHash: 6005cc99c426
|
|
paths./api/v1/tools/video/video-color.post.description:
|
|
sourceHash: f8ce7dae4f04
|
|
provenance: machine
|
|
outputHash: d1383ec8bea8
|
|
paths./api/v1/tools/video/video-speed.post.summary:
|
|
sourceHash: 4439901f7d61
|
|
provenance: machine
|
|
outputHash: 4439901f7d61
|
|
paths./api/v1/tools/video/video-speed.post.description:
|
|
sourceHash: 7a4b64e60829
|
|
provenance: machine
|
|
outputHash: 957893db8485
|
|
paths./api/v1/tools/video/reverse-video.post.summary:
|
|
sourceHash: 4f0d7b5ea9ae
|
|
provenance: machine
|
|
outputHash: 4f0d7b5ea9ae
|
|
paths./api/v1/tools/video/reverse-video.post.description:
|
|
sourceHash: 77abcb48d823
|
|
provenance: machine
|
|
outputHash: 72ccf1d6d787
|
|
paths./api/v1/tools/video/video-loudnorm.post.summary:
|
|
sourceHash: e502f3536632
|
|
provenance: machine
|
|
outputHash: 33c8d84d4122
|
|
paths./api/v1/tools/video/video-loudnorm.post.description:
|
|
sourceHash: 019f6147f722
|
|
provenance: machine
|
|
outputHash: baaf441e5364
|
|
paths./api/v1/tools/video/aspect-pad.post.summary:
|
|
sourceHash: aa7c02eeacf1
|
|
provenance: machine
|
|
outputHash: aa7c02eeacf1
|
|
paths./api/v1/tools/video/aspect-pad.post.description:
|
|
sourceHash: 288b33cc62de
|
|
provenance: machine
|
|
outputHash: f6172fa75baf
|
|
paths./api/v1/tools/video/blur-pad.post.summary:
|
|
sourceHash: 84af9c217d52
|
|
provenance: machine
|
|
outputHash: 84af9c217d52
|
|
paths./api/v1/tools/video/blur-pad.post.description:
|
|
sourceHash: d49a3fab5e02
|
|
provenance: machine
|
|
outputHash: 21b22c2c090f
|
|
paths./api/v1/tools/video/watermark-video.post.summary:
|
|
sourceHash: bbbe197c46c5
|
|
provenance: machine
|
|
outputHash: bbbe197c46c5
|
|
paths./api/v1/tools/video/watermark-video.post.description:
|
|
sourceHash: d914078985d7
|
|
provenance: machine
|
|
outputHash: 3602c71cf05a
|
|
paths./api/v1/tools/video/stabilize-video.post.summary:
|
|
sourceHash: f76615a74aac
|
|
provenance: machine
|
|
outputHash: f76615a74aac
|
|
paths./api/v1/tools/video/stabilize-video.post.description:
|
|
sourceHash: 42e5e8a954ae
|
|
provenance: machine
|
|
outputHash: 60ac855cf2ad
|
|
paths./api/v1/tools/video/gif-to-video.post.summary:
|
|
sourceHash: 766d5d54badb
|
|
provenance: machine
|
|
outputHash: 766d5d54badb
|
|
paths./api/v1/tools/video/gif-to-video.post.description:
|
|
sourceHash: 22a13cbfe672
|
|
provenance: machine
|
|
outputHash: f0f11afe9fe0
|
|
paths./api/v1/tools/video/video-to-webp.post.summary:
|
|
sourceHash: 0c4028ecac61
|
|
provenance: machine
|
|
outputHash: 0c4028ecac61
|
|
paths./api/v1/tools/video/video-to-webp.post.description:
|
|
sourceHash: 48fa0306cbe8
|
|
provenance: machine
|
|
outputHash: 4152e2cc5aca
|
|
paths./api/v1/tools/video/video-to-frames.post.summary:
|
|
sourceHash: 8941a5926866
|
|
provenance: machine
|
|
outputHash: 8941a5926866
|
|
paths./api/v1/tools/video/video-to-frames.post.description:
|
|
sourceHash: 907e19fcf6a2
|
|
provenance: machine
|
|
outputHash: fbcb3799bdd2
|
|
paths./api/v1/tools/video/merge-videos.post.summary:
|
|
sourceHash: afbd2e62e1dd
|
|
provenance: machine
|
|
outputHash: afbd2e62e1dd
|
|
paths./api/v1/tools/video/merge-videos.post.description:
|
|
sourceHash: 30e77c05314f
|
|
provenance: machine
|
|
outputHash: 7c33a6df8fb2
|
|
paths./api/v1/tools/video/replace-audio.post.summary:
|
|
sourceHash: 0cd096774105
|
|
provenance: machine
|
|
outputHash: 0cd096774105
|
|
paths./api/v1/tools/video/replace-audio.post.description:
|
|
sourceHash: f9aef92c2ad2
|
|
provenance: machine
|
|
outputHash: 1b091fb4900d
|
|
paths./api/v1/tools/video/burn-subtitles.post.summary:
|
|
sourceHash: 53e23068613b
|
|
provenance: machine
|
|
outputHash: 53e23068613b
|
|
paths./api/v1/tools/video/burn-subtitles.post.description:
|
|
sourceHash: a501f3253970
|
|
provenance: machine
|
|
outputHash: 16865fc19aac
|
|
paths./api/v1/tools/video/embed-subtitles.post.summary:
|
|
sourceHash: 55a0c6104e9e
|
|
provenance: machine
|
|
outputHash: 55a0c6104e9e
|
|
paths./api/v1/tools/video/embed-subtitles.post.description:
|
|
sourceHash: 9ed219a50b61
|
|
provenance: machine
|
|
outputHash: 865ff6389a7b
|
|
paths./api/v1/tools/video/extract-subtitles.post.summary:
|
|
sourceHash: 0ae3dd9f7012
|
|
provenance: machine
|
|
outputHash: 0ae3dd9f7012
|
|
paths./api/v1/tools/video/extract-subtitles.post.description:
|
|
sourceHash: 4daf70632777
|
|
provenance: machine
|
|
outputHash: 7616ade2b457
|
|
paths./api/v1/tools/video/images-to-video.post.summary:
|
|
sourceHash: feb4b6d19902
|
|
provenance: machine
|
|
outputHash: feb4b6d19902
|
|
paths./api/v1/tools/video/images-to-video.post.description:
|
|
sourceHash: c7ec30bbfec8
|
|
provenance: machine
|
|
outputHash: 26f5c4730a52
|
|
paths./api/v1/tools/video/video-metadata.post.summary:
|
|
sourceHash: f2902a6112ff
|
|
provenance: machine
|
|
outputHash: f2902a6112ff
|
|
paths./api/v1/tools/video/video-metadata.post.description:
|
|
sourceHash: 25b0eb0d1f64
|
|
provenance: machine
|
|
outputHash: 18b0334db05f
|
|
paths./api/v1/tools/video/auto-subtitles.post.summary:
|
|
sourceHash: 61b5c42d8cd0
|
|
provenance: machine
|
|
outputHash: 61b5c42d8cd0
|
|
paths./api/v1/tools/video/auto-subtitles.post.description:
|
|
sourceHash: fe628b19b3dc
|
|
provenance: machine
|
|
outputHash: 772e6d6c7434
|
|
paths./api/v1/tools/video/extract-audio.post.summary:
|
|
sourceHash: ad7f2c51f215
|
|
provenance: machine
|
|
outputHash: ad7f2c51f215
|
|
paths./api/v1/tools/video/extract-audio.post.description:
|
|
sourceHash: 97425b1da99f
|
|
provenance: machine
|
|
outputHash: 183a1198e213
|
|
paths./api/v1/tools/audio/convert-audio.post.summary:
|
|
sourceHash: 295e4a5939e1
|
|
provenance: machine
|
|
outputHash: 295e4a5939e1
|
|
paths./api/v1/tools/audio/convert-audio.post.description:
|
|
sourceHash: db7c32326757
|
|
provenance: machine
|
|
outputHash: 797539eb5fc5
|
|
paths./api/v1/tools/audio/trim-audio.post.summary:
|
|
sourceHash: 6fdc83d79136
|
|
provenance: machine
|
|
outputHash: 6fdc83d79136
|
|
paths./api/v1/tools/audio/trim-audio.post.description:
|
|
sourceHash: 1150da04e398
|
|
provenance: machine
|
|
outputHash: a87649c1ff4c
|
|
paths./api/v1/tools/audio/volume-adjust.post.summary:
|
|
sourceHash: 04257764f127
|
|
provenance: machine
|
|
outputHash: e641de4d3102
|
|
paths./api/v1/tools/audio/volume-adjust.post.description:
|
|
sourceHash: 18308a469600
|
|
provenance: machine
|
|
outputHash: 3725fba4ee1a
|
|
paths./api/v1/tools/audio/normalize-audio.post.summary:
|
|
sourceHash: f5298327c322
|
|
provenance: machine
|
|
outputHash: f5298327c322
|
|
paths./api/v1/tools/audio/normalize-audio.post.description:
|
|
sourceHash: d9993db45ccb
|
|
provenance: machine
|
|
outputHash: b6e9465cb731
|
|
paths./api/v1/tools/audio/fade-audio.post.summary:
|
|
sourceHash: fc7e035a63d5
|
|
provenance: machine
|
|
outputHash: fc7e035a63d5
|
|
paths./api/v1/tools/audio/fade-audio.post.description:
|
|
sourceHash: a85ba1a120e5
|
|
provenance: machine
|
|
outputHash: 684833613c30
|
|
paths./api/v1/tools/audio/reverse-audio.post.summary:
|
|
sourceHash: b2eddae3a717
|
|
provenance: machine
|
|
outputHash: b2eddae3a717
|
|
paths./api/v1/tools/audio/reverse-audio.post.description:
|
|
sourceHash: 218f9b33f5eb
|
|
provenance: machine
|
|
outputHash: 59a06fa5ba97
|
|
paths./api/v1/tools/audio/audio-speed.post.summary:
|
|
sourceHash: aee2a47692bd
|
|
provenance: machine
|
|
outputHash: aee2a47692bd
|
|
paths./api/v1/tools/audio/audio-speed.post.description:
|
|
sourceHash: 51fe7745adbd
|
|
provenance: machine
|
|
outputHash: 2830bf1dad87
|
|
paths./api/v1/tools/audio/pitch-shift.post.summary:
|
|
sourceHash: b26d4482b076
|
|
provenance: machine
|
|
outputHash: b26d4482b076
|
|
paths./api/v1/tools/audio/pitch-shift.post.description:
|
|
sourceHash: 04cf48eca03e
|
|
provenance: machine
|
|
outputHash: 80469464a1bd
|
|
paths./api/v1/tools/audio/audio-channels.post.summary:
|
|
sourceHash: 409c74651939
|
|
provenance: machine
|
|
outputHash: 409c74651939
|
|
paths./api/v1/tools/audio/audio-channels.post.description:
|
|
sourceHash: 0974271a6730
|
|
provenance: machine
|
|
outputHash: 5ba3c3c917ef
|
|
paths./api/v1/tools/audio/silence-removal.post.summary:
|
|
sourceHash: dc27812cd572
|
|
provenance: machine
|
|
outputHash: dc27812cd572
|
|
paths./api/v1/tools/audio/silence-removal.post.description:
|
|
sourceHash: 29d4e890a62d
|
|
provenance: machine
|
|
outputHash: 8879fed98cc4
|
|
paths./api/v1/tools/audio/noise-reduction.post.summary:
|
|
sourceHash: 0bcf30a006cb
|
|
provenance: machine
|
|
outputHash: 0bcf30a006cb
|
|
paths./api/v1/tools/audio/noise-reduction.post.description:
|
|
sourceHash: 032c91b97641
|
|
provenance: machine
|
|
outputHash: f0c15668d53f
|
|
paths./api/v1/tools/audio/merge-audio.post.summary:
|
|
sourceHash: 780965910dff
|
|
provenance: machine
|
|
outputHash: 780965910dff
|
|
paths./api/v1/tools/audio/merge-audio.post.description:
|
|
sourceHash: 1397edf49056
|
|
provenance: machine
|
|
outputHash: 6ffa953cb5e4
|
|
paths./api/v1/tools/audio/split-audio.post.summary:
|
|
sourceHash: e59c513c0ba2
|
|
provenance: machine
|
|
outputHash: e59c513c0ba2
|
|
paths./api/v1/tools/audio/split-audio.post.description:
|
|
sourceHash: 763e0458c032
|
|
provenance: machine
|
|
outputHash: a28c6b7b369a
|
|
paths./api/v1/tools/audio/ringtone-maker.post.summary:
|
|
sourceHash: f0e142322ff9
|
|
provenance: machine
|
|
outputHash: f0e142322ff9
|
|
paths./api/v1/tools/audio/ringtone-maker.post.description:
|
|
sourceHash: c301dcbbedc1
|
|
provenance: machine
|
|
outputHash: 9d3ea345e501
|
|
paths./api/v1/tools/audio/waveform-image.post.summary:
|
|
sourceHash: 0e373ca45197
|
|
provenance: machine
|
|
outputHash: 0e373ca45197
|
|
paths./api/v1/tools/audio/waveform-image.post.description:
|
|
sourceHash: 70f63b279b5d
|
|
provenance: machine
|
|
outputHash: f19de4964d6c
|
|
paths./api/v1/tools/audio/audio-metadata.post.summary:
|
|
sourceHash: 55d1a5a0e65d
|
|
provenance: machine
|
|
outputHash: 55d1a5a0e65d
|
|
paths./api/v1/tools/audio/audio-metadata.post.description:
|
|
sourceHash: 5c799135421c
|
|
provenance: machine
|
|
outputHash: d73fd6083be4
|
|
paths./api/v1/tools/audio/transcribe-audio.post.summary:
|
|
sourceHash: a723c84c3ab0
|
|
provenance: machine
|
|
outputHash: a723c84c3ab0
|
|
paths./api/v1/tools/audio/transcribe-audio.post.description:
|
|
sourceHash: 2967ad141d14
|
|
provenance: machine
|
|
outputHash: 0be12b6be19d
|
|
paths./api/v1/tools/pdf/merge-pdf.post.summary:
|
|
sourceHash: 43d1539b7596
|
|
provenance: machine
|
|
outputHash: 43d1539b7596
|
|
paths./api/v1/tools/pdf/merge-pdf.post.description:
|
|
sourceHash: 728388cddb8a
|
|
provenance: machine
|
|
outputHash: 75bdefcbccaf
|
|
paths./api/v1/tools/pdf/split-pdf.post.summary:
|
|
sourceHash: 4f1b846cb144
|
|
provenance: machine
|
|
outputHash: 4f1b846cb144
|
|
paths./api/v1/tools/pdf/split-pdf.post.description:
|
|
sourceHash: fbe9d9c35006
|
|
provenance: machine
|
|
outputHash: 9ce14f22112e
|
|
paths./api/v1/tools/pdf/compress-pdf.post.summary:
|
|
sourceHash: 932c3c48a4de
|
|
provenance: machine
|
|
outputHash: 932c3c48a4de
|
|
paths./api/v1/tools/pdf/compress-pdf.post.description:
|
|
sourceHash: 89f23fb6b3c8
|
|
provenance: machine
|
|
outputHash: 9dab1f5d541a
|
|
paths./api/v1/tools/pdf/rotate-pdf.post.summary:
|
|
sourceHash: 1eccabbce838
|
|
provenance: machine
|
|
outputHash: 1eccabbce838
|
|
paths./api/v1/tools/pdf/rotate-pdf.post.description:
|
|
sourceHash: 7c561cc7ed48
|
|
provenance: machine
|
|
outputHash: 418e61b49f39
|
|
paths./api/v1/tools/pdf/extract-pages.post.summary:
|
|
sourceHash: 0247b9f3e6cf
|
|
provenance: machine
|
|
outputHash: 4ac4d71783c9
|
|
paths./api/v1/tools/pdf/extract-pages.post.description:
|
|
sourceHash: c07eea0c017f
|
|
provenance: machine
|
|
outputHash: 6c135a4743a0
|
|
paths./api/v1/tools/pdf/remove-pages.post.summary:
|
|
sourceHash: 670a5909f883
|
|
provenance: machine
|
|
outputHash: b55d3f3001e4
|
|
paths./api/v1/tools/pdf/remove-pages.post.description:
|
|
sourceHash: 6231b16e7bea
|
|
provenance: machine
|
|
outputHash: 0cfd17a396b4
|
|
paths./api/v1/tools/pdf/organize-pdf.post.summary:
|
|
sourceHash: d5a641ebd93a
|
|
provenance: machine
|
|
outputHash: d5a641ebd93a
|
|
paths./api/v1/tools/pdf/organize-pdf.post.description:
|
|
sourceHash: ac32f48665e7
|
|
provenance: machine
|
|
outputHash: 3d316fd1c7e6
|
|
paths./api/v1/tools/pdf/protect-pdf.post.summary:
|
|
sourceHash: dae6c607e963
|
|
provenance: machine
|
|
outputHash: dae6c607e963
|
|
paths./api/v1/tools/pdf/protect-pdf.post.description:
|
|
sourceHash: 600a3be47970
|
|
provenance: machine
|
|
outputHash: 8a509ed5594f
|
|
paths./api/v1/tools/pdf/unlock-pdf.post.summary:
|
|
sourceHash: 893947d82ded
|
|
provenance: machine
|
|
outputHash: 893947d82ded
|
|
paths./api/v1/tools/pdf/unlock-pdf.post.description:
|
|
sourceHash: 1d199055f386
|
|
provenance: machine
|
|
outputHash: f5fb34a02e44
|
|
paths./api/v1/tools/pdf/repair-pdf.post.summary:
|
|
sourceHash: 43faa052d4cf
|
|
provenance: machine
|
|
outputHash: 43faa052d4cf
|
|
paths./api/v1/tools/pdf/repair-pdf.post.description:
|
|
sourceHash: 77f71d364df4
|
|
provenance: machine
|
|
outputHash: 3f7f942761cd
|
|
paths./api/v1/tools/pdf/linearize-pdf.post.summary:
|
|
sourceHash: 75fa522e3fe3
|
|
provenance: machine
|
|
outputHash: 75fa522e3fe3
|
|
paths./api/v1/tools/pdf/linearize-pdf.post.description:
|
|
sourceHash: 200f45aa4a91
|
|
provenance: machine
|
|
outputHash: f0ad570e59f3
|
|
paths./api/v1/tools/pdf/grayscale-pdf.post.summary:
|
|
sourceHash: 58b0007c3425
|
|
provenance: machine
|
|
outputHash: 58b0007c3425
|
|
paths./api/v1/tools/pdf/grayscale-pdf.post.description:
|
|
sourceHash: 7b7e2b4857e6
|
|
provenance: machine
|
|
outputHash: 7e0ba9bca4d1
|
|
paths./api/v1/tools/pdf/pdfa-convert.post.summary:
|
|
sourceHash: 9971b16fe624
|
|
provenance: machine
|
|
outputHash: 63501b30d118
|
|
paths./api/v1/tools/pdf/pdfa-convert.post.description:
|
|
sourceHash: 3c8ad47aa904
|
|
provenance: machine
|
|
outputHash: 1f101f90f59e
|
|
paths./api/v1/tools/pdf/crop-pdf.post.summary:
|
|
sourceHash: dc4bdbce825f
|
|
provenance: machine
|
|
outputHash: dc4bdbce825f
|
|
paths./api/v1/tools/pdf/crop-pdf.post.description:
|
|
sourceHash: 94eb9575aecc
|
|
provenance: machine
|
|
outputHash: 71df7859b9ab
|
|
paths./api/v1/tools/pdf/nup-pdf.post.summary:
|
|
sourceHash: dac1b895452a
|
|
provenance: machine
|
|
outputHash: 9194761c0b12
|
|
paths./api/v1/tools/pdf/nup-pdf.post.description:
|
|
sourceHash: 5e2a264dafb0
|
|
provenance: machine
|
|
outputHash: 2ad05c051bd8
|
|
paths./api/v1/tools/pdf/booklet-pdf.post.summary:
|
|
sourceHash: a1fdff0bc065
|
|
provenance: machine
|
|
outputHash: a1fdff0bc065
|
|
paths./api/v1/tools/pdf/booklet-pdf.post.description:
|
|
sourceHash: 0ce5f88843c3
|
|
provenance: machine
|
|
outputHash: 00ea762774d4
|
|
paths./api/v1/tools/pdf/watermark-pdf.post.summary:
|
|
sourceHash: 903ce98c712a
|
|
provenance: machine
|
|
outputHash: 903ce98c712a
|
|
paths./api/v1/tools/pdf/watermark-pdf.post.description:
|
|
sourceHash: c15a57a06624
|
|
provenance: machine
|
|
outputHash: 1d15e5d6d476
|
|
paths./api/v1/tools/pdf/pdf-page-numbers.post.summary:
|
|
sourceHash: 44eb045097be
|
|
provenance: machine
|
|
outputHash: d8398f59cf9a
|
|
paths./api/v1/tools/pdf/pdf-page-numbers.post.description:
|
|
sourceHash: 30ce839cac96
|
|
provenance: machine
|
|
outputHash: 202d351a46e3
|
|
paths./api/v1/tools/files/convert-document.post.summary:
|
|
sourceHash: 51556213858a
|
|
provenance: machine
|
|
outputHash: 4a537b56ed10
|
|
paths./api/v1/tools/files/convert-document.post.description:
|
|
sourceHash: 8a61bf0f3459
|
|
provenance: machine
|
|
outputHash: d7e396c618a3
|
|
paths./api/v1/tools/files/convert-presentation.post.summary:
|
|
sourceHash: 5e2293e30835
|
|
provenance: machine
|
|
outputHash: dcebe7a82319
|
|
paths./api/v1/tools/files/convert-presentation.post.description:
|
|
sourceHash: c24f1d70d630
|
|
provenance: machine
|
|
outputHash: c3e5d1cf294a
|
|
paths./api/v1/tools/files/convert-spreadsheet.post.summary:
|
|
sourceHash: 670b7aa81c49
|
|
provenance: machine
|
|
outputHash: 1b8cb850d3a3
|
|
paths./api/v1/tools/files/convert-spreadsheet.post.description:
|
|
sourceHash: 1c254c7db8bc
|
|
provenance: machine
|
|
outputHash: ffa657cf86d2
|
|
paths./api/v1/tools/files/excel-to-pdf.post.summary:
|
|
sourceHash: edba3432df77
|
|
provenance: machine
|
|
outputHash: edba3432df77
|
|
paths./api/v1/tools/files/excel-to-pdf.post.description:
|
|
sourceHash: c2e4aaa88cb7
|
|
provenance: machine
|
|
outputHash: 824daa699c0e
|
|
paths./api/v1/tools/files/word-to-pdf.post.summary:
|
|
sourceHash: e6cb1150e762
|
|
provenance: machine
|
|
outputHash: e6cb1150e762
|
|
paths./api/v1/tools/files/word-to-pdf.post.description:
|
|
sourceHash: eca3c027bc10
|
|
provenance: machine
|
|
outputHash: cc0b0594c03d
|
|
paths./api/v1/tools/files/powerpoint-to-pdf.post.summary:
|
|
sourceHash: 799dd29fe97a
|
|
provenance: machine
|
|
outputHash: 799dd29fe97a
|
|
paths./api/v1/tools/files/powerpoint-to-pdf.post.description:
|
|
sourceHash: cdc18f172040
|
|
provenance: machine
|
|
outputHash: 660f6d8a7d8d
|
|
paths./api/v1/tools/files/html-to-pdf.post.summary:
|
|
sourceHash: e03b0e6dda95
|
|
provenance: machine
|
|
outputHash: e03b0e6dda95
|
|
paths./api/v1/tools/files/html-to-pdf.post.description:
|
|
sourceHash: e189b21c7bed
|
|
provenance: machine
|
|
outputHash: 6746fa26f508
|
|
paths./api/v1/tools/files/markdown-to-docx.post.summary:
|
|
sourceHash: 1162393274fa
|
|
provenance: machine
|
|
outputHash: 1162393274fa
|
|
paths./api/v1/tools/files/markdown-to-docx.post.description:
|
|
sourceHash: 2bc0fd718613
|
|
provenance: machine
|
|
outputHash: faa9ff898c5c
|
|
paths./api/v1/tools/files/markdown-to-html.post.summary:
|
|
sourceHash: e5e6e736b649
|
|
provenance: machine
|
|
outputHash: e5e6e736b649
|
|
paths./api/v1/tools/files/markdown-to-html.post.description:
|
|
sourceHash: 4f6f706c371e
|
|
provenance: machine
|
|
outputHash: e24c42e7266d
|
|
paths./api/v1/tools/files/markdown-to-pdf.post.summary:
|
|
sourceHash: 82712b1fc2b5
|
|
provenance: machine
|
|
outputHash: 82712b1fc2b5
|
|
paths./api/v1/tools/files/markdown-to-pdf.post.description:
|
|
sourceHash: f588e3d2847d
|
|
provenance: machine
|
|
outputHash: 93ef3e0f5aad
|
|
paths./api/v1/tools/files/epub-convert.post.summary:
|
|
sourceHash: dcee1b93b5d5
|
|
provenance: machine
|
|
outputHash: 7028f672c8a1
|
|
paths./api/v1/tools/files/epub-convert.post.description:
|
|
sourceHash: 5a42072194d3
|
|
provenance: machine
|
|
outputHash: 46127ec9ecd5
|
|
paths./api/v1/tools/files/to-epub.post.summary:
|
|
sourceHash: 542d3fb468be
|
|
provenance: machine
|
|
outputHash: 542d3fb468be
|
|
paths./api/v1/tools/files/to-epub.post.description:
|
|
sourceHash: 1e0b8c39ef9d
|
|
provenance: machine
|
|
outputHash: b1c4d3d21187
|
|
paths./api/v1/tools/pdf/flatten-pdf.post.summary:
|
|
sourceHash: 86c838d2d497
|
|
provenance: machine
|
|
outputHash: 86c838d2d497
|
|
paths./api/v1/tools/pdf/flatten-pdf.post.description:
|
|
sourceHash: cb0b0bdeaaa5
|
|
provenance: machine
|
|
outputHash: 475adbe9c138
|
|
paths./api/v1/tools/pdf/redact-pdf.post.summary:
|
|
sourceHash: 1437d196213c
|
|
provenance: machine
|
|
outputHash: 1437d196213c
|
|
paths./api/v1/tools/pdf/redact-pdf.post.description:
|
|
sourceHash: c2652c3da04a
|
|
provenance: machine
|
|
outputHash: 4e3663d0bc8c
|
|
paths./api/v1/tools/pdf/pdf-to-text.post.summary:
|
|
sourceHash: f1a719f99a31
|
|
provenance: machine
|
|
outputHash: f1a719f99a31
|
|
paths./api/v1/tools/pdf/pdf-to-text.post.description:
|
|
sourceHash: f107a4082454
|
|
provenance: machine
|
|
outputHash: 587949def02f
|
|
paths./api/v1/tools/pdf/pdf-to-word.post.summary:
|
|
sourceHash: 283553b063ad
|
|
provenance: machine
|
|
outputHash: 283553b063ad
|
|
paths./api/v1/tools/pdf/pdf-to-word.post.description:
|
|
sourceHash: 324b6f3d35f7
|
|
provenance: machine
|
|
outputHash: 138c0f3d8534
|
|
paths./api/v1/tools/pdf/pdf-metadata.post.summary:
|
|
sourceHash: 7aa0fbdbeac6
|
|
provenance: machine
|
|
outputHash: 7aa0fbdbeac6
|
|
paths./api/v1/tools/pdf/pdf-metadata.post.description:
|
|
sourceHash: 4267623afc19
|
|
provenance: machine
|
|
outputHash: 4fd41af18da2
|
|
paths./api/v1/tools/pdf/ocr-pdf.post.summary:
|
|
sourceHash: 2d9dfe74b2d1
|
|
provenance: machine
|
|
outputHash: 2d9dfe74b2d1
|
|
paths./api/v1/tools/pdf/ocr-pdf.post.description:
|
|
sourceHash: fbed951c39df
|
|
provenance: machine
|
|
outputHash: b79f6864833b
|
|
paths./api/v1/tools/files/chart-maker.post.summary:
|
|
sourceHash: dbcca76ccbf5
|
|
provenance: machine
|
|
outputHash: dbcca76ccbf5
|
|
paths./api/v1/tools/files/chart-maker.post.description:
|
|
sourceHash: e4adb80dab58
|
|
provenance: machine
|
|
outputHash: a9b33fbfc46b
|
|
paths./api/v1/tools/files/csv-excel.post.summary:
|
|
sourceHash: c53386a6d40d
|
|
provenance: machine
|
|
outputHash: c53386a6d40d
|
|
paths./api/v1/tools/files/csv-excel.post.description:
|
|
sourceHash: b567a5eb0ee5
|
|
provenance: machine
|
|
outputHash: 6eecef287a60
|
|
paths./api/v1/tools/files/csv-json.post.summary:
|
|
sourceHash: 3ed0542f5ca4
|
|
provenance: machine
|
|
outputHash: 3ed0542f5ca4
|
|
paths./api/v1/tools/files/csv-json.post.description:
|
|
sourceHash: 6ed58f7ca5ac
|
|
provenance: machine
|
|
outputHash: 0235cf8a417a
|
|
paths./api/v1/tools/files/json-xml.post.summary:
|
|
sourceHash: 0e374572749d
|
|
provenance: machine
|
|
outputHash: 0e374572749d
|
|
paths./api/v1/tools/files/json-xml.post.description:
|
|
sourceHash: bbb56d23a274
|
|
provenance: machine
|
|
outputHash: 9573e407e018
|
|
paths./api/v1/tools/files/split-csv.post.summary:
|
|
sourceHash: 06c1cfb6cb2c
|
|
provenance: machine
|
|
outputHash: 06c1cfb6cb2c
|
|
paths./api/v1/tools/files/split-csv.post.description:
|
|
sourceHash: 1181658ae239
|
|
provenance: machine
|
|
outputHash: be207b1a4934
|
|
paths./api/v1/tools/files/merge-csvs.post.summary:
|
|
sourceHash: 0042c1153e55
|
|
provenance: machine
|
|
outputHash: 0042c1153e55
|
|
paths./api/v1/tools/files/merge-csvs.post.description:
|
|
sourceHash: 4956c801900a
|
|
provenance: machine
|
|
outputHash: a0a4694c0a59
|
|
paths./api/v1/tools/files/yaml-json.post.summary:
|
|
sourceHash: cd3e06c3d51d
|
|
provenance: machine
|
|
outputHash: e9c43158e301
|
|
paths./api/v1/tools/files/yaml-json.post.description:
|
|
sourceHash: a7fa089ac00a
|
|
provenance: machine
|
|
outputHash: dde25b6d0d6e
|
|
paths./api/v1/tools/files/xml-to-csv.post.summary:
|
|
sourceHash: 909195e97a63
|
|
provenance: machine
|
|
outputHash: 909195e97a63
|
|
paths./api/v1/tools/files/xml-to-csv.post.description:
|
|
sourceHash: 156ea77c8a62
|
|
provenance: machine
|
|
outputHash: 4ba5623dc465
|
|
paths./api/v1/tools/files/create-zip.post.summary:
|
|
sourceHash: 8463eb4799ce
|
|
provenance: machine
|
|
outputHash: 8463eb4799ce
|
|
paths./api/v1/tools/files/create-zip.post.description:
|
|
sourceHash: 26c97508b498
|
|
provenance: machine
|
|
outputHash: e86df41a061c
|
|
paths./api/v1/tools/files/extract-zip.post.summary:
|
|
sourceHash: aa7dad519142
|
|
provenance: machine
|
|
outputHash: aa7dad519142
|
|
paths./api/v1/tools/files/extract-zip.post.description:
|
|
sourceHash: 5b025b124d8b
|
|
provenance: machine
|
|
outputHash: 179ddb094aa6
|
|
paths./api/v1/tools/image/background-replace.post.summary:
|
|
sourceHash: 971cacdad5ce
|
|
provenance: machine
|
|
outputHash: 835fd208797b
|
|
paths./api/v1/tools/image/background-replace.post.description:
|
|
sourceHash: 5f7a0c0dbbc7
|
|
provenance: machine
|
|
outputHash: e406263561ea
|
|
paths./api/v1/tools/image/blur-background.post.summary:
|
|
sourceHash: 2383b0d9c928
|
|
provenance: machine
|
|
outputHash: 2d9de267a355
|
|
paths./api/v1/tools/image/blur-background.post.description:
|
|
sourceHash: f3afcae74767
|
|
provenance: machine
|
|
outputHash: f2996b175688
|
|
paths./api/v1/tools/image/barcode-generate.post.summary:
|
|
sourceHash: 4717ee594681
|
|
provenance: machine
|
|
outputHash: e4f46131efad
|
|
paths./api/v1/tools/image/barcode-generate.post.description:
|
|
sourceHash: e174f8923d5d
|
|
provenance: machine
|
|
outputHash: caf1f1951165
|
|
paths./api/v1/tools/image/circle-crop.post.summary:
|
|
sourceHash: d76473270976
|
|
provenance: machine
|
|
outputHash: b60bb5df3084
|
|
paths./api/v1/tools/image/circle-crop.post.description:
|
|
sourceHash: 3e4d4819d594
|
|
provenance: machine
|
|
outputHash: a8e10ae2bc9c
|
|
paths./api/v1/tools/image/duotone.post.summary:
|
|
sourceHash: 27e78e7e8cca
|
|
provenance: machine
|
|
outputHash: 27e78e7e8cca
|
|
paths./api/v1/tools/image/duotone.post.description:
|
|
sourceHash: f3d5b592526a
|
|
provenance: machine
|
|
outputHash: fbcbf4c793a6
|
|
paths./api/v1/tools/image/image-pad.post.summary:
|
|
sourceHash: 7cbc7ca5de5b
|
|
provenance: machine
|
|
outputHash: 91eae0c26728
|
|
paths./api/v1/tools/image/image-pad.post.description:
|
|
sourceHash: f222b64a52bc
|
|
provenance: machine
|
|
outputHash: 54966e0eec2d
|
|
paths./api/v1/tools/image/pixelate.post.summary:
|
|
sourceHash: f4982f86e732
|
|
provenance: machine
|
|
outputHash: f4982f86e732
|
|
paths./api/v1/tools/image/pixelate.post.description:
|
|
sourceHash: c47f345410f8
|
|
provenance: machine
|
|
outputHash: 766dab29bb4e
|
|
paths./api/v1/tools/image/vignette.post.summary:
|
|
sourceHash: f841c2080740
|
|
provenance: machine
|
|
outputHash: f841c2080740
|
|
paths./api/v1/tools/image/vignette.post.description:
|
|
sourceHash: 9e1e807e89e0
|
|
provenance: machine
|
|
outputHash: d9183c258b19
|
|
paths./api/v1/tools/image/gif-webp.post.summary:
|
|
sourceHash: 337e539d70a4
|
|
provenance: machine
|
|
outputHash: e5968d5d9401
|
|
paths./api/v1/tools/image/gif-webp.post.description:
|
|
sourceHash: f397405d0b9c
|
|
provenance: machine
|
|
outputHash: 0510411d2e6e
|
|
paths./api/v1/tools/image/histogram.post.summary:
|
|
sourceHash: b32dc489fba8
|
|
provenance: machine
|
|
outputHash: b32dc489fba8
|
|
paths./api/v1/tools/image/histogram.post.description:
|
|
sourceHash: f98c4a1d1bf0
|
|
provenance: machine
|
|
outputHash: f7cd59ff0682
|
|
paths./api/v1/tools/image/lqip-placeholder.post.summary:
|
|
sourceHash: 878e3f3518db
|
|
provenance: machine
|
|
outputHash: 1deb8c1fd15d
|
|
paths./api/v1/tools/image/lqip-placeholder.post.description:
|
|
sourceHash: 2100f7e08142
|
|
provenance: machine
|
|
outputHash: 5e203b1dcf48
|
|
paths./api/v1/tools/image/sprite-sheet.post.summary:
|
|
sourceHash: f1c0772c4599
|
|
provenance: machine
|
|
outputHash: f1c0772c4599
|
|
paths./api/v1/tools/image/sprite-sheet.post.description:
|
|
sourceHash: 4ef141ec92ed
|
|
provenance: machine
|
|
outputHash: e89c221265f9
|
|
paths./api/v1/tools/image/passport-photo.post.summary:
|
|
sourceHash: 535e5bf9e5e6
|
|
provenance: machine
|
|
outputHash: 535e5bf9e5e6
|
|
paths./api/v1/tools/image/passport-photo.post.description:
|
|
sourceHash: 7d3a81dbb05c
|
|
provenance: machine
|
|
outputHash: e2160ea9687d
|
|
paths./api/v1/tools/pdf/sign-pdf.post.summary:
|
|
sourceHash: 1bf93e215df9
|
|
provenance: machine
|
|
outputHash: 1bf93e215df9
|
|
paths./api/v1/tools/pdf/sign-pdf.post.description:
|
|
sourceHash: d66e168d79ba
|
|
provenance: machine
|
|
outputHash: 60ad52945d30
|
|
paths./api/v1/tools/image/jpg-to-png.post.summary:
|
|
sourceHash: 2b455c24e59e
|
|
provenance: machine
|
|
outputHash: 2b455c24e59e
|
|
paths./api/v1/tools/image/jpg-to-png.post.description:
|
|
sourceHash: 1d504faac90f
|
|
provenance: machine
|
|
outputHash: 9a8bb14b031b
|
|
paths./api/v1/tools/image/png-to-jpg.post.summary:
|
|
sourceHash: 9e2eef671853
|
|
provenance: machine
|
|
outputHash: 9e2eef671853
|
|
paths./api/v1/tools/image/png-to-jpg.post.description:
|
|
sourceHash: 12d6c8d6aa01
|
|
provenance: machine
|
|
outputHash: 08f57db40ea6
|
|
paths./api/v1/tools/image/jpg-to-webp.post.summary:
|
|
sourceHash: 1e67451d3358
|
|
provenance: machine
|
|
outputHash: 1e67451d3358
|
|
paths./api/v1/tools/image/jpg-to-webp.post.description:
|
|
sourceHash: 0e7e4b18daa5
|
|
provenance: machine
|
|
outputHash: 6e794bc78d61
|
|
paths./api/v1/tools/image/png-to-webp.post.summary:
|
|
sourceHash: 6c9410143dd5
|
|
provenance: machine
|
|
outputHash: 6c9410143dd5
|
|
paths./api/v1/tools/image/png-to-webp.post.description:
|
|
sourceHash: 7505ddaf944b
|
|
provenance: machine
|
|
outputHash: d562f76063a6
|
|
paths./api/v1/tools/image/webp-to-jpg.post.summary:
|
|
sourceHash: 670a9097dec8
|
|
provenance: machine
|
|
outputHash: 670a9097dec8
|
|
paths./api/v1/tools/image/webp-to-jpg.post.description:
|
|
sourceHash: 2b7701fe02eb
|
|
provenance: machine
|
|
outputHash: 03c6898bd4bf
|
|
paths./api/v1/tools/image/webp-to-png.post.summary:
|
|
sourceHash: 781a17cb5ec0
|
|
provenance: machine
|
|
outputHash: 781a17cb5ec0
|
|
paths./api/v1/tools/image/webp-to-png.post.description:
|
|
sourceHash: 78645c123b20
|
|
provenance: machine
|
|
outputHash: 2b9e0102ee9c
|
|
paths./api/v1/tools/image/jpg-to-avif.post.summary:
|
|
sourceHash: 1c50ea7bdfce
|
|
provenance: machine
|
|
outputHash: 1c50ea7bdfce
|
|
paths./api/v1/tools/image/jpg-to-avif.post.description:
|
|
sourceHash: fbc8f6ae407c
|
|
provenance: machine
|
|
outputHash: f67ab9d42236
|
|
paths./api/v1/tools/image/png-to-avif.post.summary:
|
|
sourceHash: c3ba0668ee1f
|
|
provenance: machine
|
|
outputHash: c3ba0668ee1f
|
|
paths./api/v1/tools/image/png-to-avif.post.description:
|
|
sourceHash: d0dcdde42555
|
|
provenance: machine
|
|
outputHash: 2f636ba773f8
|
|
paths./api/v1/tools/image/webp-to-avif.post.summary:
|
|
sourceHash: 690ea37f961e
|
|
provenance: machine
|
|
outputHash: 690ea37f961e
|
|
paths./api/v1/tools/image/webp-to-avif.post.description:
|
|
sourceHash: bcae3fc230b8
|
|
provenance: machine
|
|
outputHash: 21741ae0a8d8
|
|
paths./api/v1/tools/image/heic-to-jpg.post.summary:
|
|
sourceHash: 0013ad2f7e97
|
|
provenance: machine
|
|
outputHash: 0013ad2f7e97
|
|
paths./api/v1/tools/image/heic-to-jpg.post.description:
|
|
sourceHash: deb0641a6bfd
|
|
provenance: machine
|
|
outputHash: 98648ee76254
|
|
paths./api/v1/tools/image/heic-to-png.post.summary:
|
|
sourceHash: a191f1708025
|
|
provenance: machine
|
|
outputHash: a191f1708025
|
|
paths./api/v1/tools/image/heic-to-png.post.description:
|
|
sourceHash: 583345b636d6
|
|
provenance: machine
|
|
outputHash: 189350cb2f93
|
|
paths./api/v1/tools/image/heic-to-avif.post.summary:
|
|
sourceHash: a03031e5c80d
|
|
provenance: machine
|
|
outputHash: a03031e5c80d
|
|
paths./api/v1/tools/image/heic-to-avif.post.description:
|
|
sourceHash: 6812ebf99c0b
|
|
provenance: machine
|
|
outputHash: ee5b2b9df64f
|
|
paths./api/v1/tools/image/jpg-to-gif.post.summary:
|
|
sourceHash: 46b3bcd3a38f
|
|
provenance: machine
|
|
outputHash: 46b3bcd3a38f
|
|
paths./api/v1/tools/image/jpg-to-gif.post.description:
|
|
sourceHash: 365097fb68a9
|
|
provenance: machine
|
|
outputHash: 80af8607743e
|
|
paths./api/v1/tools/image/png-to-gif.post.summary:
|
|
sourceHash: e4de0e11bf3d
|
|
provenance: machine
|
|
outputHash: e4de0e11bf3d
|
|
paths./api/v1/tools/image/png-to-gif.post.description:
|
|
sourceHash: 89620988c5bd
|
|
provenance: machine
|
|
outputHash: c392bf4b00e2
|
|
paths./api/v1/tools/image/gif-to-jpg.post.summary:
|
|
sourceHash: 016ce94121b8
|
|
provenance: machine
|
|
outputHash: 016ce94121b8
|
|
paths./api/v1/tools/image/gif-to-jpg.post.description:
|
|
sourceHash: d3c99d325441
|
|
provenance: machine
|
|
outputHash: b2933e41de03
|
|
paths./api/v1/tools/image/gif-to-png.post.summary:
|
|
sourceHash: 8f3239971851
|
|
provenance: machine
|
|
outputHash: 8f3239971851
|
|
paths./api/v1/tools/image/gif-to-png.post.description:
|
|
sourceHash: 6b363c6c5b6a
|
|
provenance: machine
|
|
outputHash: b6b8f765e801
|
|
paths./api/v1/tools/image/webp-to-gif.post.summary:
|
|
sourceHash: db331b95e19b
|
|
provenance: machine
|
|
outputHash: db331b95e19b
|
|
paths./api/v1/tools/image/webp-to-gif.post.description:
|
|
sourceHash: 9295d8ac8c09
|
|
provenance: machine
|
|
outputHash: ab7dd81266a2
|
|
paths./api/v1/tools/image/jpg-to-tiff.post.summary:
|
|
sourceHash: 86ae950de6a3
|
|
provenance: machine
|
|
outputHash: 86ae950de6a3
|
|
paths./api/v1/tools/image/jpg-to-tiff.post.description:
|
|
sourceHash: 4f0ac37f2e06
|
|
provenance: machine
|
|
outputHash: 3919ab1d3781
|
|
paths./api/v1/tools/image/png-to-tiff.post.summary:
|
|
sourceHash: 3fa124cbaa4a
|
|
provenance: machine
|
|
outputHash: 3fa124cbaa4a
|
|
paths./api/v1/tools/image/png-to-tiff.post.description:
|
|
sourceHash: 5cf97e597ee8
|
|
provenance: machine
|
|
outputHash: 4d473c0ae97c
|
|
paths./api/v1/tools/image/tiff-to-jpg.post.summary:
|
|
sourceHash: c803f62926b8
|
|
provenance: machine
|
|
outputHash: c803f62926b8
|
|
paths./api/v1/tools/image/tiff-to-jpg.post.description:
|
|
sourceHash: cf928b0513e5
|
|
provenance: machine
|
|
outputHash: b02c20b1a600
|
|
paths./api/v1/tools/image/tiff-to-png.post.summary:
|
|
sourceHash: 73c313976bb4
|
|
provenance: machine
|
|
outputHash: 73c313976bb4
|
|
paths./api/v1/tools/image/tiff-to-png.post.description:
|
|
sourceHash: 52f065d2f324
|
|
provenance: machine
|
|
outputHash: ac700cddd29c
|
|
paths./api/v1/tools/image/psd-to-jpg.post.summary:
|
|
sourceHash: b9d50a4fd5a9
|
|
provenance: machine
|
|
outputHash: b9d50a4fd5a9
|
|
paths./api/v1/tools/image/psd-to-jpg.post.description:
|
|
sourceHash: a9897ebb6e8c
|
|
provenance: machine
|
|
outputHash: 1fbfaddad007
|
|
paths./api/v1/tools/image/psd-to-png.post.summary:
|
|
sourceHash: af36a6f53221
|
|
provenance: machine
|
|
outputHash: af36a6f53221
|
|
paths./api/v1/tools/image/psd-to-png.post.description:
|
|
sourceHash: b15171b20160
|
|
provenance: machine
|
|
outputHash: 421d749fb03c
|
|
paths./api/v1/tools/image/png-to-eps.post.summary:
|
|
sourceHash: 33ce1b37d63f
|
|
provenance: machine
|
|
outputHash: 33ce1b37d63f
|
|
paths./api/v1/tools/image/png-to-eps.post.description:
|
|
sourceHash: 31d8bfe76c0d
|
|
provenance: machine
|
|
outputHash: 60ec2d5150f2
|
|
paths./api/v1/tools/image/jpg-to-eps.post.summary:
|
|
sourceHash: e8bde3997aaf
|
|
provenance: machine
|
|
outputHash: e8bde3997aaf
|
|
paths./api/v1/tools/image/jpg-to-eps.post.description:
|
|
sourceHash: 62cce0cb73ba
|
|
provenance: machine
|
|
outputHash: b98c2eedf00d
|
|
paths./api/v1/tools/image/eps-to-png.post.summary:
|
|
sourceHash: be7ed58f6b7e
|
|
provenance: machine
|
|
outputHash: be7ed58f6b7e
|
|
paths./api/v1/tools/image/eps-to-png.post.description:
|
|
sourceHash: e9157e4e334b
|
|
provenance: machine
|
|
outputHash: f117761ee384
|
|
paths./api/v1/tools/image/eps-to-jpg.post.summary:
|
|
sourceHash: c05512db4202
|
|
provenance: machine
|
|
outputHash: c05512db4202
|
|
paths./api/v1/tools/image/eps-to-jpg.post.description:
|
|
sourceHash: b582104358cd
|
|
provenance: machine
|
|
outputHash: 455481a94c1c
|
|
paths./api/v1/tools/image/png-to-svg.post.summary:
|
|
sourceHash: 651353e8e22c
|
|
provenance: machine
|
|
outputHash: 651353e8e22c
|
|
paths./api/v1/tools/image/png-to-svg.post.description:
|
|
sourceHash: 5cbb3b81f383
|
|
provenance: machine
|
|
outputHash: f8d21f269983
|
|
paths./api/v1/tools/image/jpg-to-svg.post.summary:
|
|
sourceHash: 46f10c1c31b4
|
|
provenance: machine
|
|
outputHash: 46f10c1c31b4
|
|
paths./api/v1/tools/image/jpg-to-svg.post.description:
|
|
sourceHash: ea475d6542cb
|
|
provenance: machine
|
|
outputHash: 7cc50dc41a56
|
|
paths./api/v1/tools/image/tiff-to-svg.post.summary:
|
|
sourceHash: 52f9db13bb53
|
|
provenance: machine
|
|
outputHash: 52f9db13bb53
|
|
paths./api/v1/tools/image/tiff-to-svg.post.description:
|
|
sourceHash: 26ac4eed4312
|
|
provenance: machine
|
|
outputHash: 03dcba977022
|
|
paths./api/v1/tools/image/psd-to-svg.post.summary:
|
|
sourceHash: 654d378a3882
|
|
provenance: machine
|
|
outputHash: 654d378a3882
|
|
paths./api/v1/tools/image/psd-to-svg.post.description:
|
|
sourceHash: 990b5ce49f61
|
|
provenance: machine
|
|
outputHash: 40c3fdd98732
|
|
paths./api/v1/tools/image/eps-to-svg.post.summary:
|
|
sourceHash: 36137967b026
|
|
provenance: machine
|
|
outputHash: 36137967b026
|
|
paths./api/v1/tools/image/eps-to-svg.post.description:
|
|
sourceHash: 8c2914626a16
|
|
provenance: machine
|
|
outputHash: 8a983dfd169e
|
|
paths./api/v1/tools/image/svg-to-png.post.summary:
|
|
sourceHash: 1f1eb20e97fe
|
|
provenance: machine
|
|
outputHash: 1f1eb20e97fe
|
|
paths./api/v1/tools/image/svg-to-png.post.description:
|
|
sourceHash: 5338d3a81ff7
|
|
provenance: machine
|
|
outputHash: 176a41f16825
|
|
paths./api/v1/tools/image/svg-to-jpg.post.summary:
|
|
sourceHash: 8e51faf94ff1
|
|
provenance: machine
|
|
outputHash: 8e51faf94ff1
|
|
paths./api/v1/tools/image/svg-to-jpg.post.description:
|
|
sourceHash: 23241e664642
|
|
provenance: machine
|
|
outputHash: 997291fe5e0f
|
|
paths./api/v1/tools/image/jpg-to-pdf.post.summary:
|
|
sourceHash: 480104dd2622
|
|
provenance: machine
|
|
outputHash: 480104dd2622
|
|
paths./api/v1/tools/image/jpg-to-pdf.post.description:
|
|
sourceHash: daffc3441cf6
|
|
provenance: machine
|
|
outputHash: 865d394b899e
|
|
paths./api/v1/tools/image/png-to-pdf.post.summary:
|
|
sourceHash: 7cab3612203f
|
|
provenance: machine
|
|
outputHash: 7cab3612203f
|
|
paths./api/v1/tools/image/png-to-pdf.post.description:
|
|
sourceHash: 135646c47b37
|
|
provenance: machine
|
|
outputHash: 54e703b297ce
|
|
paths./api/v1/tools/image/heic-to-pdf.post.summary:
|
|
sourceHash: d9a32701511d
|
|
provenance: machine
|
|
outputHash: d9a32701511d
|
|
paths./api/v1/tools/image/heic-to-pdf.post.description:
|
|
sourceHash: cb1a4bc6ad48
|
|
provenance: machine
|
|
outputHash: fc469b6c5f12
|
|
paths./api/v1/tools/image/tiff-to-pdf.post.summary:
|
|
sourceHash: 76458bef5bb7
|
|
provenance: machine
|
|
outputHash: 76458bef5bb7
|
|
paths./api/v1/tools/image/tiff-to-pdf.post.description:
|
|
sourceHash: f26e932da894
|
|
provenance: machine
|
|
outputHash: 69a9bb97546c
|
|
paths./api/v1/tools/image/webp-to-pdf.post.summary:
|
|
sourceHash: fdbcd78acb8e
|
|
provenance: machine
|
|
outputHash: fdbcd78acb8e
|
|
paths./api/v1/tools/image/webp-to-pdf.post.description:
|
|
sourceHash: 02d3842d170f
|
|
provenance: machine
|
|
outputHash: 34eab46d5e92
|
|
paths./api/v1/tools/image/gif-to-pdf.post.summary:
|
|
sourceHash: 62a5f26018fc
|
|
provenance: machine
|
|
outputHash: 62a5f26018fc
|
|
paths./api/v1/tools/image/gif-to-pdf.post.description:
|
|
sourceHash: e1d4ce05a711
|
|
provenance: machine
|
|
outputHash: a7703920e552
|
|
paths./api/v1/tools/image/eps-to-pdf.post.summary:
|
|
sourceHash: b183686e176a
|
|
provenance: machine
|
|
outputHash: b183686e176a
|
|
paths./api/v1/tools/image/eps-to-pdf.post.description:
|
|
sourceHash: 797845fc1a13
|
|
provenance: machine
|
|
outputHash: fc2537e450d8
|
|
paths./api/v1/tools/pdf/pdf-to-jpg.post.summary:
|
|
sourceHash: f84d053c3344
|
|
provenance: machine
|
|
outputHash: f84d053c3344
|
|
paths./api/v1/tools/pdf/pdf-to-jpg.post.description:
|
|
sourceHash: 294e7071a0cd
|
|
provenance: machine
|
|
outputHash: e1f715443127
|
|
paths./api/v1/tools/pdf/pdf-to-png.post.summary:
|
|
sourceHash: 18362545fcb8
|
|
provenance: machine
|
|
outputHash: 18362545fcb8
|
|
paths./api/v1/tools/pdf/pdf-to-png.post.description:
|
|
sourceHash: 879e2d2c287b
|
|
provenance: machine
|
|
outputHash: 923f72b4875b
|
|
paths./api/v1/tools/pdf/pdf-to-tiff.post.summary:
|
|
sourceHash: cd0065e23473
|
|
provenance: machine
|
|
outputHash: cd0065e23473
|
|
paths./api/v1/tools/pdf/pdf-to-tiff.post.description:
|
|
sourceHash: 4e46452ab02e
|
|
provenance: machine
|
|
outputHash: d5cdda15ba7b
|
|
paths./api/v1/tools/video/mov-to-mp4.post.summary:
|
|
sourceHash: b88833009ff9
|
|
provenance: machine
|
|
outputHash: b88833009ff9
|
|
paths./api/v1/tools/video/mov-to-mp4.post.description:
|
|
sourceHash: a248339c26d1
|
|
provenance: machine
|
|
outputHash: af96c96fa074
|
|
paths./api/v1/tools/video/webm-to-mp4.post.summary:
|
|
sourceHash: 66e6dae5210e
|
|
provenance: machine
|
|
outputHash: 66e6dae5210e
|
|
paths./api/v1/tools/video/webm-to-mp4.post.description:
|
|
sourceHash: a9977ca09125
|
|
provenance: machine
|
|
outputHash: 72163e12a761
|
|
paths./api/v1/tools/video/mkv-to-mp4.post.summary:
|
|
sourceHash: cffe53cd9489
|
|
provenance: machine
|
|
outputHash: cffe53cd9489
|
|
paths./api/v1/tools/video/mkv-to-mp4.post.description:
|
|
sourceHash: d4c9bfc05b71
|
|
provenance: machine
|
|
outputHash: 99a15764ecd3
|
|
paths./api/v1/tools/video/avi-to-mp4.post.summary:
|
|
sourceHash: a5ed5b5782d3
|
|
provenance: machine
|
|
outputHash: a5ed5b5782d3
|
|
paths./api/v1/tools/video/avi-to-mp4.post.description:
|
|
sourceHash: 59f0c2a1860b
|
|
provenance: machine
|
|
outputHash: f5f949a44eda
|
|
paths./api/v1/tools/video/mp4-to-mov.post.summary:
|
|
sourceHash: a20af2c4b1fb
|
|
provenance: machine
|
|
outputHash: a20af2c4b1fb
|
|
paths./api/v1/tools/video/mp4-to-mov.post.description:
|
|
sourceHash: 8d99e8459b46
|
|
provenance: machine
|
|
outputHash: f0ddaed13c38
|
|
paths./api/v1/tools/video/mp4-to-webm.post.summary:
|
|
sourceHash: a1b67df8d74e
|
|
provenance: machine
|
|
outputHash: a1b67df8d74e
|
|
paths./api/v1/tools/video/mp4-to-webm.post.description:
|
|
sourceHash: 2d0fec602c82
|
|
provenance: machine
|
|
outputHash: 39361a21a6ea
|
|
paths./api/v1/tools/video/webm-to-mov.post.summary:
|
|
sourceHash: 60df7d3b385b
|
|
provenance: machine
|
|
outputHash: 60df7d3b385b
|
|
paths./api/v1/tools/video/webm-to-mov.post.description:
|
|
sourceHash: 6982fc1cb933
|
|
provenance: machine
|
|
outputHash: 7783c1f6ab2c
|
|
paths./api/v1/tools/video/mkv-to-mov.post.summary:
|
|
sourceHash: dc04291270e6
|
|
provenance: machine
|
|
outputHash: dc04291270e6
|
|
paths./api/v1/tools/video/mkv-to-mov.post.description:
|
|
sourceHash: 71c9c1b99374
|
|
provenance: machine
|
|
outputHash: f8ff3a21027e
|
|
paths./api/v1/tools/video/avi-to-mov.post.summary:
|
|
sourceHash: 449c58ca9486
|
|
provenance: machine
|
|
outputHash: 449c58ca9486
|
|
paths./api/v1/tools/video/avi-to-mov.post.description:
|
|
sourceHash: 62b1fd2e8e0c
|
|
provenance: machine
|
|
outputHash: e224cc97af13
|
|
paths./api/v1/tools/video/mp4-to-avi.post.summary:
|
|
sourceHash: 700763fbdb4a
|
|
provenance: machine
|
|
outputHash: 700763fbdb4a
|
|
paths./api/v1/tools/video/mp4-to-avi.post.description:
|
|
sourceHash: da2c6f405f96
|
|
provenance: machine
|
|
outputHash: 99d1aa66eb31
|
|
paths./api/v1/tools/video/mov-to-avi.post.summary:
|
|
sourceHash: 6cc35a24d9fa
|
|
provenance: machine
|
|
outputHash: 6cc35a24d9fa
|
|
paths./api/v1/tools/video/mov-to-avi.post.description:
|
|
sourceHash: e1dd8989a812
|
|
provenance: machine
|
|
outputHash: 9cf427b88b9c
|
|
paths./api/v1/tools/video/mkv-to-avi.post.summary:
|
|
sourceHash: 993ee5fab472
|
|
provenance: machine
|
|
outputHash: 993ee5fab472
|
|
paths./api/v1/tools/video/mkv-to-avi.post.description:
|
|
sourceHash: f1b9b4ced057
|
|
provenance: machine
|
|
outputHash: 03feed864a7b
|
|
paths./api/v1/tools/video/avi-to-mkv.post.summary:
|
|
sourceHash: 3393bba23656
|
|
provenance: machine
|
|
outputHash: 3393bba23656
|
|
paths./api/v1/tools/video/avi-to-mkv.post.description:
|
|
sourceHash: ce821c05956b
|
|
provenance: machine
|
|
outputHash: 83c54deb5eb4
|
|
paths./api/v1/tools/video/mp4-to-gif.post.summary:
|
|
sourceHash: 62a7b6e94a53
|
|
provenance: machine
|
|
outputHash: 62a7b6e94a53
|
|
paths./api/v1/tools/video/mp4-to-gif.post.description:
|
|
sourceHash: eb95a94fc0e0
|
|
provenance: machine
|
|
outputHash: 65a5bf5cfa2d
|
|
paths./api/v1/tools/video/mov-to-gif.post.summary:
|
|
sourceHash: c0e8c3dcfdfd
|
|
provenance: machine
|
|
outputHash: c0e8c3dcfdfd
|
|
paths./api/v1/tools/video/mov-to-gif.post.description:
|
|
sourceHash: f0f7c24adb4f
|
|
provenance: machine
|
|
outputHash: 0855d5425b24
|
|
paths./api/v1/tools/video/mkv-to-gif.post.summary:
|
|
sourceHash: c19834912c0e
|
|
provenance: machine
|
|
outputHash: c19834912c0e
|
|
paths./api/v1/tools/video/mkv-to-gif.post.description:
|
|
sourceHash: 591062eb518f
|
|
provenance: machine
|
|
outputHash: e4510c839bc3
|
|
paths./api/v1/tools/video/avi-to-gif.post.summary:
|
|
sourceHash: b6286a84b91d
|
|
provenance: machine
|
|
outputHash: b6286a84b91d
|
|
paths./api/v1/tools/video/avi-to-gif.post.description:
|
|
sourceHash: dd44bdc0686d
|
|
provenance: machine
|
|
outputHash: 340d86191254
|
|
paths./api/v1/tools/video/gif-to-mp4.post.summary:
|
|
sourceHash: 9c2d0df2d1e9
|
|
provenance: machine
|
|
outputHash: 9c2d0df2d1e9
|
|
paths./api/v1/tools/video/gif-to-mp4.post.description:
|
|
sourceHash: 96914944fdc5
|
|
provenance: machine
|
|
outputHash: bc81ed2ff080
|
|
paths./api/v1/tools/video/gif-to-webm.post.summary:
|
|
sourceHash: f2b694034e10
|
|
provenance: machine
|
|
outputHash: f2b694034e10
|
|
paths./api/v1/tools/video/gif-to-webm.post.description:
|
|
sourceHash: 221c2fee1775
|
|
provenance: machine
|
|
outputHash: 8e1d0b390ad3
|
|
paths./api/v1/tools/video/gif-to-mov.post.summary:
|
|
sourceHash: 45c5f35f45f3
|
|
provenance: machine
|
|
outputHash: 45c5f35f45f3
|
|
paths./api/v1/tools/video/gif-to-mov.post.description:
|
|
sourceHash: 57996ae8e8cb
|
|
provenance: machine
|
|
outputHash: 2a09fcb9909b
|
|
paths./api/v1/tools/video/mp4-to-mp3.post.summary:
|
|
sourceHash: 69e107b048a8
|
|
provenance: machine
|
|
outputHash: 69e107b048a8
|
|
paths./api/v1/tools/video/mp4-to-mp3.post.description:
|
|
sourceHash: 40de83aa6ed2
|
|
provenance: machine
|
|
outputHash: 2e722ccd01a6
|
|
paths./api/v1/tools/video/mov-to-mp3.post.summary:
|
|
sourceHash: e149b039deaf
|
|
provenance: machine
|
|
outputHash: e149b039deaf
|
|
paths./api/v1/tools/video/mov-to-mp3.post.description:
|
|
sourceHash: 27f1a1f36a88
|
|
provenance: machine
|
|
outputHash: b1eed9d7a9a7
|
|
paths./api/v1/tools/video/mkv-to-mp3.post.summary:
|
|
sourceHash: a017e66660ad
|
|
provenance: machine
|
|
outputHash: a017e66660ad
|
|
paths./api/v1/tools/video/mkv-to-mp3.post.description:
|
|
sourceHash: 12cb145afcd0
|
|
provenance: machine
|
|
outputHash: 74b92757f5b0
|
|
paths./api/v1/tools/video/webm-to-mp3.post.summary:
|
|
sourceHash: 9fbcc26dd542
|
|
provenance: machine
|
|
outputHash: 9fbcc26dd542
|
|
paths./api/v1/tools/video/webm-to-mp3.post.description:
|
|
sourceHash: 5213b45f3c7d
|
|
provenance: machine
|
|
outputHash: 08d5276bcf31
|
|
paths./api/v1/tools/video/avi-to-mp3.post.summary:
|
|
sourceHash: 5f4d7167967b
|
|
provenance: machine
|
|
outputHash: 5f4d7167967b
|
|
paths./api/v1/tools/video/avi-to-mp3.post.description:
|
|
sourceHash: dea6a15cea91
|
|
provenance: machine
|
|
outputHash: aad04ce4c1c3
|
|
paths./api/v1/tools/video/mp4-to-wav.post.summary:
|
|
sourceHash: b6769af66349
|
|
provenance: machine
|
|
outputHash: b6769af66349
|
|
paths./api/v1/tools/video/mp4-to-wav.post.description:
|
|
sourceHash: 5b9126a6bb99
|
|
provenance: machine
|
|
outputHash: 163b7bf63e2b
|
|
paths./api/v1/tools/video/mov-to-wav.post.summary:
|
|
sourceHash: 4194226fdf68
|
|
provenance: machine
|
|
outputHash: 4194226fdf68
|
|
paths./api/v1/tools/video/mov-to-wav.post.description:
|
|
sourceHash: fe4925d7babd
|
|
provenance: machine
|
|
outputHash: 4bdaa70a34a7
|
|
paths./api/v1/tools/video/mp4-to-ogg.post.summary:
|
|
sourceHash: dcb33be4e615
|
|
provenance: machine
|
|
outputHash: dcb33be4e615
|
|
paths./api/v1/tools/video/mp4-to-ogg.post.description:
|
|
sourceHash: d8be42b38707
|
|
provenance: machine
|
|
outputHash: 8446c63cdefd
|
|
paths./api/v1/tools/audio/m4a-to-mp3.post.summary:
|
|
sourceHash: e4f86f589bd4
|
|
provenance: machine
|
|
outputHash: e4f86f589bd4
|
|
paths./api/v1/tools/audio/m4a-to-mp3.post.description:
|
|
sourceHash: ad144ccdc1d4
|
|
provenance: machine
|
|
outputHash: 38aab297068c
|
|
paths./api/v1/tools/audio/m4a-to-wav.post.summary:
|
|
sourceHash: 5e8aa1c62150
|
|
provenance: machine
|
|
outputHash: 5e8aa1c62150
|
|
paths./api/v1/tools/audio/m4a-to-wav.post.description:
|
|
sourceHash: dab8ed1c0668
|
|
provenance: machine
|
|
outputHash: ce04a2ee0839
|
|
paths./api/v1/tools/audio/aac-to-mp3.post.summary:
|
|
sourceHash: dd7d2c46e335
|
|
provenance: machine
|
|
outputHash: dd7d2c46e335
|
|
paths./api/v1/tools/audio/aac-to-mp3.post.description:
|
|
sourceHash: 4187ef8fb789
|
|
provenance: machine
|
|
outputHash: 8982c4ac4187
|
|
paths./api/v1/tools/audio/aac-to-wav.post.summary:
|
|
sourceHash: 6485f4d30fd0
|
|
provenance: machine
|
|
outputHash: 6485f4d30fd0
|
|
paths./api/v1/tools/audio/aac-to-wav.post.description:
|
|
sourceHash: c2221db94cf4
|
|
provenance: machine
|
|
outputHash: 21eb6e8e589d
|
|
paths./api/v1/tools/audio/aac-to-flac.post.summary:
|
|
sourceHash: 9dc0a9886938
|
|
provenance: machine
|
|
outputHash: 9dc0a9886938
|
|
paths./api/v1/tools/audio/aac-to-flac.post.description:
|
|
sourceHash: 945f63a2be18
|
|
provenance: machine
|
|
outputHash: f6ce3d70ecda
|
|
paths./api/v1/tools/audio/ogg-to-mp3.post.summary:
|
|
sourceHash: c3cff86b4282
|
|
provenance: machine
|
|
outputHash: c3cff86b4282
|
|
paths./api/v1/tools/audio/ogg-to-mp3.post.description:
|
|
sourceHash: 8889a760d19f
|
|
provenance: machine
|
|
outputHash: 42b165088361
|
|
paths./api/v1/tools/audio/ogg-to-wav.post.summary:
|
|
sourceHash: 85fbfd8ee338
|
|
provenance: machine
|
|
outputHash: 85fbfd8ee338
|
|
paths./api/v1/tools/audio/ogg-to-wav.post.description:
|
|
sourceHash: 99156f0db542
|
|
provenance: machine
|
|
outputHash: 603d96871f96
|
|
paths./api/v1/tools/audio/wav-to-mp3.post.summary:
|
|
sourceHash: d8344c7d753c
|
|
provenance: machine
|
|
outputHash: d8344c7d753c
|
|
paths./api/v1/tools/audio/wav-to-mp3.post.description:
|
|
sourceHash: 7f83d006baf8
|
|
provenance: machine
|
|
outputHash: 35f36f82b979
|
|
paths./api/v1/tools/audio/mp3-to-wav.post.summary:
|
|
sourceHash: a7de59ab62b9
|
|
provenance: machine
|
|
outputHash: a7de59ab62b9
|
|
paths./api/v1/tools/audio/mp3-to-wav.post.description:
|
|
sourceHash: c19d5fba1478
|
|
provenance: machine
|
|
outputHash: a6fc2045e5de
|
|
paths./api/v1/tools/audio/flac-to-mp3.post.summary:
|
|
sourceHash: da353684dd2b
|
|
provenance: machine
|
|
outputHash: da353684dd2b
|
|
paths./api/v1/tools/audio/flac-to-mp3.post.description:
|
|
sourceHash: e83797072608
|
|
provenance: machine
|
|
outputHash: 917846c391ff
|
|
paths./api/v1/tools/files/excel-to-csv.post.summary:
|
|
sourceHash: 8610a88e662a
|
|
provenance: machine
|
|
outputHash: 8610a88e662a
|
|
paths./api/v1/tools/files/excel-to-csv.post.description:
|
|
sourceHash: c5b6027afaa5
|
|
provenance: machine
|
|
outputHash: 631dde880e12
|
|
paths./api/v1/readyz.get.summary:
|
|
sourceHash: 2f70aef72373
|
|
provenance: machine
|
|
outputHash: fa6b9253bfbe
|
|
paths./api/v1/readyz.get.description:
|
|
sourceHash: 1600aad09ab9
|
|
provenance: machine
|
|
outputHash: f8393027e9d2
|
|
paths./api/v1/jobs/{jobId}/cancel.post.summary:
|
|
sourceHash: a5032d26d61d
|
|
provenance: machine
|
|
outputHash: ca8632377b72
|
|
paths./api/v1/jobs/{jobId}/cancel.post.description:
|
|
sourceHash: c828ad6eed72
|
|
provenance: machine
|
|
outputHash: ffc5f61532f2
|
|
paths./api/v1/preferences.get.summary:
|
|
sourceHash: 14eccfecf549
|
|
provenance: machine
|
|
outputHash: 39d6862ba40a
|
|
paths./api/v1/preferences.get.description:
|
|
sourceHash: be05d444bc85
|
|
provenance: machine
|
|
outputHash: c6c8960a2b20
|
|
paths./api/v1/preferences.put.summary:
|
|
sourceHash: 2649ca8f6a25
|
|
provenance: machine
|
|
outputHash: b1af089f444f
|
|
paths./api/v1/preferences.put.description:
|
|
sourceHash: ac325d43a780
|
|
provenance: machine
|
|
outputHash: 918d097bdcdb
|
|
paths./api/auth/mfa/enroll.post.summary:
|
|
sourceHash: c138aec8b79b
|
|
provenance: machine
|
|
outputHash: de07dc4b6636
|
|
paths./api/auth/mfa/enroll.post.description:
|
|
sourceHash: e00560362017
|
|
provenance: machine
|
|
outputHash: c75d6f5401bf
|
|
paths./api/auth/mfa/verify.post.summary:
|
|
sourceHash: 12b670ebf850
|
|
provenance: machine
|
|
outputHash: b525677f0bc9
|
|
paths./api/auth/mfa/verify.post.description:
|
|
sourceHash: ae628486beb5
|
|
provenance: machine
|
|
outputHash: 3a7cd229fe75
|
|
paths./api/auth/mfa/complete.post.summary:
|
|
sourceHash: 16f65adb8582
|
|
provenance: machine
|
|
outputHash: 863eec09d4ae
|
|
paths./api/auth/mfa/complete.post.description:
|
|
sourceHash: 3dc67142d5da
|
|
provenance: machine
|
|
outputHash: d85d15bde7e5
|
|
paths./api/auth/mfa/disable.post.summary:
|
|
sourceHash: 8adb8274a7c6
|
|
provenance: machine
|
|
outputHash: e66cd1c704f8
|
|
paths./api/auth/mfa/disable.post.description:
|
|
sourceHash: 7980f5f0d9f0
|
|
provenance: machine
|
|
outputHash: ebe678c8ff3c
|
|
paths./api/auth/users/{id}/mfa/reset.post.summary:
|
|
sourceHash: c765204eb72c
|
|
provenance: machine
|
|
outputHash: 885f22649f10
|
|
paths./api/auth/oidc/login.get.summary:
|
|
sourceHash: bac046b3ef24
|
|
provenance: machine
|
|
outputHash: 9fdf28dd9824
|
|
paths./api/auth/oidc/login.get.description:
|
|
sourceHash: e48289d1e534
|
|
provenance: machine
|
|
outputHash: 2bb13d70d45c
|
|
paths./api/auth/oidc/callback.get.summary:
|
|
sourceHash: 396eda750d3c
|
|
provenance: machine
|
|
outputHash: 396eda750d3c
|
|
paths./api/auth/oidc/callback.get.description:
|
|
sourceHash: e9437a06c530
|
|
provenance: machine
|
|
outputHash: f034c77b651d
|
|
paths./api/auth/saml/metadata.get.summary:
|
|
sourceHash: d6b4c80ec1e4
|
|
provenance: machine
|
|
outputHash: d6b4c80ec1e4
|
|
paths./api/auth/saml/metadata.get.description:
|
|
sourceHash: 0b08445f03af
|
|
provenance: machine
|
|
outputHash: d0e40c288a66
|
|
paths./api/auth/saml/login.get.summary:
|
|
sourceHash: 6de21463c7cb
|
|
provenance: machine
|
|
outputHash: 53ffad0cd625
|
|
paths./api/auth/saml/login.get.description:
|
|
sourceHash: eca8bcf506ea
|
|
provenance: machine
|
|
outputHash: 98077ce560be
|
|
paths./api/auth/saml/callback.post.summary:
|
|
sourceHash: 2a95ad454bd5
|
|
provenance: machine
|
|
outputHash: 2a95ad454bd5
|
|
paths./api/auth/saml/callback.post.description:
|
|
sourceHash: a03dcebde897
|
|
provenance: machine
|
|
outputHash: 4b906664bae3
|
|
paths./api/v1/files/{id}/preview.get.summary:
|
|
sourceHash: 71d50aa39313
|
|
provenance: machine
|
|
outputHash: 119b32de97df
|
|
paths./api/v1/files/{id}/preview.get.description:
|
|
sourceHash: fb3edf8df6cf
|
|
provenance: machine
|
|
outputHash: ff2850d9d3cc
|
|
paths./api/v1/preview/generate.post.summary:
|
|
sourceHash: cff28fa8e380
|
|
provenance: machine
|
|
outputHash: 4e54f4179c11
|
|
paths./api/v1/preview/generate.post.description:
|
|
sourceHash: 56d484d0c85b
|
|
provenance: machine
|
|
outputHash: b06930dbdef7
|
|
paths./api/v1/admin/log-level.get.summary:
|
|
sourceHash: f9fa3ff842cd
|
|
provenance: machine
|
|
outputHash: 6deca615d3d2
|
|
paths./api/v1/admin/log-level.get.description:
|
|
sourceHash: 277cddb1b284
|
|
provenance: machine
|
|
outputHash: 4a7ed486ba13
|
|
paths./api/v1/admin/log-level.post.summary:
|
|
sourceHash: e9ac46f76c49
|
|
provenance: machine
|
|
outputHash: 0e1fe13456a0
|
|
paths./api/v1/admin/log-level.post.description:
|
|
sourceHash: 5f12391622b9
|
|
provenance: machine
|
|
outputHash: 1e3ddf05c5fb
|
|
paths./api/v1/metrics.get.summary:
|
|
sourceHash: 05be9e156194
|
|
provenance: machine
|
|
outputHash: 05be9e156194
|
|
paths./api/v1/metrics.get.description:
|
|
sourceHash: e5723b8ba79e
|
|
provenance: machine
|
|
outputHash: a1f6815a03da
|
|
paths./api/v1/admin/support-bundle.get.summary:
|
|
sourceHash: 3fc31382eaf7
|
|
provenance: machine
|
|
outputHash: 3fc31382eaf7
|
|
paths./api/v1/admin/support-bundle.get.description:
|
|
sourceHash: c04e47b20915
|
|
provenance: machine
|
|
outputHash: 4f674fab0faa
|
|
paths./api/v1/admin/usage.get.summary:
|
|
sourceHash: 2f5017840735
|
|
provenance: machine
|
|
outputHash: e04e67b44b7f
|
|
paths./api/v1/admin/usage.get.description:
|
|
sourceHash: 5ba73241349d
|
|
provenance: machine
|
|
outputHash: 0073d147096b
|
|
paths./api/v1/admin/backup-status.get.summary:
|
|
sourceHash: cea8a0d690fc
|
|
provenance: machine
|
|
outputHash: ac9b468ec448
|
|
paths./api/v1/admin/backup-status.get.description:
|
|
sourceHash: e42e4494117a
|
|
provenance: machine
|
|
outputHash: 31c0b82f53f0
|
|
paths./api/v1/admin/backup-status.post.summary:
|
|
sourceHash: 1a7ed3984596
|
|
provenance: machine
|
|
outputHash: 1d1e052b702b
|
|
paths./api/v1/admin/backup-status.post.description:
|
|
sourceHash: 84b506533dbf
|
|
provenance: machine
|
|
outputHash: cdba20419861
|
|
paths./api/v1/admin/features/import.post.summary:
|
|
sourceHash: 31b34aebf83b
|
|
provenance: machine
|
|
outputHash: 884a3def34f5
|
|
paths./api/v1/admin/features/import.post.description:
|
|
sourceHash: 229fcb03f525
|
|
provenance: machine
|
|
outputHash: 373932fe29b3
|
|
paths./api/v1/enterprise/scim/token.post.summary:
|
|
sourceHash: e550c4aaeecf
|
|
provenance: machine
|
|
outputHash: a35ff7a09ebc
|
|
paths./api/v1/enterprise/scim/token.delete.summary:
|
|
sourceHash: e57912d50189
|
|
provenance: machine
|
|
outputHash: 632088aed2e8
|
|
paths./api/v1/scim/v2/ServiceProviderConfig.get.summary:
|
|
sourceHash: 6d9bb054fb7b
|
|
provenance: machine
|
|
outputHash: 6d9bb054fb7b
|
|
paths./api/v1/scim/v2/ServiceProviderConfig.get.description:
|
|
sourceHash: a111048aed19
|
|
provenance: machine
|
|
outputHash: 5c7620efe24f
|
|
paths./api/v1/scim/v2/Schemas.get.summary:
|
|
sourceHash: c04171c8ce40
|
|
provenance: machine
|
|
outputHash: c04171c8ce40
|
|
paths./api/v1/scim/v2/Schemas.get.description:
|
|
sourceHash: 74cf47ef6038
|
|
provenance: machine
|
|
outputHash: d739d9970e8f
|
|
paths./api/v1/scim/v2/ResourceTypes.get.summary:
|
|
sourceHash: b3f61558b888
|
|
provenance: machine
|
|
outputHash: b3f61558b888
|
|
paths./api/v1/scim/v2/ResourceTypes.get.description:
|
|
sourceHash: d3935183ed14
|
|
provenance: machine
|
|
outputHash: b9ff99bc6a79
|
|
paths./api/v1/scim/v2/Users.get.summary:
|
|
sourceHash: 06aa223783d0
|
|
provenance: machine
|
|
outputHash: 5a63dac3a89b
|
|
paths./api/v1/scim/v2/Users.get.description:
|
|
sourceHash: dccfb3116fb5
|
|
provenance: machine
|
|
outputHash: cccccad82d6c
|
|
paths./api/v1/scim/v2/Users.post.summary:
|
|
sourceHash: ba4ce4467898
|
|
provenance: machine
|
|
outputHash: 7e7a8f6f1397
|
|
paths./api/v1/scim/v2/Users.post.description:
|
|
sourceHash: ab9d5413dfe0
|
|
provenance: machine
|
|
outputHash: ca72f504aad2
|
|
paths./api/v1/scim/v2/Users/{id}.get.summary:
|
|
sourceHash: 06a26f48a1d7
|
|
provenance: machine
|
|
outputHash: ff92ac3a90e5
|
|
paths./api/v1/scim/v2/Users/{id}.get.description:
|
|
sourceHash: f643db8015e1
|
|
provenance: machine
|
|
outputHash: 14211f38b55b
|
|
paths./api/v1/scim/v2/Users/{id}.put.summary:
|
|
sourceHash: acfe35ddd973
|
|
provenance: machine
|
|
outputHash: 75fb78ba5aa9
|
|
paths./api/v1/scim/v2/Users/{id}.put.description:
|
|
sourceHash: 7051119f905f
|
|
provenance: machine
|
|
outputHash: cd7ab2eca83f
|
|
paths./api/v1/scim/v2/Users/{id}.delete.summary:
|
|
sourceHash: 11c8da919810
|
|
provenance: machine
|
|
outputHash: 9c849e7a8b6c
|
|
paths./api/v1/scim/v2/Users/{id}.delete.description:
|
|
sourceHash: f8a3ee46d088
|
|
provenance: machine
|
|
outputHash: 281a62047712
|
|
paths./api/v1/scim/v2/Groups.get.summary:
|
|
sourceHash: 7f5cfe4da60d
|
|
provenance: machine
|
|
outputHash: 604a12717617
|
|
paths./api/v1/scim/v2/Groups.get.description:
|
|
sourceHash: b3dea6667317
|
|
provenance: machine
|
|
outputHash: 01f7503b7c9d
|
|
paths./api/v1/scim/v2/Groups.post.summary:
|
|
sourceHash: 2477896fba1c
|
|
provenance: machine
|
|
outputHash: 1f77ddb778c4
|
|
paths./api/v1/scim/v2/Groups.post.description:
|
|
sourceHash: fbb117796dfb
|
|
provenance: machine
|
|
outputHash: 46a532fd2462
|
|
paths./api/v1/scim/v2/Groups/{id}.get.summary:
|
|
sourceHash: cf7956970f8e
|
|
provenance: machine
|
|
outputHash: c8c9c278b834
|
|
paths./api/v1/scim/v2/Groups/{id}.get.description:
|
|
sourceHash: 7aeb5a733198
|
|
provenance: machine
|
|
outputHash: 703ef84d7667
|
|
paths./api/v1/scim/v2/Groups/{id}.put.summary:
|
|
sourceHash: 5878fbd31c27
|
|
provenance: machine
|
|
outputHash: 3325c24e6e76
|
|
paths./api/v1/scim/v2/Groups/{id}.put.description:
|
|
sourceHash: 0b41d735866c
|
|
provenance: machine
|
|
outputHash: 48349331e823
|
|
paths./api/v1/scim/v2/Groups/{id}.delete.summary:
|
|
sourceHash: 37212ab76d6b
|
|
provenance: machine
|
|
outputHash: 23310cd0e593
|
|
paths./api/v1/scim/v2/Groups/{id}.delete.description:
|
|
sourceHash: faf5572bb482
|
|
provenance: machine
|
|
outputHash: faba40bb6724
|
|
paths./api/v1/enterprise/audit/export.get.summary:
|
|
sourceHash: bb1ef74df6a7
|
|
provenance: machine
|
|
outputHash: 40bffdac1aa4
|
|
paths./api/v1/enterprise/audit/export.get.description:
|
|
sourceHash: 78723fd7a551
|
|
provenance: machine
|
|
outputHash: 577a8ae21c19
|
|
paths./api/v1/enterprise/config/export.get.summary:
|
|
sourceHash: 0657bced852f
|
|
provenance: machine
|
|
outputHash: 90c5442816d3
|
|
paths./api/v1/enterprise/config/export.get.description:
|
|
sourceHash: 78e6cca796a5
|
|
provenance: human
|
|
outputHash: 67b7c13336de
|
|
paths./api/v1/enterprise/config/import.post.summary:
|
|
sourceHash: 8a507f40b80f
|
|
provenance: machine
|
|
outputHash: a35b2c408440
|
|
paths./api/v1/enterprise/config/import.post.description:
|
|
sourceHash: 21367e8b3579
|
|
provenance: human
|
|
outputHash: 941451f40982
|
|
paths./api/v1/enterprise/ip-allowlist.get.summary:
|
|
sourceHash: 8756df674b27
|
|
provenance: machine
|
|
outputHash: 6c9b1171a3b2
|
|
paths./api/v1/enterprise/ip-allowlist.get.description:
|
|
sourceHash: 42fe8d5e6555
|
|
provenance: machine
|
|
outputHash: 70db5e2faf3b
|
|
paths./api/v1/enterprise/ip-allowlist.put.summary:
|
|
sourceHash: e0d442c15809
|
|
provenance: machine
|
|
outputHash: 3be904e8155c
|
|
paths./api/v1/enterprise/ip-allowlist.put.description:
|
|
sourceHash: 0cb040540d15
|
|
provenance: machine
|
|
outputHash: ed537caeaf72
|
|
paths./api/v1/enterprise/legal-hold.get.summary:
|
|
sourceHash: a3b33d97f1b3
|
|
provenance: machine
|
|
outputHash: ee2644740707
|
|
paths./api/v1/enterprise/legal-hold.get.description:
|
|
sourceHash: 2b51807e41b2
|
|
provenance: machine
|
|
outputHash: 12d7d20447ec
|
|
paths./api/v1/enterprise/legal-hold.put.summary:
|
|
sourceHash: f0f8a1f6bd23
|
|
provenance: machine
|
|
outputHash: 3e9692bebe80
|
|
paths./api/v1/enterprise/legal-hold.put.description:
|
|
sourceHash: 2f22192732ff
|
|
provenance: machine
|
|
outputHash: e2af251a591b
|
|
paths./api/v1/enterprise/siem/config.get.summary:
|
|
sourceHash: 7ac4058ce316
|
|
provenance: machine
|
|
outputHash: 2ce0e32e398f
|
|
paths./api/v1/enterprise/siem/config.get.description:
|
|
sourceHash: b4c92171b7fb
|
|
provenance: machine
|
|
outputHash: b06d234f6255
|
|
paths./api/v1/enterprise/siem/config.put.summary:
|
|
sourceHash: b236d6669c61
|
|
provenance: machine
|
|
outputHash: 6ff5e20a114b
|
|
paths./api/v1/enterprise/siem/config.put.description:
|
|
sourceHash: 94cec3b103c8
|
|
provenance: machine
|
|
outputHash: 293523e99a18
|
|
paths./api/v1/enterprise/webhooks.get.summary:
|
|
sourceHash: a43cfb1a8c96
|
|
provenance: machine
|
|
outputHash: 149b74ee5ca1
|
|
paths./api/v1/enterprise/webhooks.get.description:
|
|
sourceHash: 292a38feca49
|
|
provenance: machine
|
|
outputHash: 77b0465fd094
|
|
paths./api/v1/enterprise/webhooks.post.summary:
|
|
sourceHash: 4a2b33ad2c1f
|
|
provenance: machine
|
|
outputHash: c18650ca8bf2
|
|
paths./api/v1/enterprise/webhooks.post.description:
|
|
sourceHash: 2cc3c4b18327
|
|
provenance: machine
|
|
outputHash: 6a94160c28bf
|
|
paths./api/v1/enterprise/webhooks/{index}.put.summary:
|
|
sourceHash: c5be5387d7be
|
|
provenance: machine
|
|
outputHash: 8a4703c517d3
|
|
paths./api/v1/enterprise/webhooks/{index}.put.description:
|
|
sourceHash: 28806bb5b6ce
|
|
provenance: machine
|
|
outputHash: 1e25e23bf0d4
|
|
paths./api/v1/enterprise/webhooks/{index}.delete.summary:
|
|
sourceHash: 60f85e57e4a7
|
|
provenance: machine
|
|
outputHash: b0518c16db32
|
|
paths./api/v1/enterprise/webhooks/{index}.delete.description:
|
|
sourceHash: 97b9800c59a2
|
|
provenance: machine
|
|
outputHash: a2865b3b5f98
|
|
paths./api/v1/enterprise/webhooks/{index}/test.post.summary:
|
|
sourceHash: 333e8368ac5c
|
|
provenance: machine
|
|
outputHash: 7dc735537649
|
|
paths./api/v1/enterprise/webhooks/{index}/test.post.description:
|
|
sourceHash: 5626cb4c037d
|
|
provenance: machine
|
|
outputHash: 306708211b42
|
|
paths./api/v1/enterprise/users/{id}/export.post.summary:
|
|
sourceHash: 75556a6714fc
|
|
provenance: machine
|
|
outputHash: 72ef813f1006
|
|
paths./api/v1/enterprise/users/{id}/export.post.description:
|
|
sourceHash: 4f90b2a09ef8
|
|
provenance: machine
|
|
outputHash: 6247b41d2003
|
|
paths./api/v1/enterprise/users/{id}/export/{jobId}.get.summary:
|
|
sourceHash: 7fa624472044
|
|
provenance: machine
|
|
outputHash: c53e088ee621
|
|
paths./api/v1/enterprise/users/{id}/export/{jobId}.get.description:
|
|
sourceHash: fb51267dcbf7
|
|
provenance: machine
|
|
outputHash: 6ac2a2124f0c
|
|
paths./api/v1/enterprise/users/{id}/purge.delete.summary:
|
|
sourceHash: 09c40d574cc0
|
|
provenance: machine
|
|
outputHash: b1d2bfde9537
|
|
paths./api/v1/enterprise/teams/{id}/purge.delete.summary:
|
|
sourceHash: e5f557c6db8b
|
|
provenance: machine
|
|
outputHash: a11ae49bffa6
|
|
paths./api/v1/admin/version.get.summary:
|
|
sourceHash: 1fa5f3f5fa4a
|
|
provenance: machine
|
|
outputHash: 6408aec786f0
|
|
paths./api/v1/admin/version.get.description:
|
|
sourceHash: b72b0bfc24e6
|
|
provenance: machine
|
|
outputHash: a816a5f37ec6
|
|
paths./api/v1/admin/migrations/pending.get.summary:
|
|
sourceHash: dd3d4aea6207
|
|
provenance: machine
|
|
outputHash: 1045836d50d9
|
|
paths./api/v1/admin/migrations/pending.get.description:
|
|
sourceHash: 434f121758d2
|
|
provenance: machine
|
|
outputHash: 28f5ed26d67c
|
|
paths./api/v1/admin/upgrade-check.get.summary:
|
|
sourceHash: abc755f5b011
|
|
provenance: machine
|
|
outputHash: bb99d32af951
|
|
paths./api/v1/admin/upgrade-check.get.description:
|
|
sourceHash: a21396abfd74
|
|
provenance: machine
|
|
outputHash: 4d0bd3cf175e
|
|
paths./llms.txt.get.summary:
|
|
sourceHash: ba31286a938b
|
|
provenance: machine
|
|
outputHash: c929bfcf8348
|
|
paths./llms.txt.get.description:
|
|
sourceHash: 5f69094320cb
|
|
provenance: machine
|
|
outputHash: dd4f721da07f
|
|
paths./llms-full.txt.get.summary:
|
|
sourceHash: 6f12d5cecc9d
|
|
provenance: machine
|
|
outputHash: 692d853eafb3
|
|
paths./llms-full.txt.get.description:
|
|
sourceHash: a135dfc6aac1
|
|
provenance: machine
|
|
outputHash: 9c8df4988d4b
|
|
paths./api/v1/openapi.yaml.get.summary:
|
|
sourceHash: 9ee7dc77d462
|
|
provenance: machine
|
|
outputHash: 9ee7dc77d462
|
|
paths./api/v1/openapi.yaml.get.description:
|
|
sourceHash: 10ceb656a256
|
|
provenance: machine
|
|
outputHash: 0830a8cf655d
|
|
paths./api/v1/tools/popular.get.summary:
|
|
sourceHash: de2139ffd4c3
|
|
provenance: machine
|
|
outputHash: 078778d637a0
|
|
paths./api/v1/tools/popular.get.description:
|
|
sourceHash: 40c9637d843b
|
|
provenance: machine
|
|
outputHash: 0d52b2807e82
|