๐ NCA TOOLKIT
โ PRODUCTION READY - 8 Validated Endpoints | Complete N8N Integration | MinIO S3 Storage
โก Performance & Connection Optimization
๐ Optimal Connection Methods (Fastest to Slowest):
- Container IP:
http://172.19.0.2:8080
- 0.318s - Container Name:
http://ncat:8080
- ~0.35s โญ BEST - Localhost:
http://ncat:8080
- 0.631s - โ External Domain:
~~https://ncp.itgyani.com~~
- 1.330s + timeouts โ ๏ธ AVOID
http://ncat:8080
for optimal container communication (80% faster)
40+
API Endpoints
8
Media Categories
โ
Processing Power
FREE
Self-Hosted
๐งช Updated API Status Report - August 2025
โ Working Endpoints (8)
โจ = Recently schema-fixed and functional
โ Broken Endpoints (4)
- /v1/video/concatenate - Schema conflict
- /v1/image/screenshot/webpage - Too restrictive
- /v1/ffmpeg/compose - Parameter mismatch
- /v1/toolkit/job/status/* - Not implemented
๏ฟฝ Success Rate: 67% (8/12 endpoints) | All URLs updated to localhost:8080 | MinIO S3 integration active
โก API Connection Test
Test your connection to the NCA Toolkit API instantly:
โ Expected Success Response:
{"code": 200, "message": "success", "job_id": "abc-123", "run_time": 0.234}
๐ Parameter Guide & n8n Integration
โ ๏ธ Parameter Validation
- Strict Schema: Only documented parameters accepted
- Case Sensitive: Use exact parameter names
- No Extra Params: Additional parameters cause 400 errors
- Required Fields: All required parameters must be included
๐ฏ Key Parameter Notes
- Screenshot: Only accepts
url
parameter - Video Thumbnail: Uses
video_url
(not file_url) - Audio Transcribe: Uses
media_url
parameter - Media Convert: Requires
format
parameter
๐ง n8n HTTP Node Setup
Method: POST (most APIs)
Headers: X-API-Key: local-dev-key-123
Body: {"param": "{{ $json.value }}"}
๐ Response Patterns
- Async Jobs: Returns
{"job_id": "...", "response": "http://minio:9000/..."}
- Code Execution: Returns
{"response": {"stdout": "..."}}
- Status Check: Use
/v1/toolkit/job/status/{job_id}
- Error Format:
{"message": "Invalid payload: ..."}
โ WORKING APIs (8 Endpoints)
Fully functional endpoints with complete N8N integration guides and MinIO S3 storage paths
๐ฏ How to Use This Interactive API Guide
๐ฑ๏ธ CLICK ENDPOINTS FOR DETAILS
Each endpoint card shows basic info. Click the header to expand and see:
- Complete parameter definitions
- N8N HTTP node configuration
- MinIO S3 storage paths
- Copy-ready cURL examples
๐ N8N INTEGRATION READY
Every working endpoint includes:
- HTTP node URL and method
- Required headers and API key
- JSON body templates with variables
- Response format examples
๐ MINIO S3 INTEGRATION
All file outputs stored at:
- Server: minio.itgyani.com:9000
- Bucket: nca-toolkit-local
- Access: Public read after processing
- Format: [job_id]_filename.ext
๐ก TIP: Recently schema-fixed endpoints marked with โจ - now fully functional after parameter corrections!
โ Test Result: Transcription successful with job_id and text result.
๐ Parameters:
๐ N8N HTTP Node Configuration:
URL: http://localhost:8080/v1/media/transcribe Method: POST Headers: X-API-Key: local-dev-key-123 Content-Type: application/json Body: { "media_url": "{{ $json.media_url }}", "language": "en" } Response Format: { "job_id": "uuid-string", "transcription": "Full text result" }
โ Test Result: Returns job_id for asynchronous processing. Performance: ~27s
Response: {"job_id": "359a71e7-6de1-4dc5-841b-45661d607b64", "response": "http://minio.itgyani.com:9000/nca-toolkit-local/[job_id].mp3"}
๐ Storage: Files stored in MinIO S3 bucket at minio.itgyani.com
๐ Parameters:
๐ N8N HTTP Node Configuration:
URL: http://localhost:8080/v1/media/convert/mp3 Method: POST Headers: X-API-Key: local-dev-key-123 Content-Type: application/json Body: { "media_url": "{{ $json.video_url }}" } Response Format: { "job_id": "uuid-string", "response": "http://minio.itgyani.com:9000/nca-toolkit-local/[job_id].mp3" } ๐ MinIO S3 Details: - Bucket: nca-toolkit-local - Server: minio.itgyani.com:9000 - Access: Public read after processing
โ Test Result: Successfully generates thumbnail with job_id and MinIO URL.
Response: {"job_id": "43fc0ead-bdd9-498b-ad66-e3b284413730", "response": "http://minio.itgyani.com:9000/nca-toolkit-local/[job_id]_thumbnail.jpg"}
๐ Storage: Thumbnail images stored in MinIO S3 with public access
๐ Parameters:
๐ N8N HTTP Node Configuration:
URL: http://localhost:8080/v1/video/thumbnail Method: POST Headers: X-API-Key: local-dev-key-123 Content-Type: application/json Body: { "video_url": "{{ $json.video_url }}" } Response Format: { "job_id": "uuid-string", "response": "http://minio.itgyani.com:9000/nca-toolkit-local/[job_id]_thumbnail.jpg" } ๐ MinIO S3 Details: - Bucket: nca-toolkit-local - File Format: [job_id]_thumbnail.jpg - Server: minio.itgyani.com:9000 - Direct browser access available
โ Test Result: Successfully converts with job_id. Performance: ~10-30s depending on format
Response: {"job_id": "b847f718-adde-4344-bb54-63baf454ca97", "response": "http://minio:9000/nca-toolkit-local/[job_id].[format]"}
๐ Parameters:
โ Always Available: Fast connectivity test endpoint. Performance: ~0.25s
Response: {"job_id": "04a1587a-a14f-4381-8232-bbfb9659a8f5", "response": "http://minio:9000/nca-toolkit-local/success.txt"}
๐ Parameters:
โ Test Result: Successfully uploads files to MinIO storage with proper metadata.
Response: {"bucket": "nca-toolkit-local", "file_url": "http://minio:9000/...", "filename": "image.jpg", "public": false}
๐ Parameters:
๐ N8N HTTP Node Configuration:
URL: http://localhost:8080/v1/s3/upload Method: POST Headers: X-API-Key: local-dev-key-123 Content-Type: application/json Body: { "file_url": "{{ $json.source_url }}", "destination_path": "uploads/{{ $json.filename }}" } Response Format: { "bucket": "nca-toolkit-local", "file_url": "http://minio.itgyani.com:9000/nca-toolkit-local/...", "filename": "filename.ext", "public": false } ๐ MinIO S3 Details: - Bucket: nca-toolkit-local - Server: minio.itgyani.com:9000 - Supports: Images, videos, documents, any file type
โ Schema Fixed & Working: Correct SRT format now accepted by backend processing.
Response: {"job_id": "uuid-string", "response": "http://minio.itgyani.com:9000/nca-toolkit-local/[job_id]_captioned.mp4"}
๐ Storage: Captioned videos stored in MinIO S3 with public access
๐ Parameters:
โ ๏ธ SRT Format Required: Must use "1\n00:00:01,000 --> 00:00:03,000\nText\n\n" format. Array format will cause HTTP 400 error.
๐ N8N HTTP Node Configuration:
URL: http://localhost:8080/v1/video/caption Method: POST Headers: X-API-Key: local-dev-key-123 Content-Type: application/json Body: { "video_url": "{{ $json.video_url }}", "captions": "1\n00:00:01,000 --> 00:00:03,000\n{{ $json.caption_text_1 }}\n\n2\n00:00:04,000 --> 00:00:06,000\n{{ $json.caption_text_2 }}\n\n" } Response Format: { "job_id": "uuid-string", "response": "http://minio.itgyani.com:9000/nca-toolkit-local/[job_id]_captioned.mp4" } ๐ MinIO S3 Details: - Bucket: nca-toolkit-local - File Format: [job_id]_captioned.mp4 - Server: minio.itgyani.com:9000 - Processing Time: 15-30 seconds
โ Schema Fixed & Working: String timestamps now processed correctly by backend.
Response: {"job_id": "uuid-string", "response": "http://minio.itgyani.com:9000/nca-toolkit-local/[job_id]_cut.mp4"}
๐ Storage: Cut video segments stored in MinIO S3 with public access
๐ Parameters:
โ ๏ธ String Format Required: Use "start": "1", "end": "3" (strings). Integer format will cause processing errors.
๐ N8N HTTP Node Configuration:
URL: http://localhost:8080/v1/video/cut Method: POST Headers: X-API-Key: local-dev-key-123 Content-Type: application/json Body: { "video_url": "{{ $json.video_url }}", "cuts": [ {"start": "{{ $json.start_time_1 }}", "end": "{{ $json.end_time_1 }}"}, {"start": "{{ $json.start_time_2 }}", "end": "{{ $json.end_time_2 }}"} ] } Response Format: { "job_id": "uuid-string", "response": "http://minio.itgyani.com:9000/nca-toolkit-local/[job_id]_cut.mp4" } ๐ MinIO S3 Details: - Bucket: nca-toolkit-local - File Format: [job_id]_cut.mp4 - Server: minio.itgyani.com:9000 - Multiple segments merged into single video
๐ง UNDER DEVELOPMENT (6+ Endpoints)
APIs with uncertain status - may work with correct parameters but need thorough testing
๐ง Working Parameters:
โ Test Result: Transcription successful with job_id and text result.
Response: {"job_id": "f37d6787-3202-4bd1-b8e3-ccf2a309a5b0", "response": {"text": "transcribed text", "segments": null, "srt": null}, "run_time": 16.837}
๐ง Working Parameters:
โ Test Result: Returns job_id for asynchronous processing. Output: MinIO URL with converted MP3 file.
Sample Response: {"job_id": "81bfa0d5-afa2-4f99-941d-fae9c1353cd6", "response": "http://minio:9000/nca-toolkit-local/[job_id].mp3", "run_time": 2.717}
โ Confirmed Format: API expects array of objects with "url" property. Do NOT include audio_url field.
Working Schema: audio_urls: [{"url": "file1.mp3"}, {"url": "file2.mp3"}]
๐ฌ Video Processing APIs
๐ง Required Format:
โ Server Error: Endpoint returns HTTP 500 Internal Server Error even with minimal payload.
Status: Backend implementation issue - endpoint needs fixing.
โ Test Result: Successfully generates thumbnail with job_id and MinIO URL.
Response: {"job_id": "43fc0ead-bdd9-498b-ad66-e3b284413730", "response": "http://minio:9000/nca-toolkit-local/[job_id]_thumbnail.jpg", "run_time": 13.2}
๐ง Working Parameters:
๐ง Working Parameters:
โ Server Error: Endpoint returns HTTP 500 Internal Server Error. May need backend fixes.
Status: Schema validated but processing failed - backend issue detected.
โ Schema Issue: API expects both 'video_url' AND 'video_urls' fields but rejects additional properties.
Status: Conflicting API requirements - backend schema needs fixing.
๐ง Working Parameters:
โ Test Result: Successfully converts with job_id and MinIO URL.
Response: {"job_id": "b847f718-adde-4344-bb54-63baf454ca97", "response": "http://minio:9000/nca-toolkit-local/[job_id].[format]", "run_time": 9.7}
๐ผ๏ธ Image Processing APIs
๐ง Working Parameters:
โ Working! Returns video URL in ~30-35 seconds
url
parameter. Additional parameters like width, height, device will cause errors.
๐ Required Parameters:
โ ๏ธ Parameter Validation: This endpoint strictly validates parameters. Do NOT include width, height, device, format, or other parameters as they will cause a 400 error.
๐ n8n HTTP Node Configuration:
URL: http://ncat:8080/v1/image/screenshot/webpage Method: POST Headers: X-API-Key: local-dev-key-123 Body: {"url": "{{ $json.webpage_url }}"}
โ๏ธ Advanced Processing APIs
๐ง Working Parameters:
โ Response Example:
{ "bucket": "nca-toolkit-local", "file_url": "http://minio:9000/...", "filename": "300.jpg", "public": false }
๐ง Working Parameters:
โ Working! Returns:
{ "exit_code": 0, "stdout": "output here", "stderr": "", "result": null }
๐ง Working Parameters:
โ Working! Returns array of silence segments
โ๏ธ Cloud Storage & Beta APIs
๐ง Working Parameters:
โ ๏ธ BETA: This endpoint downloads content to MinIO storage and provides metadata including title, description, and view counts.
โ Working! Returns:
- Downloaded media file URL
- Title, description, metadata
- Duration, resolution, codec info
- View count and uploader details
โ NON-WORKING ENDPOINTS (4 Critical Issues)
Endpoints with confirmed issues requiring immediate developer attention
โ Conflicting Requirements: API schema requires both single 'video_url' and array 'video_urls' simultaneously.
Developer Action: Fix backend schema to accept either video_url OR video_urls, not both.
โ Limited Functionality: Adding width, height, or device parameters causes "Additional properties not allowed" error.
Developer Action: Relax parameter validation to allow standard screenshot options.
โ Schema Mismatch: Backend expects 'inputs' parameter but documentation uses 'input_urls'.
Developer Action: Align parameter names between API schema and documentation.
โ Missing Feature: Returns HTTP 404 - endpoint not implemented in backend.
Developer Action: Implement job status tracking or remove from documentation.
๐ง Developer Action Required
- Video Concatenate: Fix conflicting schema requirements
- Image Screenshot: Allow width/height parameters
- FFmpeg Compose: Align parameter naming with documentation
- Job Status: Implement endpoint or remove from docs
๐ Working Video Creation Workflow
Professional video creation pipeline using tested and working APIs
Create Background Video from Image
Extract Video Metadata
Generate Video Thumbnail
Upload Both to Permanent Storage
๐ง System & Monitoring APIs
โ Success Response:
{ "code": 200, "message": "success", "job_id": "abc-123-def-456", "response": "http://minio:9000/nca-toolkit-local/success.txt", "run_time": 0.234, "queue_length": 0, "build_number": 200 }
โ ๏ธ Status: This endpoint returns 404 - may not be implemented. Jobs typically return results immediately or timeout.