Get coupon details

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…

This API retrieves the details of one or more coupons by coupon codes or IDs, or get coupons issued to specific customers.

👍

Note

  • For detailed information about our APIs and for hands-on testing, refer documentation in API overview and step-by-step guide on making your first API call in Make your first API call .

Example request

curl --location 'https://eu.api.capillarytech.com/v2/coupon?couponCodes=YTOWAEN5N0&showCouponSeries=true' \
--header 'Authorization: Basic YyZTZm' \
--header 'Cookie: _cfuvid=N8eBMQkzAuS0B.TF12bNd.D2Foo6GiTEeU_Hb2aUc1U-1768823280663-0.0.1.1-604800000'

Prerequisites

  • Authentication: Basic or OAuth authentication
  • Default access group

Resource information

URL/coupon
HTTP MethodGET
PaginationNo
Batch supportNo
Rate limit informationNone

API endpoint example

https://eu.api.capillarytech.com/v2/coupon?issuedToIds=345635529&coupon_code_case=LOWER

Request Query parameter

ParameterDatatypeDescription
issuedToIdsIntegerFetch coupons issued to specific customers. Pass customer IDs to fetch.
couponIds*IntegerFetch coupon details by coupon IDs.
To fetch multiple coupons, use the id or code parameters repeatedly in your API request,
For example:
?couponIds=123&couponIds=456 or ?couponCodes=ABC&couponCodes=DEF.
Mandatory if couponCodes is not provided.
couponCodes*StringFetch coupon details by coupon code.
Mandatory if couponIds is not provided.
coupon_code_caseEnumThis parameter helps to retrieve the coupon code in the desired letter cases. By default, the system automatically converts the coupon code to upper case. The query itself is not case sensitive.
Supported Values: LOWER: Converts the coupon code to lower case.
UPPER: Converts the coupon codes to upper case.
AS_IT_IS: It ensures that the coupon code is retrieved exactly as it was created or provided, without altering the letter case. For instance, if the code is "abAB123," it should be retrieved and displayed as "abAB123," maintaining its original formatting.
showCouponSeriesBooleanFetches the coupon series details when set totrue.
Default value: false
includeIssualDetailsBooleanSpecifies whether to include the couponIssualDetails object in the response. When set to true, returns the metadata captured at the time of issuance.
Default value: false

Response parameter

With showCouponSeries = false

ParameterDescription
codeThe unique code associated with the coupon.
seriesIdThe ID of the series the coupon belongs to.
descriptionA brief description of the coupon.
discountCodeCode indicating the type of discount.
validTillThe expiry time displayed here can be different if time is defined along with the expiry date of the coupon. For more details, refer to the documentation about the difference in the displayed and actual coupon expiry time.
validTillDateTimeSpecifies the exact expiry date and time of a coupon in ISO 8601 format (e.g., "2026-06-11T23:59:59Z"), indicating the precise moment until which the coupon can be redeemed.
discountTypeThe type of discount.
discountValueThe value of the discount provided by the coupon.
discountUptoThe maximum value up to which discount can be applied.
discountOnWhat the discount is applied on.
detailedInfoDetailed information about the coupon.
couponIssualDetailsDefines the object containing the metadata captured at the time of coupon issuance. Returned when includeIssualDetails=true.
..sourceTypeIndicates the category of the source that initiated the issuance (e.g., Promotions, Journeys, API).
..sourceIdIndicates the unique reference ID of the entity that triggered the issuance (e.g., journey block ID, rule ID).
..sourceActivityIndicates the specific event or activity that caused the coupon to be issued (e.g., Milestone completion, Post-purchase bounce-back).
..notesSpecifies additional comments about the issuance.
..reasonSpecifies the business justification for issuing the coupon (e.g., campaign reward, service recovery).

With showCouponSeries = true

ParameterData typeDescription
.dataArrayArray containing the list of coupon series details.
..codeStringIndicates the coupon code used for redemption.
..seriesIdLongIndicates the ID of the coupon series the coupon belongs to.
..descriptionStringIndicates the description of the coupon series.
..discountCodeStringIndicates the discount code of the coupon series.
..validTillString

Indicates the coupon validity end date and time in ISO 8601 format, returned in the server time zone.

EU server example
2025-12-16T00:00:00Z → 16 December 2025.

India server example
2025-12-16T00:00:00Z+05:30 → 16 December 2025.

Note: The response time zone always matches the server time zone, regardless of the time zone offset in the request.

..validTillDateTimeString

Indicates the coupon validity end date and time in ISO 8601 format, returned in the server time zone.

EU server example
2025-12-16T00:00:00Z → 16 December 2025.

India server example
2025-12-16T00:00:00Z+05:30 → 16 December 2025.

Note: The response time zone always matches the server time zone, regardless of the time zone offset in the request.

..discountTypeEnumIndicates the type of discount. Example values: ABS, PERC.
..discountValueIntegerIndicates the discount value—percentage when discountType=PERC, and currency amount when discountType=ABS
..discountUptoIntegerIndicates the maximum discount allowed.
..discountOnEnumIndicates the discount applies to the total bill or specific items.
Example values: BILL, ITEM
..detailedInfoStringAdditional descriptive text about the coupon.
..couponIssualDetailsObjectIndicates an object containing the metadata captured at the time of coupon issuance. Returned when includeIssualDetails=true.
...sourceTypeStringIndicates the category of the source that initiated the issuance (e.g., Promotions, Journeys, API).
...sourceIdStringIndicates the unique reference ID of the entity that triggered the issuance (e.g., journey block ID, rule ID).
...sourceActivityStringIndicates the specific event or activity that caused the coupon to be issued (e.g., Milestone completion, Post-purchase bounce-back).
...notesStringSpecifies additional comments about the issuance.
...reasonStringSpecifies the business justification for issuing the coupon (e.g., campaign reward, service recovery).
..couponSeriesObjectObject containing the details of the coupon series.
...idIntegerUnique ID of the coupon series.
...orgIdLongIndicates the organization ID associated with the coupon series.
...descriptionStringIndicates the description of the coupon series.
...discountCodeStringIndicates the discount code associated with the coupon series.
...validTillDateString

Indicates the expiration date of the coupon series in ISO 8601 format, returned in the server time zone.

EU server example
2025-12-16T00:00:00Z → 16 December 2025.

India server example
2025-12-16T00:00:00Z+05:30 → 16 December 2025.

Note: The response time zone always matches the server time zone, regardless of the time zone offset in the request.

...validTillDateTimeString

Indicates the expiration date and time of the coupon series in ISO 8601 format, returned in the server time zone.

EU server example
2025-12-16T14:30:45Z → 16 December 2025, 14:30:45 (UTC)

India server example
2025-12-16T14:30:45+05:30 → 16 December 2025, 14:30:45 (IST)

Note: The response time zone always matches the server time zone, regardless of the time zone offset in the request.

...validTillISODateStringIndicates the coupon expiration date in yyyy-MM-dd ISO date format.
Note: This parameter is not related to ISO timezone standardization.
...validDaysFromCreationLongIndicates the number of days from creation after which the coupon expires.
...expiryStrategyValueLongIndicates the configured expiry strategy value for the coupon series.
...maxCreateLongIndicates the maximum number of coupons that can be created in the series.
...maxRedeemLongIndicates the maximum number of redemptions allowed for the series.
...isTransferrableBooleanIndicates whether the coupon can be transferred to another customer.
Value: true: The coupon can be transferred to another customer.
false: The coupon is locked to the originally issued user.
...anyUserBooleanIndicates whether any customer can redeem the coupon.
Value: true: Any user can redeem the coupon.
false: Redemption is restricted only to the issued user.
...sameUserMultipleRedeemBooleanIndicates whether the same customer can redeem the coupon multiple times.
Value: true: The same user is allowed to redeem multiple times from this series.
false: The same user is not allowed multiple redemptions.
...isReferralExistingUsersAllowedBooleanIndicates whether existing users are allowed to use the coupon for referrals.
Value: true: Existing users can participate in the referral program for this series.
false: Only new users can be used in the referral flow.
...isMultipleUseAllowedBooleanIndicates whether the coupon can be used multiple times.
Value: true: Each coupon code may be used multiple times.
false: Each coupon code is single‑use.
...isValidationRequiredBooleanIndicates whether validation is required before redemption.
Value: true: Validation is required before actual redemption.
false: Coupon can be directly redeemed without validation.
...isValidWithDiscountedItemBooleanIndicates whether the coupon can be used with discounted items.
Value: true: Coupon can be applied to items on discount.
false: Coupon cannot be combined with existing item discounts.
...createdByLongIndicates the user ID of the person who created the coupon series.
...numIssuedLongIndicates the number of coupons issued in the series.
...numRedeemedLongIndicates the number of coupons redeemed in the series.
...createdOnString

Indicates the date and time when the coupon series was created in ISO 8601 format, returned in the server time zone.

EU server example
2025-12-16T14:30:45Z → 16 December 2025, 14:30:45 (UTC)

India server example
2025-12-16T14:30:45+05:30 → 16 December 2025, 14:30:45 (IST)

Note: The response time zone always matches the server time zone, regardless of the time zone offset in the request.

...lastUsedString

Indicates the date and time when the coupon series was last used in ISO 8601 format, returned in the server time zone.

EU server example
2025-12-16T14:30:45Z → 16 December 2025, 14:30:45 (UTC)

India server example
2025-12-16T14:30:45+05:30 → 16 December 2025, 14:30:45 (IST)

Note: The response time zone always matches the server time zone, regardless of the time zone offset in the request.

...seriesCodeStringIndicates the unique series code for the coupon series.
...smsTemplateStringIndicates the SMS template associated with the coupon series.
...isSMSDisabledBooleanIndicates whether SMS communication is disabled for the coupon series.
Value: true: SMS sending for this series is disabled.
false: SMS sending is allowed/enabled.
...infoStringIndicates additional coupon information.
...isMultipleVouchersPerUserAllowedBooleanIndicates whether multiple vouchers can be issued to the same user.
Value: true: A single user can receive multiple vouchers from this series.
false: A user is restricted to one voucher from this series.
...doNotResendExistingVoucherBooleanIndicates whether an existing voucher should not be resent to the user.
Value: true: The system does not resend an issued voucher to the same user.
false: Resending an existing voucher is allowed.
...mutualExclusiveSeriesIdsStringIndicates the list of series IDs that are mutually exclusive with this series.
...storeIdsJsonStringJSON string containing store IDs where the series is applicable.
...isDvsEnabledBooleanIndicates whether DVS (Dynamic Voucher System) is enabled for the coupon series.
Value: true: Dynamic Voucher System is enabled
false: Dynamic Voucher System is disabled.
...dvsExpiryDateString

Indicates the expiry date for DVS vouchers in the server time zone.

EU server example
2025-12-16T00:00:00Z → 16 December 2025.

India server example
2025-12-16T00:00:00Z+05:30 → 16 December 2025.

Note: The response time zone always matches the server time zone, regardless of the time zone offset in the request.

...priorityLongIndicates the priority of the coupon series when multiple offers apply.
...shortSMSTemplateStringIndicates the short SMS template used for the coupon series.
...maxVouchersPerUserLongIndicates the maximum number of coupons from this series that a single user can receive.
...minDaysBetweenVouchersLongIndicates the minimum days gap between issuing multiple vouchers in this series to the same user.
...maxReferralsPerRefereeLongIndicates the maximum number of referrals allowed per referee.
...discountUptoLongIndicates the maximum discount allowed.
...discountValueLongIndicates the value of the discount configured for the series.
...dvsItemsStringIndicates the DVS items configuration for the coupon series.
...redemptionRangeStringIndicates the redemption range configuration.
Example: Allowed days and hours.
...minBillAmountLongIndicates the minimum bill amount required for redemption.
...maxBillAmountLongIndicates the maximum bill amount above which the coupon is not applicable.
...redeemAtStoreStringIndicates the list of stores where the coupon can be redeemed.
...campaignIdLongIndicates the campaign ID associated with the coupon series.
...tagStringIndicates the tag associated with the coupon series. It helps categorize or search the series.
...maxRedemptionsInSeriesPerUserLongIndicates the maximum redemptions allowed per user in the coupon series.
...minDaysBetweenRedemptionLongIndicates the minimum number of days required between redemptions for a user.
...redemptionValidFromString

Indicates the date and time from which redemption is allowed in ISO 8601 format, returned in the server time zone.

EU server example
2025-12-16T00:00:00Z → 16 December 2025.

India server example
2025-12-16T00:00:00Z+05:30 → 16 December 2025.

Note: The response time zone always matches the server time zone, regardless of the time zone offset in the request.

...sourceOrgIdLongIndicates the source organization ID, if the series is shared across organizations.
...issueToLoyaltyBooleanIndicates whether the coupon is issued to a loyalty customer.
...redeemStoreTypeStringIndicates the type of stores where redemption is allowed.
...offlineRedeemTypeBooleanIndicates whether the coupon supports offline redemption.
Value: true: Dynamic Voucher System is enabled
false: Dynamic Voucher System is disabled.
...isOldFlowEnabledBooleanIndicates whether the old redemption flow is enabled.
Value: true: Uses the legacy coupon flow for this series
false: Use the current/standard flow.
...isPreRedeemEventRequiredBooleanIndicates whether a pre-redemption event is required.
Value: true: A pre-redeem event must succeed before redemption proceeds;
false: No pre-redeem event is required.
...termsAndConditionsStringIndicates the terms and conditions configured for the coupon series.
...signalRedemptionEventBooleanIndicates whether the system triggers a redemption event.
Value: true: The system sends a redemption event when a coupon is redeemed.
false: The system does not send a redemption event signal when a coupon is redeemed.
...syncToClientBooleanIndicates whether the coupon series is synced to the client system.
Value: true: Keeps the series in sync with client systems.
false: Does not keep the series in sync with client systems.
...showPinCodeBooleanIndicates whether the PIN code is displayed for the coupon.
Value: true: Shows a PIN code to the user for this series.
false: Does not show a PIN code to the user for this series.
...targetUserDetailsObjectObject containing target user details.
....validMaxUserTransactionLimitIntegerIndicates the maximum transaction limit allowed for the user.
....validUserRegistrationStartTimeLongIndicates the user registration start time for eligibility validation.
....validUserRegistrationEndTimeLongIndicates the user registration end time for eligibility validation.
...numUploadedNonIssuedIntegerIndicates the number of uploaded coupons that were not issued.
...numUploadedTotalIntegerIndicates the total number of uploaded coupons. This includes both issued and not issued coupons.
...redemptionValidAfterDaysIntegerIndicates the number of days after issuance from which redemption is allowed.
...ownedByStringIndicates the ownership of the coupon series.
...ownerIdIntegerIndicates the owner ID associated with the coupon series.
...ownerValidityLongIndicates the validity period for the owner configuration.
...alphaNumericBooleanIndicates whether the coupon code supports alphanumeric values.
Value: true: Generated codes are alphanumeric.
false: Generated codes are not alphanumeric.
...shortCodeLengthintegerIndicates the length of the short coupon code.
...randomCodeLengthintegerIndicates the length of the randomly generated coupon code.
...fixedExpiryDateintegerIndicates the fixed expiry date in epoch time (milliseconds).
...numTotalIntegerIndicates the total number of coupons in the series.
...latestIssualTimeLongIndicates the latest issuance time in epoch time (milliseconds).
...latestRedemptionTimeLongIndicates the latest redemption time in epoch time (milliseconds).
...resendMessageEnabledBooleanIndicates whether resend message is enabled for the coupon series.
Value: true: Allow resending coupon communications.
false: Do not allow resending coupon communications.
...redemptionPerCouponMaxLimitLongIndicates the maximum number of redemptions allowed per coupon.
...isPrefixEnabledBooleanIndicates whether a prefix is enabled for coupon code generation.
Value: true: Enable applying a prefix to generated coupon codes.
false: Disable applying a prefix to generated coupon codes.
...isSuffixEnabledBooleanIndicates whether a suffix is enabled for coupon code generation.
Value: true: Enable applying a suffix to generated coupon codes.
false: Disable applying a suffix to generated coupon codes.
...orgPrefixOverrideBooleanIndicates whether the organization prefix overrides the series prefix.
Value: true: Overrides the organization-level prefix with the series-specific prefix.
false: Uses the organization-level prefix as is.
...orgSuffixOverrideBooleanIndicates whether the organization suffix overrides the default suffix.
Value: true: Overrides the organization-level suffix with the series-specific one.
false: Uses the organization-level suffix as is.
...seriesTypeStringIndicates the series type of the coupon series.
...clientHandlingTypeStringIndicates how the client handles the coupon series.
Example: DISC_CODE
...expiryStrategyTypeStringIndicates the expiry strategy type for the coupon series.
...discountOnStringIndicates what the discount applies to.
Example: BILL, ITEM
...discountTypeStringIndicates the type of discount. Example: ABS, PERC.
...updateProductDataBooleanIndicates the update requirement for product data.
Value: true: Product data associated with the series needs updating/sync.
false: No product data update needed.
...externalIssualBooleanIndicates whether the coupon series supports external issuance.
Value: true: Coupon issuance is handled by an external gateway or provider.
false: Coupon issuance is handled internally.
.warnings[]ArrayArray with the list of warnings returned in the response, if any.
.errors[]ArrayArray with the list of errors returned in the response, if any.
{
    "data": [
        {
            "code": "5875447216353555",
            "seriesId": 868760,
            "description": "Gold star coupons",
            "discountCode": "gold1234",
            "validTill": "2026-06-11T00:00:00Z",
            "validTillDateTime": "2026-06-11T23:59:59Z",
            "discountType": "ABS",
            "discountValue": 1000,
            "discountUpto": 0,
            "discountOn": "BILL",
            "detailedInfo": "Gold star coupons"
        }
    ],
    "warnings": [],
    "errors": []
}
{
    "data": [
        {
            "code": "vmqvzcvymt",
            "seriesId": 68579,
            "description": "test-lekhana-2",
            "discountCode": "NO_VALUE",
            "validTill": "2024-10-31T00:00:00Z",
            "discountType": "ABS",
            "discountValue": 10.0,
            "discountUpto": 0.0,
            "discountOn": "BILL",
            "detailedInfo": "test-lekhana-2"
        },
        {
            "code": "x6wqg8kb01",
            "seriesId": 68579,
            "description": "test-lekhana-2",
            "discountCode": "NO_VALUE",
            "validTill": "2024-10-31T00:00:00Z",
            "discountType": "ABS",
            "discountValue": 10.0,
            "discountUpto": 0.0,
            "discountOn": "BILL",
            "detailedInfo": "test-lekhana-2"
        },
        {
            "code": "oo8hf7divr",
            "seriesId": 68579,
            "description": "test-lekhana-2",
            "discountCode": "NO_VALUE",
            "validTill": "2024-10-31T00:00:00Z",
            "discountType": "ABS",
            "discountValue": 10.0,
            "discountUpto": 0.0,
            "discountOn": "BILL",
            "detailedInfo": "test-lekhana-2"
        },
        {
            "code": "tt6wzp7xnw",
            "seriesId": 68579,
            "description": "test-lekhana-2",
            "discountCode": "NO_VALUE",
            "validTill": "2024-10-31T00:00:00Z",
            "discountType": "ABS",
            "discountValue": 10.0,
            "discountUpto": 0.0,
            "discountOn": "BILL",
            "detailedInfo": "test-lekhana-2"
        },
        {
            "code": "ziwy7lzgw8",
            "seriesId": 68579,
            "description": "test-lekhana-2",
            "discountCode": "NO_VALUE",
            "validTill": "2024-10-31T00:00:00Z",
            "discountType": "ABS",
            "discountValue": 10.0,
            "discountUpto": 0.0,
            "discountOn": "BILL",
            "detailedInfo": "test-lekhana-2"
        },
        {
            "code": "hu1dh75hny",
            "seriesId": 68579,
            "description": "test-lekhana-2",
            "discountCode": "NO_VALUE",
            "validTill": "2024-10-31T00:00:00Z",
            "discountType": "ABS",
            "discountValue": 10.0,
            "discountUpto": 0.0,
            "discountOn": "BILL",
            "detailedInfo": "test-lekhana-2"
        }
    ],
    "warnings": [],
    "errors": []
}
{
  "data": [
    {
      "code": "YTOWAEN5N0",
      "seriesId": 757291,
      "description": "Vishu 10% OFF",
      "discountCode": "XMM123",
      "validTill": "2026-05-09T00:00:00Z",
      "validTillDateTime": "2026-05-09T23:59:59Z",
      "discountType": "ABS",
      "discountValue": 500,
      "discountUpto": 0,
      "discountOn": "BILL",
      "detailedInfo": "Evil coupon",
      "couponSeries": {
        "id": 757291,
        "orgId": 100737,
        "description": "Vishu 10% OFF",
        "discountCode": "XMM123",
        "validTillDate": "2026-05-09T00:00:00Z",
        "validTillDateTime": "2026-05-09T23:59:59Z",
        "validTillISODate": "2026-05-09",
        "validDaysFromCreation": 30,
        "expiryStrategyValue": 1,
        "maxCreate": 5,
        "maxRedeem": 5,
        "isTransferrable": false,
        "anyUser": true,
        "sameUserMultipleRedeem": true,
        "isReferralExistingUsersAllowed": false,
        "isMultipleUseAllowed": true,
        "isValidationRequired": false,
        "isValidWithDiscountedItem": true,
        "createdBy": 75161973,
        "numIssued": 5,
        "numRedeemed": 0,
        "createdOn": "2025-04-25T12:29:05Z",
        "lastUsed": "2025-04-25T12:29:05Z",
        "seriesCode": "1458A78E8A2846FBBB01",
        "smsTemplate": "Hi  {{first_name}} {{last_name}} your voucher code {{voucher}}is valid {{valid_days_from_create}}. {{fullname}} {{offer_name}}",
        "isSMSDisabled": false,
        "info": "Evil coupon",
        "isMultipleVouchersPerUserAllowed": true,
        "doNotResendExistingVoucher": true,
        "mutualExclusiveSeriesIds": "[-1]",
        "storeIdsJson": "[-1]",
        "isDvsEnabled": false,
        "dvsExpiryDate": "2025-04-25T00:00:00Z",
        "priority": 0,
        "shortSMSTemplate": "Hello {{cust_name}}, your voucher code is {{voucher_code}}",
        "maxVouchersPerUser": 11,
        "minDaysBetweenVouchers": 2,
        "maxReferralsPerReferee": -1,
        "discountUpto": 0,
        "discountValue": 500,
        "dvsItems": "items",
        "redemptionRange": {
          "dom": [
            1
          ],
          "dow": [
            1
          ],
          "hours": [
            1
          ]
        },
        "minBillAmount": 100,
        "maxBillAmount": 20000,
        "redeemAtStore": "[-1]",
        "campaignId": -1,
        "tag": "Vishu 10% OFF",
        "maxRedemptionsInSeriesPerUser": 122,
        "minDaysBetweenRedemption": 0,
        "redemptionValidFrom": "2024-05-01T00:00:00Z",
        "sourceOrgId": -1,
        "issueToLoyalty": false,
        "redeemStoreType": "redeemable_stores",
        "offlineRedeemType": false,
        "isOldFlowEnabled": false,
        "isPreRedeemEventRequired": false,
        "termsAndConditions": "T&C",
        "signalRedemptionEvent": false,
        "syncToClient": false,
        "showPinCode": false,
        "targetUserDetails": {
          "validMaxUserTransactionLimit": 5,
          "validUserRegistrationStartTime": 0,
          "validUserRegistrationEndTime": 10000
        },
        "numUploadedNonIssued": 0,
        "numUploadedTotal": 0,
        "redemptionValidAfterDays": 0,
        "ownedBy": "NONE",
        "ownerId": -1,
        "ownerValidity": 0,
        "alphaNumeric": true,
        "shortCodeLength": 0,
        "randomCodeLength": 10,
        "fixedExpiryDate": 1778284800000,
        "numTotal": 5,
        "latestIssualTime": 1750933819000,
        "latestRedemptionTime": 0,
        "resendMessageEnabled": true,
        "redemptionPerCouponMaxLimit": -1,
        "isPrefixEnabled": false,
        "isSuffixEnabled": false,
        "orgPrefixOverride": false,
        "orgSuffixOverride": false,
        "seriesType": "UNDEFINED",
        "clientHandlingType": "DISC_CODE",
        "expiryStrategyType": "SERIES_EXPIRY",
        "discountOn": "BILL",
        "discountType": "ABS",
        "externalIssual": false,
        "updateProductData": false
      }
    }
  ],
  "warnings": [],
  "errors": []
}
Query Params
issuedToIds
array of strings
issuedToIds
couponIds
array of int64s
couponIds
string
string
enum
Allowed:
Responses

Language
Credentials
Basic
base64
:
URL
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json