TagMangoTagMango Docs
Mango

Get Mango by ID

GET
/api/v1/external/mangos/{mangoId}

Get one Mango owned by the authenticated creator. Missing, deleted, and foreign Mangoes share the same not-found response.

The result uses the same clone-ready fields as create: both plain and sanitized rich descriptions, buyer-visible GST pricing, differentialPricing, and the always-present settings, pricing, and access groups. Existing flat aliases remain for compatibility; the list operation is intentionally unchanged.

The exact persisted access.startsAt is returned, including historical timestamps. Omit or replace a past timestamp before posting a clone.

The response includes checkoutLink (always present) and shortLink (present once generated), both built on your x-whitelabel-host.

AuthorizationBearer <token>

In: header

Path Parameters

mangoId*string

The 24-character hexadecimal ID of the owned Mango addressed by this operation. Obtain it from List Mangoes or the result._id returned by Create Mango.

Header Parameters

x-whitelabel-host*string

Host name of the dashboard, ex: mydomain.tagmango.com

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://api-prod-new.tagmango.com/api/v1/external/mangos/6a8ec3908384d1f9507e7c2c" \  -H "x-whitelabel-host: string"
{
  "code": 200,
  "result": {
    "_id": "66a1390268a76f2f5c9f39a3",
    "creator": "77b2390268a76f2f5c9f39a4",
    "title": "Premium Fitness Course",
    "description": "A 12-week fitness transformation program.",
    "descriptionHtml": "<p>A <strong>12-week</strong> fitness transformation program.</p>",
    "price": 1180,
    "currency": "INR",
    "inrAmount": 999,
    "usdAmount": 12,
    "eurAmount": 11,
    "isDeleted": false,
    "isHidden": false,
    "recurringType": "onetime",
    "isPublic": true,
    "isFree": true,
    "zeroCostMango": true,
    "affiliateEnabled": true,
    "createdAt": "2019-08-24T14:15:22Z",
    "updatedAt": "2019-08-24T14:15:22Z",
    "coverContents": [
      "https://cdn.example.com/cover.webp"
    ],
    "checkoutLink": "https://creator.example.com/web/checkout/66a1390268a76f2f5c9f39a3?purchaseNow=true",
    "shortLink": "https://creator.example.com/l/premium-fitness",
    "type": "onetime",
    "differentialPricing": {
      "inr": 999,
      "usd": 12,
      "eur": 11
    },
    "settings": {
      "includeGST": false,
      "priceIncludesGST": false,
      "otpless": false,
      "showTdsField": false
    },
    "pricing": {
      "strikeThrough": {
        "inr": 1499,
        "usd": 18,
        "eur": 16
      }
    },
    "access": {
      "startsAt": "2026-09-01T10:00:00.000Z",
      "validityDays": 365,
      "trialDays": 7,
      "maxBillingCycles": 12,
      "seatLimit": 100,
      "seatLabel": "Seats remaining",
      "allowMultipleQuantity": false
    }
  },
  "type": "Success",
  "message": "Mango fetched successfully",
  "statusMessage": "OK",
  "success": true
}
{
  "code": 400,
  "type": "Bad Request",
  "statusMessage": "BAD_REQUEST",
  "success": false,
  "message": "Invalid request",
  "result": "Invalid request"
}
{
  "code": 401,
  "type": "Unauthorized",
  "statusMessage": "UNAUTHORIZED",
  "message": "Invalid token",
  "result": "Invalid token",
  "success": false
}
{
  "code": 403,
  "type": "Forbidden",
  "statusMessage": "FORBIDDEN",
  "errorCode": "WORKSHOP_MANGO_FORBIDDEN",
  "message": "You can not access this api with a TagMango account, only available for whitelabel hosts",
  "result": "You can not access this api with a TagMango account, only available for whitelabel hosts",
  "success": false
}
{
  "code": 404,
  "type": "Not Found",
  "statusMessage": "NOT_FOUND",
  "errorCode": "MANGO_NOT_FOUND",
  "message": "The mango does not exist, is deleted, or does not belong to this creator.",
  "result": "The mango does not exist, is deleted, or does not belong to this creator.",
  "success": false
}
{
  "code": 429,
  "type": "Too Many Requests",
  "statusMessage": "TOO_MANY_REQUESTS",
  "message": "Request limit exceeded. try after 10 seconds",
  "result": "Request limit exceeded. try after 10 seconds",
  "success": false
}