API Documentation

Browse and explore available API endpoints

Base URL
https://sms-api.videostech.cloud/api/v1
Authentication
Use access_token for protected endpoints and send it in the AccessToken header.
Notes
Decrypt access_token to retrieve user profile, plan, parental, and device details.

Authentication

AccessToken Use access_token for protected endpoints and send it in the AccessToken header.
Base URL: https://sms-api.videostech.cloud/api/v1
Token Notes: Decrypt the access_token to retrieve user, subscription, parental, and device details.
Decrypted Access Token Sample
{
  "userData": {
    "id": 123,
    "name": "Divakar",
    "email": "abc@def.com",
    "contact": "9899784414",
    "subscribed": 1,
    "subscriptionDetail": {
      "isSubscribed": 1,
      "planType": "OTT",
      "packageId": 178,
      "recurring": 1,
      "renewalDate": "2025-12-31 23:59:59",
      "expiryDate": "2025-12-31 23:59:59"
    },
    "parental": {
      "isSubscribed": 1,
      "parentalId": 20,
      "restrictionLevel": -1,
      "title": "Restrict ALL Content"
    },
    "devices": {
      "allowedDevices": 5,
      "usedDevices": 3,
      "details": [
        {
          "deviceId": "12345678",
          "deviceType": "mobile",
          "platform": "web",
          "osVersion": 16.1,
          "OS": "CHROME",
          "makemodel": "NOKIA",
          "loginAt": "2025-08-18 10:10:10"
        },
        {
          "deviceId": "12345678",
          "deviceType": "tv",
          "platform": "android",
          "osVersion": 16.1,
          "OS": "FIRETV",
          "makemodel": "SAMSUNG",
          "loginAt": "2025-08-18 10:10:10"
        }
      ]
    }
  }
}
Metadata Fields
Tag Name Data Type Sample Data
code Int 0 / 1
msg String Success / failed
signature Object {}
userData Object {}
otpVerificationToken String 887a97asdiuiousad

Endpoints

Authentication
POST
User Login
Authentication OTP

Authenticate and generate encrypted access_token based on user profile, plan, and device details.

/user/login/token/:token/device/:device/platform/:platform

Path Parameters
Parameter Type Required Description Example
token params Required AppId based token joij98jij9
device params Required Device type mobile
platform params Required Platform ios
Request Body
Field Type Required Description Example
login_type string Required Login type: email or phone email
email string Conditional Email address (required when login_type is email) divakar.kumar6@gmail.com
password string Conditional Email password (required when login_type is email) MyPass@3221
countryCode string Conditional Country calling code (required when login_type is phone) 91
phone string Conditional Phone number without country code (required when login_type is phone) 9899784414
otherdetails object Required Device and user metadata { ... }
Otherdetails Fields
Field Type Required Description Example
dobstringRequiredDate of birth (YYYY-MM-DD)2002-01-01
genderstringRequiredGender of the usermale
make_modelstringRequiredDevice make and modelSamsung Q80T
osstringRequiredOperating systemTizen
os_versionstringRequiredOS version5.5
app_versionstringRequiredApplication versionv2_1
app_build_numberstringRequiredBuild number210
network_typestringRequiredNetwork type (wifi / mobile)wifi
network_providerstringRequiredISP / carrier nameJio
screen_resolutionstringRequiredScreen resolution (width x height)3840x2160
latitudestringRequiredDevice latitude28.6139
longitudestringRequiredDevice longitude77.2090
push_device_tokenstringRequiredPush notification tokentoken_here
device_typestringRequiredDevice type (tv / mobile / tablet)tv
platformstringRequiredPlatform (android / ios / web)android
browserstringRequiredBrowser name (if applicable)chrome
device_unique_idstringRequiredUnique device identifier86af0a88e92fe4479336d00a1229f450
onesignal_device_idstringRequiredOneSignal device identifierfs95345jfddf
ipstringRequiredClient IP address192.168.1.1
countrystringRequiredCountry nameIndia
statestringRequiredState / provinceBihar
citystringRequiredCity namePatna
Sample Request
{
  "login_type": "email",
  "email": "divakar.kumar6@gmail.com",
  "password": "MyPass@3221",
  "otherdetails": {
    "dob": "2002-01-01",
    "gender": "male",
    "make_model": "Samsung Q80T",
    "os": "Tizen",
    "os_version": "5.5",
    "app_version": "v2_1",
    "app_build_number": "210",
    "network_type": "wifi",
    "network_provider": "Jio",
    "screen_resolution": "3840x2160",
    "latitude": "28.6139",
    "longitude": "77.2090",
    "push_device_token": "token_here",
    "device_type": "tv",
    "platform": "android",
    "browser": "chrome",
    "device_unique_id": "86af0a88e92fe4479336d00a1229f450",
    "onesignal_device_id": "fs95345jfddf",
    "ip": "192.168.1.1",
    "country": "India",
    "state": "Bihar",
    "city": "Patna"
  }
}
Sample Responses
Phone Login
{
  "code": 11,
  "msg": "OTP SENT, VERIFICATION PENDING",
  "otpExpiry": 120,
  "otpVerificationToken": "887a97bc5be054e039271182e2b570afd73"
}
Email Login
{
  "code": 1,
  "msg": "Login successful",
  "result": {
    "access_token": {
      "expiry": 86400,
      "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
    }
  }
}
POST
Login Verify OTP
Authentication

Verify OTP after login using contact number.

/user/login/verify/otp/token/:token/device/:device/platform/:platform

Request Body
Field Type Required Description Example
otpVerificationToken string Required OTP verification token 887a97bc5be054e039271182e2b570afd73
otp string Required OTP code 9025
Sample Request
{
  "otpVerificationToken": "887a97bc5be054e039271182e2b570afd73a604f...",
  "otp": "9025"
}
Sample Response
{
  "code": 1,
  "msg": "success",
  "result": {
    "access_token": {
      "expiry": 86400,
      "token": "eyJhbGciOiJIUzI1NiIsInR5cCI..."
    }
  }
}
POST
User Signup
Authentication OTP

Register a user and generate encrypted access_token based on profile and device details.

/user/signup/token/:token/device/:device/platform/:platform

Request Body
Field Type Required Description Example
login_type string Required Signup type: email or phone email
email string Conditional Email address (when login_type is email) divakar.kumar6@gmail.com
password string Conditional Email password (when login_type is email) MyPass@3221
countryCode string Conditional Country calling code (when login_type is phone) 91
phone string Conditional Phone number without country code (when login_type is phone) 9899784414
otherdetails object Required Device and user metadata { ... }
Sample Request
{
  "login_type": "email",
  "email": "divakar.kumar6@gmail.com",
  "password": "MyPass@3221",
  "otherdetails": {
    "dob": "2002-01-01",
    "gender": "male",
    "make_model": "Samsung Q80T",
    "os": "Tizen",
    "os_version": "5.5",
    "app_version": "v2_1",
    "app_build_number": "210",
    "network_type": "wifi",
    "network_provider": "Jio",
    "screen_resolution": "3840x2160",
    "latitude": "28.6139",
    "longitude": "77.2090",
    "push_device_token": "token_here",
    "device_type": "tv",
    "platform": "android",
    "browser": "chrome",
    "device_unique_id": "86af0a88e92fe4479336d00a1229f450",
    "onesignal_device_id": "fs95345jfddf",
    "country": "India",
    "state": "Bihar",
    "city": "Patna"
  }
}
Sample Responses
Phone Signup
{
  "code": 11,
  "msg": "OTP SENT, VERIFICATION PENDING",
  "otpExpiry": 120,
  "otpVerificationToken": "887a97bc5be054e039271182e2b570afd73"
}
Email Signup
{
  "code": 1,
  "msg": "success",
  "signature": {
    "access_token": {
      "token": "eColiZJ9.bN2WvKnIBtEoG23Pq0",
      "expiry": 300
    }
  }
}
POST
Signup Verify OTP
Authentication

Verify OTP after signup using contact number.

/user/signup/verify/otp/token/:token/device/:device/platform/:platform

Request Body
Field Type Required Description Example
otpVerificationToken string Required OTP verification token 887a97bc5be054e039271182e2b570afd73
otp string Required OTP code 9025
Sample Request
{
  "OTPverificationToken": "887a97bc5be054e039271182e2b570afd73a604f...",
  "otp": "9025"
}
Sample Response
{
  "code": 1,
  "msg": "success",
  "result": {
    "access_token": {
      "expiry": 86400,
      "token": "eyJhbGciOiJIUzI1NiIsInR5cCI..."
    }
  }
}
POST
Login Resend OTP
Authentication

Resend OTP for login via phone.

/login/resend/otp/token/:token/device/:device/platform/:platform

Request Body
Field Type Required Description Example
otpVerificationToken string Required Previous OTP verification token 66237ca474dacf5
Sample Request
{
  "otpVerificationToken": "887a97bc5be054e03983d9579b6e623d120bd883b671091745b11c626a27aecb82faeb4fe00bb2286d8a963a0ad"
}
Sample Response
{
  "code": 11,
  "msg": "OTP re-sent successfully",
  "otpExpiry": 120,
  "otpVerificationToken": "88f1d2d9fda43d897fac23efc85116bd73938c15ceb7464471ed3cb3d902115f5ae59fdf2646d7e4a8c74d915ceefb46b1"
}
POST
Signup Resend OTP
Authentication

Resend OTP during signup.

/signup/resend/otp/token/:token/device/:device/platform/:platform

Request Body
Field Type Required Description Example
otpVerificationToken string Required Previous OTP verification token 66237ca474dacf5
Sample Request
{
  "otpVerificationToken": "887a97bc5be054e03983d9579b6e623d120bd883b671091745b11c626a27aecb82faeb4fe00bb2286d8a963a0ad"
}
Sample Response
{
  "code": 11,
  "msg": "OTP SENT, VERIFICATION PENDING",
  "otpExpiry": 300,
  "otpVerificationToken": "f1e290fc4895ad6a316009eb4ce4f"
}
Validation
POST
Lookup Email or Phone
Validation

Check if an email or contact number already exists.

/lookup/token/:token/device/:device/platform/:platform

Request Body
Field Type Required Description Example
email string Conditional Email address divakar.kumar@multitv.com
phone string Conditional Contact number 9812345634
countryCode string Conditional Country code (required for phone) 91
type string Required Lookup type: email or phone email
Sample Request
{
  "email": "divakar.kumar@multitv.com",
  "phone": "",
  "countryCode": "",
  "type": "email"
}
Sample Response
{
  "code": 1,
  "msg": "email exists"
}
Session
POST
Logout
Session

Log out the user based on device ID.

/user/logout/token/:token/device/:device/platform/:platform

Headers
Header Required Description
AccessToken Required Access token from login/signup
Request Body
Field Type Required Description Example
device_id string Required Device ID 86affa88e925fe46479336d007a12229f45012
oldDeviceId string Optional Old device ID (when type is 2) 86affa88e925fe46479336d007a12229f4501
type string Required Logout type: 1 current device, 2 other device, -1 clear all except current 1
Sample Requests
Log Out Other Device
{
  "device_id": "86affa88e925fe46479336d007a12229f45012",
  "oldDeviceId": "86affa88e925fe46479336d007a12229f4501",
  "type": "2"
}
Log Out Current Device
{
  "device_id": "86affa88e925fe46479336d007a12229f45012",
  "type": "1"
}
Clear All Except Current
{
  "device_id": "86affa88e925fe46479336d007a12229f45012",
  "type": "-1"
}
Sample Response
{
  "code": 1,
  "msg": "logged out successfully"
}
Profile
POST
Profile Update
Profile

Update user profile details.

/profile/update/token/:token/device/:device/platform/:platform

Headers
Header Required Description
AccessToken Required Access token from login/signup
Request Body
Field Type Required Description Example
otherdetails.firstName string Conditional New first name john
otherdetails.lastName string Conditional New last name doe
otherdetails.image string Conditional New profile image johnimage.png
Sample Request
{
  "otherdetails": {
    "firstName": "john11",
    "lastName": "doe",
    "image": "johnimage.png"
  }
}
Sample Response
{
  "code": 1,
  "msg": "Profile updated successfully",
  "result": {
    "access_token": {
      "expiry": 86400,
      "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
    }
  }
}
Authentication (Password & Recovery)
POST
Forgot Password
Authentication

Send OTP to the registered email for password reset.

/forgot/password/verify/otp/token/:token/device/:device/platform/:platform

Request Body
Field Type Required Description Example
emailId string Required Registered email abc@gmail.com
Sample Request
{
  "emailId": "abc@gmail.com"
}
Sample Response
{
  "code": 11,
  "msg": "OTP SENT, VERIFICATION PENDING",
  "otpExpiry": 300,
  "otpVerificationToken": "f1e290fc4895ad6a316009eb4ce41ba02c74"
}
POST
Forgot Password Verify OTP
Authentication

Verify OTP sent to the user email for password reset.

/forgot/password/verify/otp/token/:token/device/:device/platform/:platform

Headers
Header Required Description
authToken Required Auth token received from auth/token API
Request Body
Field Type Required Description Example
otpVerificationToken string Required OTP verification token from forgot password f1e290fc4895ad6a31600
otp int Required 4-digit OTP received in mail 3082
Sample Request
{
  "otpVerificationToken": "f1e290fc4895ad6a31600",
  "otp": 3082
}
Sample Response
{
  "code": 14,
  "expiry": 300,
  "msg": "OTP verified, Reset Password Pending.",
  "otpVerificationToken": "0543f92d3b048a7dcb1b7ac7fc63439"
}
POST
Reset Password
Authentication

Reset password using verified OTP token.

/reset/password/token/:token/device/:device/platform/:platform

Request Body
Field Type Required Description Example
otpVerificationToken string Required OTP verification token 0543f92d3b048a7dcb1b7ac7fc634390c
newPassword string Required New password abrakadabra
otherDetails object Required Device and user metadata { ... }
Sample Request
{
  "otpVerificationToken": "0543f92d3b048a7dcb1b7ac7fc634390c",
  "newPassword": "abrakadabra",
  "otherDetails": {
    "make_model": "Samsung Q80T",
    "os": "Tizen",
    "os_version": "5.5",
    "app_version": "v2_1",
    "app_build_number": "210",
    "latitude": "28.6139",
    "longitude": "77.2090",
    "push_device_token": "token_here",
    "device_type": "tv",
    "platform": "android",
    "browser": "none",
    "device_unique_id": "86af0a88e92fe4479336d00a1229f450",
    "onesignal_device_id": "fs95345jfddf",
    "country": "India",
    "state": "Bihar",
    "city": "Patna",
    "ip": "49.249.119.216"
  }
}
Sample Response
{
  "code": 1,
  "msg": "Password reset successful",
  "result": {
    "access_token": {
      "expiry": 86400,
      "token": "eyJhbGciOiJIUzI1NiIsInR5c"
    }
  }
}
POST
Change Password
Authentication

Change account password.

/change/password/token/:token/device/:device/platform/:platform

Headers
Header Required Description
AccessToken Required Access token from login/signup
Request Body
Field Type Required Description Example
old_password string Required Old password password456
new_password string Required New password mynewpass11456
Sample Request
{
  "old_password": "mynewpassword114",
  "new_password": "mynewpassword11411"
}
Sample Response
{
  "code": 1,
  "msg": "Password updated successfully"
}
Feedback
POST
User Feedback
Feedback

Insert user feedback.

/user/feedback/token/:token/device/:device/platform/:platform

Headers
Header Required Description
AccessToken Required Access token from login/signup
Request Body
Field Type Required Description Example
email string Required Email id example@gmail.com
feedback string Required User feedback good video
Sample Request
{
  "email": "example@gmail.com",
  "feedback": "good video"
}
Sample Responses
Email Registered
{
  "code": 1,
  "msg": "Feedback submitted successfully"
}
Email Not Registered
{
  "code": 1,
  "msg": "OTP sent, verification pending",
  "otpExpiry": 300,
  "otpVerificationToken": "92f3b7d34e5ebf7af97110cdd61"
}
POST
Verify Feedback Email
Feedback

Verify email and insert email in feedback when login type is phone.

/feedback/email/verify/token/:token/device/:device/platform/:platform

Headers
Header Required Description
AccessToken Required Access token from login/signup
Request Body
Field Type Required Description Example
otp string Required OTP for email verification 5435
otpVerificationToken string Required OTP verification token 92f3b7d34e5ebf7af97110cdd611...
Sample Request
{
  "otp": "5435",
  "otpVerificationToken": "92f3b7d34e5ebf7af97110cdd611726a144c40c14efe6512f78bf47e6f0371ed0a36242e8c99f61dd83d5e12283d56417daea0abc66d5ea2d3c0a50725c646313936f22a7587b41487fb446030fcc0b581687b3f415ad9fcba4e69591caa5b11f25cf3bc7a76086807f184dfc4e009799f662c2b5cd0fd1c4f81c142015ca6be"
}
Sample Response
{
  "code": 1,
  "msg": "Email verified and updated successfully",
  "result": {
    "access_token": {
      "expiry": 86400,
      "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJjs"
    }
  }
}
Profile (Verification)
POST
Profile Update Email Verification
Profile

Send OTP to verify email while updating profile.

/update/profile/email/verification/token/:token/device/:device/platform/:platform

Headers
Header Required Description
AccessToken Required Access token from login/signup
Request Body
Field Type Required Description Example
email string Required Email of the user example@gmail.com
Sample Request
{
  "email": "example@gmail.com"
}
Sample Response
{
  "code": 11,
  "msg": "OTP sent, verification pending",
  "otpExpiry": 300,
  "otpVerificationToken": "92f3b7d34e5ebf7af97110cdd611726a144c40c14efe6512f78bf47e6f0371ed0a36242e8c99f61dd83d5e12283d5641866fc4c41a11f5403e9327f26a2f930dd08bfd03c168bf573dcea190d7691c20059a278085b301bc18dc015e862293e8874e3b66e6eed39e4606ba990fc1c7127a80193c1d4094ec62fa9b7d92e3b1f8"
}
POST
Profile Update Email Verify OTP
Profile

Verify OTP while updating email.

/update/profile/email/verify/otp/token/:token/device/:device/platform/:platform

Headers
Header Required Description
AccessToken Required Access token from login/signup
Request Body
Field Type Required Description Example
otp string Required OTP for email verification 5435
otpVerificationToken string Required OTP verification token 92f3b7d34e5ebf715ca6be
Sample Request
{
  "otp": "5435",
  "otpVerificationToken": "92f3b7d34e5ebf715ca6be"
}
Sample Response
{
  "code": 1,
  "msg": "Email verified and updated successfully",
  "result": {
    "access_token": {
      "expiry": 86400,
      "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJjs"
    }
  }
}
POST
Profile Update Phone Verification
Profile

Send OTP to verify contact number while updating profile.

/update/profile/phone/verification/token/:token/device/:device/platform/:platform

Headers
Header Required Description
AccessToken Required Access token from login/signup
Request Body
Field Type Required Description Example
phone string Required Contact number of the user 7564758364
Sample Request
{
  "phone": "7637485647"
}
Sample Response
{
  "code": 11,
  "msg": "OTP sent, verification pending",
  "otpExpiry": 300,
  "otpVerificationToken": "92f3b7d34e5ebf7af97110cdd611726a144c40c14efe6512f78bf47e6f0371ed0a36242e8c99f61dd83d5e12283d5641866fc4c41a11f5403e9327f26a2f930dd08bfd03c168bf573dcea190d7691c20059a278085b301bc18dc015e862293e8874e3b66e6eed39e4606ba990fc1c7127a80193c1d4094ec62fa9b7d92e3b1f8"
}
POST
Profile Update Phone Verify OTP
Profile

Verify OTP while updating contact number.

/update/profile/phone/verify/otp/token/:token/device/:device/platform/:platform

Headers
Header Required Description
AccessToken Required Access token from login/signup
Request Body
Field Type Required Description Example
otp string Required OTP for phone verification 5435
otpVerificationToken string Required OTP verification token 92f3b7d34e5ebf7af97110cdd611726a144c40c14ec4f81c142015ca6be
Sample Request
{
  "otp": "5435",
  "otpVerificationToken": "92f3b7d34e5ebf7af97110cdd611726a144c40c14ec4f81c142015ca6be"
}
Sample Response
{
  "code": 1,
  "msg": "Phone verified and updated successfully",
  "result": {
    "access_token": {
      "expiry": 86400,
      "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJjs"
    }
  }
}
Account
POST
Delete User Account
Account

Create request to delete user account.

/delete/account/token/:token/device/:device/platform/:platform

Headers
Header Required Description
AccessToken Required Access token from login/signup
Sample Response
{
  "code": 11,
  "msg": "OTP sent to registered email, verification pending",
  "otpExpiry": 300,
  "otpVerificationToken": "92f3b7d34e5ebfcbac5"
}
POST
Confirm Deletion
Account

Confirm account deletion with OTP.

/delete/confirmation/token/:token/device/:device/platform/:platform

Headers
Header Required Description
AccessToken Required Access token from login/signup
Request Body
Field Type Required Description Example
otp string Required OTP for deletion confirmation 5435
otpVerificationToken string Required OTP verification token 92f3b7d34e5ebf745ca6be
Sample Request
{
  "otp": "5435",
  "otpVerificationToken": "92f3b7d34e5ebf745ca6be"
}
Sample Response
{
  "code": 1,
  "msg": "OTP verified successfully, account deletion request created"
}

Error Codes

Code Name Description
200 ok The request was successful, and a response was returned
200 Ok, but no result Request succeeded, but no content to return
400 Bad Request Request is invalid or missing required fields
401 Unauthorized Authentication failed or token/signature missing/expired
404 Not Found API/Route doesn’t exist
405 Method Not Allowed HTTP method not supported on this endpoint
408 Already Exist Record already exists
410 Gone Will not be available again
429 Too Many Requests Rate limit exceeded
500 Internal Server Error Server encountered an unexpected error
Custom Error Codes
Code Meaning Description
11 OTP SENT OTP sent, verification pending
12 OTP VERIFICATION FAILED OTP verification failed
13 Payment Not Verified yet Payment status not verified (problem regarding fetch order)
14 OTP verified, Reset Password Pending OTP verified; reset password pending
15 Device already registered The device already registered for this account
16 Device login limit exceeded Device login limit exceeded
17 Payment Pending Payment is pending; awaiting confirmation from the payment gateway
18 Payment failed Payment failed; the plan has not been assigned
100 authToken Expired Token is expired
101 Credential Missing Request credentials are missing
102 DESTROY SESSION Destroy session logout
103 accessToken expired accessToken is expired

Glossary

Term Description
Rate limit Request limit exceeded; number of requests allowed per day
Pagination limit: number of records to fetch; offset: starting point in the dataset
Country Country should be IN only
device_id 128-bit UUID (Universally Unique Identifier)
device_type mobile / tablet / desktop / tv
Platform android / ios / web / windows / apple_tv / tizen / fireos / roku / linux / android_tv / webos / playstation / xbox / unknown