Create Deeplink

Create a deeplink for a configured deeplink app.

POST/api/mobile/deeplink

This endpoint uses the deeplink app settings behind your API key. The destination urlcomes from the app default URL, and the domain comes from the app domain.

Form Fields

ParameterTypeRequiredDescription
slugstring
Optional
Custom slug; random 6-char slug is generated when omitted
titlestring
Optional
Defaults to generated shortLink
objectsJSON string (object)
Optional
Serialized key/value object
tagsJSON string (array)
Optional
Serialized string array
commentsstring
Optional
Internal notes
passwordstring
Optional
Optional password protection

Headers

ParameterTypeRequiredDescription
api-keystring
Required
From /deep-links -> App Settings tab -> App API Key
Content-Typemultipart/form-data
Required
Use FormData payload

Example Request

curl -X POST "https://app.shortify.com/api/mobile/deeplink" \
  -H "api-key: your_deeplink_app_api_key" \
  -F 'slug=invite-abc' \
  -F 'title=Invite Flow Link' \
  -F 'objects={"campaign":"invite-2026","channel":"sms"}' \
  -F 'tags=["invite","mobile"]' \
  -F 'comments=Used in onboarding invite flow'

Response

200
Created
{
  "success": true,
  "data": {
    "id": "deeplink-id",
    "title": "Invite Flow Link",
    "url": "https://example.com/app-open",
    "domain": "go.yourapp.com",
    "key": "invite-abc",
    "shortLink": "https://go.yourapp.com/invite-abc",
    "linkType": "DEEPLINK",
    "deepLinkAppId": "app-id",
    "comments": "Used in onboarding invite flow",
    "linkObject": {
      "object": {
        "campaign": "invite-2026",
        "channel": "sms"
      }
    },
    "tags": [
      {
        "id": "link-tag-id",
        "tag": {
          "id": "tag-id",
          "name": "invite",
          "color": "blue"
        }
      }
    ]
  }
}

Error Responses

400
Missing API key
{
  "success": false,
  "msg": "API Key is Required"
}
404
Deeplink app not found
{
  "success": false,
  "msg": "Deep Link App Not Found..Check Your API Key!"
}
200
Slug already exists
{
  "success": false,
  "msg": "Slug already Exist"
}