API Reference for Developersv1
Welcome to the App Opener API reference. An API key is required for requests to be processed by the system.
Getting Started
An API key is required for requests to be processed by the system. Once a user registers, an API key is automatically generated for this user. The API key must be sent with each request (see full example below). If the API key is not sent or is expired, there will be an error. Please make sure to keep your API key secret to prevent abuse.
Authentication & Request Headers
To authenticate with the API system, you need to send your API key as a Bearer authorization token in the request headers with each request. All endpoints accept and return data formatted in JSON (Content-Type: application/json).
| Header | Required | Description |
|---|---|---|
| Authorization | REQUIRED | Bearer authentication token. Example: "Bearer YOUR_API_TOKEN" |
| Content-Type | REQUIRED | Specifies media type as JSON (required for request payloads). Example: "application/json" |
Rate Limit
Our API has a rate limiter to safeguard against spike in requests to maximize its stability. Our rate limiter is currently capped at 30 requests per 1 minute. Please note that the rate might change according to the subscribed plan. Several headers will be sent alongside the response and these can be examined to determine various information about the request.
Response Handling
All API responses are returned in JSON format by default. In JavaScript, response.json() or JSON.parse() can be used to parse the returned data into an object. It is very important to check the success key as that provides information on whether there was an error or not. You can also check the HTTP status code.
{
"success": false,
"message": "An error occurred"
}API Endpoints Reference
Get Account Details
Retrieves the account details for the authenticated user.
curl -X GET "https://api-appopener.recut.in/v1/api/account" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Content-Type: application/json"
{
"success": true,
"message": "Account details fetched successfully.",
"data": {
"id": "6a7ca2570uuuu04502348aaf",
"name": "John Doe",
"email": "[email protected]",
"createdAt": "2023-10-01T12:00:00Z"
}
}Create App Opener Link
Generates a smart deep link for any target web URL. Opens directly inside the target native app on iOS and Android.
Body Parameters (JSON)
| Parameter | Type | Required | Description |
|---|---|---|---|
| url | string | REQUIRED | Destination URL to shorten and convert into a smart deep link. Example: "https://youtu.be/dQw4w9WgXcQ?si=dcUc-CeILVK4Ylbp" |
| custom | string | OPTIONAL | Optional custom slug / back-half alias. Example: "custom-alias" |
curl -X POST "https://api-appopener.recut.in/v1/api/url/add" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "url": "https://youtu.be/dQw4w9WgXcQ?si=dcUc-CeILVK4Ylbp", "custom": "custom-alias" }'
{
"success": true,
"message": "App Opener link created successfully.",
"data": {
"id": "6a7ca2570789804502348aaf",
"shorturl": "https://go.rcut.in/custom-alias"
}
}Get All Links
Retrieves a paginated list of all created smart links and URLs with filtering and sorting options.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| limit | number | OPTIONAL | Number of links to return per page. (Default: 10) Example: "10" |
| page | number | OPTIONAL | Page number to fetch for pagination. (Default: 1) Example: "1" |
| sort | string | OPTIONAL | Sort order for returned links. Allowed values: 'new' (newest first), 'old' (oldest first), 'popular' (most clicked), 'less' (least clicked). Example: "new" |
| date | string | OPTIONAL | Filters and retrieves links created on or after the specified date (format: YYYY-MM-DD). Example: "2026-08-30" |
curl -X GET "https://api-appopener.recut.in/v1/api/urls?limit=10&page=1&sort=new&date=2026-08-30" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Content-Type: application/json"
{
"success": true,
"message": "Links retrieved successfully",
"data": [
{
"id": "6a96c32065254a2d22bc1fec",
"slug": "uAJaYyG",
"shorturl": "https://go.rcut.in/uAJaYyG",
"meta": {
"title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
"description": "The official video for “Never Gonna Give You Up” by Rick Astley.…",
"ogImage": "https://i.ytimg.com/vi/dQw4w9WgXcQ/maxresdefault.jpg"
},
"data": {
"android": "dQw4w9WgXcQ",
"ios": "dQw4w9WgXcQ",
"web": "https://youtu.be/dQw4w9WgXcQ?si=I9CZb-vbPyx_68Y1"
},
"original_url": "https://youtu.be/dQw4w9WgXcQ?si=I9CZb-vbPyx_68Y1",
"status": "active",
"totalClicks": 0,
"uniqueClicks": 0,
"createdAt": "2026-09-01T12:20:48.653Z",
"updatedAt": "2026-09-01T12:20:48.653Z",
"qr": {
"assets": {
"png": {
"url": "https://cdn.recut.in/qr/QR-uAJaYyG.png",
"key": "qr/QR-uAJaYyG.png",
"fileName": "QR-uAJaYyG.png",
"fileType": "image/png"
}
},
"linkId": "6a96c32065254a2d22bc1fec"
}
}
],
"pagination": {
"currentPage": 1,
"totalPages": 67,
"totalItems": 67,
"hasNextPage": true,
"hasPrevPage": false
}
}Get a Single Link
Retrieves full metadata, analytics summary, QR asset, and destination details for a single App Opener link by its unique ID.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | REQUIRED | The unique link ID in the URL path. Example: "6a96c32065254a2d22bc1fec" |
curl -X GET "https://api-appopener.recut.in/v1/api/url/6a96c32065254a2d22bc1fec" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Content-Type: application/json"
{
"success": true,
"message": "Link details fetched successfully",
"data": {
"id": "6a96c32065254a2d22bc1fec",
"slug": "uAJaYyG",
"domain": "localhost",
"shorturl": "http://localhost:3000/uAJaYyG",
"meta": {
"title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
"description": "The official video for “Never Gonna Give You Up” by Rick Astley.…",
"ogImage": "https://i.ytimg.com/vi/dQw4w9WgXcQ/maxresdefault.jpg"
},
"original_url": "https://youtu.be/dQw4w9WgXcQ?si=I9CZb-vbPyx_68Y1",
"status": "active",
"totalClicks": 0,
"uniqueClicks": 0,
"createdAt": "2026-09-01T12:20:48.653Z",
"updatedAt": "2026-09-01T12:20:48.653Z",
"qr": {
"assets": {
"png": {
"url": "https://cdn.recut.in/qr/QR-uAJaYyG.png",
"key": "qr/QR-uAJaYyG.png",
"fileName": "QR-uAJaYyG.png",
"fileType": "image/png"
}
}
}
}
}Update App Opener Link
Updates the destination URL and/or custom slug alias for an existing App Opener link.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | REQUIRED | The unique ID of the link to update (in URL path). Example: "6a96c32065254a2d22bc1fec" |
| url | string | OPTIONAL | The new target destination URL to update. Example: "https://www.youtube.com/watch?v=dQw4w9WgXcQ" |
| custom | string | OPTIONAL | Optional updated custom slug / back-half alias. Example: "0000" |
curl -X PATCH "https://api-appopener.recut.in/v1/api/url/6a96c32065254a2d22bc1fec" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ", "custom": "0000" }'
{
"success": true,
"message": "Link has been successfully updated."
}Delete App Opener Link
Permanently deletes an existing App Opener link by its unique ID.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | REQUIRED | The unique ID of the link to delete (in URL path). Example: "6a96c32065254a2d22bc1fec" |
curl -X DELETE "https://api-appopener.recut.in/v1/api/url/6a96c32065254a2d22bc1fec" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Content-Type: application/json"
{
"success": true,
"message": "Link deleted successfully."
}Generate Basic QR Code
Generates a standard PNG QR code for a given App Opener link. Once generated, the QR code is automatically linked to the App Opener link. Note: To download the generated QR code, simply click or open the returned image URL.
Body Parameters (JSON)
| Parameter | Type | Required | Description |
|---|---|---|---|
| url | string | REQUIRED | The full App Opener link to generate a QR code for. Example: "https://go.rcut.in/uajayyg" |
| margin | number | OPTIONAL | White margin / quiet zone border size around the QR code. Example: "5" |
| size | number | OPTIONAL | Image dimension size / resolution in pixels. Example: "1000" |
curl -X POST "https://api-appopener.recut.in/v1/api/qr/basic" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "url": "https://go.rcut.in/uajayyg", "margin": 5, "size": 1000 }'
{
"success": true,
"message": "QR code generated successfully",
"qr": {
"assets": {
"png": {
"url": "https://cdn.recut.in/qr/QR-uajayyg.png",
"key": "qr/QR-uajayyg.png",
"fileName": "QR-uajayyg.png",
"fileType": "image/png"
}
},
"linkId": "6a96c32065254a2d22bc1fec"
}
}



