">

AI-Powered Video Reframe API for businesses

Turn any video into perfect TikTok, Reels & Shorts – AI auto-reframes, tracks, and focuses on the main subject in videos.

✨ Managed SaaS API service for B2B (Business-to-Business)

Intelligent Video Reframing Features

🎯

AI-Powered Framing

Advanced AI automatically detects and tracks subjects, intelligently adjusting the frame to keep important elements in focus.

📱

Multi-Format Support

Reframe videos for any aspect ratio or device - from vertical mobile videos to widescreen cinematic formats.

🎬

Smart Composition

Maintains professional composition rules like rule of thirds, ensuring your reframed videos look polished and balanced.

Fast Processing

Process videos quickly with our optimized AI pipeline, delivering reframed results in minutes, not hours.

🎨

Seamless Transitions

Smooth frame adjustments that maintain visual continuity, avoiding jarring cuts or sudden movements.

🔍

Subject Tracking

Intelligently tracks multiple subjects, ensuring all important elements remain visible and well-framed throughout the video.

📐

Custom Aspect Ratios

Reframe to any aspect ratio you need - 16:9, 9:16, 1:1, 4:3, or custom dimensions for your specific use case.

🌐

API Integration

Easy-to-use REST API for seamless integration into your existing workflows and applications.

💾

High Quality Output

Maintains original video quality while reframing, ensuring your content looks professional and crisp.

Simple Credit-Based Pricing

Professional Plan

Pay only for what you use with our flexible credit system

  • AI Video Reframing £0.10 / min

Simple Pricing

£0.10 per minute of video
Minimum £0.10 per video
Pay only for what you use
Enterprise plans available

Buy Credits

Developer API Documentation

API 1: Submit Reframe Job

POST https://croply.uk/api/v1/reframe

Parameters:

  • callback_url - URL to receive job completion notification.
  • video_url - Public URL to the video file (required)
  • api_key - Your API access key (required)

Response: Returns JSON with either job_id or error field.

API 2: Check Job Status

GET https://croply.uk/api/v1/job_status?job_id={job_id}&api_key={your_api_key}

Parameters:

  • job_id - The job ID returned from the reframe API (required)
  • api_key - Your API access key (required)

Response Fields:

  • job_id - The unique job identifier
  • status - Current job status (in_queue, processing, success, or failed)
  • callback_url - The callback URL you provided
  • job_started_unix - Unix timestamp when job started processing
  • job_completed_unix - Unix timestamp when job completed
  • error_message - Error message if job failed (null otherwise)
  • reframed_video_url - URL to download the reframed video (if successful)
  • callback_response_error - Error returned by your callback endpoint (null if no error)
  • failed_callbacks_count - Number of failed webhook delivery attempts
  • last_callback_unix - Unix timestamp of last webhook attempt

Status Values:

  • in_queue - Job is waiting to be processed
  • processing - Job is currently being processed
  • success - Job completed successfully
  • failed - Job failed

Callbacks / Webhooks

When you provide a callback_url in your reframe request, we will send a POST request to that URL when the job completes (either successfully or with an error).

Webhook Behavior:

  • We send a POST request to your callback URL
  • We expect a 200 OK HTTP response code to acknowledge receipt
  • If we don't receive HTTP 200, we retry within 10 mins up to 3 times
  • Once HTTP 200 is received, we do not retry (even if your response contains an error)

Webhook Payload:

The POST request body contains the same JSON fields as the Job Status API response:

  • status - Current job status (in_queue, success, or failed)
  • job_id - The unique job identifier
  • callback_url - The callback URL you provided
  • job_started_unix - Unix timestamp when job started processing
  • job_completed_unix - Unix timestamp when job completed
  • error_message - Error message if job failed (null otherwise)
  • reframed_video_url - URL to download the reframed video (if successful)

Your Response Format:

Your callback endpoint should always return HTTP 200 to acknowledge receipt. You can optionally return a JSON response to report processing errors:

  • success - boolean - true if you processed the callback successfully
  • error - string (optional) - error code if success is false
  • error_message - string (optional) - human-readable error message

Note: We record your error response for debugging purposes but do not retry the webhook.

Example Webhook Handler (Node.js):

app.post('/webhook/croply', async (req, res) => {
  const { status, job_id, reframed_video_url, error_message } = req.body;
  
  try {
    if (status === 'success') {
      console.log(`Job ${job_id} completed: ${reframed_video_url}`);
      // Download and process the reframed video
      await downloadVideo(reframed_video_url);
    } else if (status === 'failed') {
      console.error(`Job ${job_id} failed: ${error_message}`);
    }
    
    // Return 200 OK with success
    res.status(200).json({ success: true });
  } catch (err) {
    // Return 200 OK but report the error (Croply will record it)
    res.status(200).json({ 
      success: false, 
      error: 'processing_failed',
      error_message: err.message 
    });
  }
});

Example Webhook Handler (PHP):

<?php
// Always return 200 to acknowledge receipt
http_response_code(200);
header('Content-Type: application/json');

$payload = json_decode(file_get_contents('php://input'), true);
$jobId = $payload['job_id'] ?? null;
$status = $payload['status'] ?? null;

try {
    if ($status === 'success') {
        // Download the reframed video
        $videoUrl = $payload['reframed_video_url'];
        // ... your download logic
    }
    
    echo json_encode(['success' => true]);
} catch (Exception $e) {
    // Report error but don't change HTTP status (still 200)
    echo json_encode([
        'success' => false,
        'error' => 'processing_failed',
        'error_message' => $e->getMessage()
    ]);
}

Code Examples

Frequently Asked Questions

Can I use this commercially?

Yes, absolutely. You retain full ownership and commercial rights to all videos processed through our platform. Whether you are an agency, business, or creator, you are free to use, distribute, and monetize your reframed content without any restrictions.

How does the billing work?

We operate on a simple pay-as-you-go model. You top up your account balance, and we deduct £0.10 for every minute of video processed. There is a minimum charge of £0.10 per video. Your balance never expires.

Do you offer enterprise plans?

Yes! For businesses with high-volume needs, we offer custom enterprise plans with dedicated support, SLA guarantees, and volume-based pricing. Contact our sales team to discuss your specific requirements.

Is my video data secure?

Security is our top priority. All video data is processed in secure, isolated environments and is automatically deleted after processing. We use enterprise-grade encryption for all data in transit and at rest.

Can I integrate Croply into my own app?

Absolutely. Croply was built API-first. Our robust REST API allows you to seamlessly integrate our video reframing capabilities directly into your applications, workflows, or content management systems.