{ "opencollection": "1.0.0", "info": { "name": "Management API" }, "request": { "auth": { "type": "apikey", "key": "Authorization", "value": "{{Authorization}}", "placement": "header" } }, "items": [ { "info": { "name": "Loyalty", "type": "folder" }, "items": [ { "info": { "name": "Get customer's loyalty balances (Management API)", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/loyalty_programs/:loyaltyProgramId/profile/:integrationId/ledger_balances", "params": [ { "name": "loyaltyProgramId", "value": "33", "type": "path", "description": "Identifier of the profile-based loyalty program. You can get the ID with\nthe [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint.\n" }, { "name": "integrationId", "value": "customer1", "type": "path", "description": "The integration identifier for this customer profile. Must be:\n- Unique within the deployment.\n- Stable for the customer. Do not use an ID that the customer can update themselves. For example, you can use a database ID.\n\nOnce set, you cannot update this identifier.\n" }, { "name": "endDate", "value": "2024-05-29T15:04:05+07:00", "type": "query", "description": "Used to return expired, active, and pending loyalty balances before this\ntimestamp. You can enter any past, present, or future timestamp value.\n\n> [!note] **Note**\n> - This must be an RFC3339 timestamp string.\n> - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting\n> considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered.\n" }, { "name": "subledgerId", "value": "subledger1", "type": "query", "description": "The ID of the subledger used to filter the data. Leave this value empty (\"\") to query the main ledger." }, { "name": "includeTiers", "value": "false", "type": "query", "description": "Indicates whether tier information is included in the response.\n\nWhen set to `true`, the response includes information about the current tier and the number of points required to move to next tier.\n" }, { "name": "includeProjectedTier", "value": "false", "type": "query", "description": "Indicates whether the customer's projected tier information is included in the response.\n\nWhen set to `true`, the response includes information about the customer's active points and the name of the projected tier.\n\n**Note** We recommend filtering by `subledgerId` for better performance.\n" } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nRetrieve loyalty ledger balances for the given Integration ID in the\nspecified loyalty program.\n\nYou can filter balances by date and subledger ID, and include tier-related\ninformation in the response.\n\n> [!note] **Note**\n> - For most use cases, especially real-time integrations, use the Integration API endpoint:\n [Get customer's loya" }, { "info": { "name": "List customer's loyalty transactions (Management API)", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/loyalty_programs/:loyaltyProgramId/profile/:integrationId/ledger_transactions", "params": [ { "name": "loyaltyProgramId", "value": "33", "type": "path", "description": "Identifier of the profile-based loyalty program. You can get the ID with\nthe [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint.\n" }, { "name": "integrationId", "value": "customer1", "type": "path", "description": "The integration identifier for this customer profile. Must be:\n- Unique within the deployment.\n- Stable for the customer. Do not use an ID that the customer can update themselves. For example, you can use a database ID.\n\nOnce set, you cannot update this identifier.\n" }, { "name": "customerSessionIDs", "value": "session_integration_id_1,session_integration_id_1", "type": "query", "description": "Filter the results by a list of customer session IDs.\n\nTo include multiple IDs, repeat the parameter for each one, for example,\n`?customerSessionIDs=id1&customerSessionIDs=id2`.\n\nThe response contains only data associated with the specified sessions.\n" }, { "name": "transactionUUIDs", "value": "dc608634-0100-40d9-b371-e964476bbe0f,9e829590-05cf-407b-b4c0-5f28468a81e1", "type": "query", "description": "Filter the results by a list of transaction UUIDs.\n\nTo include multiple IDs, repeat the parameter for each one, for example,\n`?transactionUUIDs=uuid1&transactionUUIDs=uuid2`.\n\nThe response contains only data associated with the specified transactions.\n" }, { "name": "subledgerId", "value": "subledger1", "type": "query", "description": "The ID of the subledger used to filter the data. Leave this value empty (\"\") to query the main ledger." }, { "name": "loyaltyTransactionType", "value": "manual", "type": "query", "description": "Filter results by loyalty transaction type:\n- `manual`: Loyalty transaction that was done manually.\n- `session`: Loyalty transaction that resulted from a customer session.\n- `import`: Loyalty transaction that was imported from a CSV file.\n" }, { "name": "startDate", "value": "2024-05-29T15:04:05+07:00", "type": "query", "description": "Date and time from which results are returned. Results are filtered by\ntransaction creation date.\n\n> [!note] **Note**\n> - This must be an RFC3339 timestamp string.\n> - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting\n> considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered.\n" }, { "name": "endDate", "value": "2024-05-29T15:04:05+07:00", "type": "query", "description": "Date and time by which results are returned. Results are filtered by\ntransaction creation date.\n\n> [!note] **Note**\n> - This must be an RFC3339 timestamp string.\n> - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting\n> considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered.\n" }, { "name": "pageSize", "value": "50", "type": "query", "description": "The number of items in the response." }, { "name": "skip", "value": "100", "type": "query", "description": "The number of items to skip when paging through large result sets." }, { "name": "awaitsActivation", "value": "true", "type": "query", "description": "If `true`: Filters results to include only point transactions that have action-based activation and have not expired.\n\nIf `false`: Returns a `400` response.\n" } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nRetrieve paginated results of loyalty transaction logs for the given\nIntegration ID in the specified loyalty program.\n\nYou can filter transactions by date or by ledger (subledger or main ledger). If no filters are applied, the last 50\nloyalty transactions for the given integration ID are returned.\n\n> [!note] **Note**\n> - For most use ca" }, { "info": { "name": "List loyalty programs", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/loyalty_programs" }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nList the loyalty programs of the account." }, { "info": { "name": "Get loyalty program", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/loyalty_programs/:loyaltyProgramId", "params": [ { "name": "loyaltyProgramId", "value": "8", "type": "path", "description": "Identifier of the loyalty program. You can get the ID with\nthe [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint.\n" } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nGet the specified [loyalty\nprogram](https://docs.talon.one/docs/product/loyalty-programs/overview).\n\nTo list all loyalty programs in your Application, use [List loyalty\nprograms](#tag/Loyalty/operation/getLoyaltyPrograms).\n\nTo list the loyalty programs that a customer profile is part of, use\n[List customer data](https://docs.talon.one/i" }, { "info": { "name": "Get statistics for loyalty dashboard", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/loyalty_programs/:loyaltyProgramId/dashboard", "params": [ { "name": "loyaltyProgramId", "value": "8", "type": "path", "description": "Identifier of the loyalty program. You can get the ID with\nthe [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint.\n" }, { "name": "subledgerId", "value": "subledger1", "type": "query", "description": "The ID of the subledger by which we filter the data." }, { "name": "rangeStart", "value": "2024-05-29T15:04:05+07:00", "type": "query", "description": "Only return results from after this timestamp.\n\n> [!note] **Note**\n> - This must be an RFC3339 timestamp string.\n> - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting\n> considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered.\n" }, { "name": "rangeEnd", "value": "2024-05-29T15:04:05+07:00", "type": "query", "description": "Only return results from before this timestamp.\n\n> [!note] **Note**\n> - This must be an RFC3339 timestamp string.\n> - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting\n> considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered.\n" } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nRetrieve the statistics displayed on the specified loyalty program's\ndashboard, such as the total active points, pending points, spent points, and expired\npoints.\n\n> [!important] The returned data does not include the current day. All statistics\n> are updated daily at 11:59 PM in the loyalty program time zone.\n" }, { "info": { "name": "Import loyalty points", "type": "http" }, "http": { "method": "POST", "url": "https://yourbaseurl.talon.one/v1/loyalty_programs/:loyaltyProgramId/import_points", "params": [ { "name": "loyaltyProgramId", "value": "8", "type": "path", "description": "Identifier of the loyalty program. You can get the ID with\nthe [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint.\n" }, { "name": "notificationsEnabled", "value": "true", "type": "query", "description": "Indicates whether the points import triggers notifications about its effects. For example, a notification is sent if the import upgrades a customer's tier or offsets their negative points balance.\n\nThis parameter is optional and defaults to `true`.\n" } ], "body": { "type": "multipart-form", "data": [ { "name": "upFile", "type": "text", "value": "" } ] } }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nUpload a CSV file containing the loyalty points you want to import into a\ngiven loyalty program.\n\nSend the file as multipart data.\n\nDepending on the type of loyalty program, you can import points into a given\ncustomer profile or loyalty card.\n\nThe CSV file contains the following columns:\n\n- `customerprofileid` (optional): For profile-ba" }, { "info": { "name": "Import customers into loyalty tiers", "type": "http" }, "http": { "method": "POST", "url": "https://yourbaseurl.talon.one/v1/loyalty_programs/:loyaltyProgramId/import_customers_tiers", "params": [ { "name": "loyaltyProgramId", "value": "8", "type": "path", "description": "Identifier of the loyalty program. You can get the ID with\nthe [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint.\n" } ], "body": { "type": "multipart-form", "data": [ { "name": "upFile", "type": "text", "value": "" } ] } }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nUpload a CSV file containing existing customers to be assigned to existing\ntiers.\n\nSend the file as multipart data.\n\n> [!important] This endpoint only works with loyalty programs with advanced\n> tiers (with expiration and downgrade policy) feature enabled.\n\nThe CSV file should contain the following columns:\n\n- `subledgerid` (optional): " }, { "info": { "name": "Import join dates for a loyalty program", "type": "http" }, "http": { "method": "POST", "url": "https://yourbaseurl.talon.one/v1/loyalty_programs/:loyaltyProgramId/import_join_dates", "params": [ { "name": "loyaltyProgramId", "value": "8", "type": "path", "description": "Identifier of the profile-based loyalty program. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint.\n" } ], "body": { "type": "multipart-form", "data": [ { "name": "upFile", "type": "text", "value": "" } ] } }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nUpload a CSV file containing customer profile IDs and their join dates for the\nspecified loyalty program. Send the file as multipart data.\n\n> [!important] This endpoint only works with profile-based loyalty programs.\n\nThe CSV file **must** contain the following columns:\n\n- `customerprofileid`: The integration ID of the customer profile " }, { "info": { "name": "Get customer's full loyalty ledger", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/loyalty_programs/:loyaltyProgramId/profile/:integrationId", "params": [ { "name": "loyaltyProgramId", "value": "45", "type": "path", "description": "The identifier for the loyalty program." }, { "name": "integrationId", "value": "customer1", "type": "path", "description": "The integration identifier for this customer profile. Must be:\n- Unique within the deployment.\n- Stable for the customer. Do not use an ID that the customer can update themselves. For example, you can use a database ID.\n\nOnce set, you cannot update this identifier.\n" } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nGet the loyalty ledger for this profile integration ID.\n\nTo get the `integrationId` of the profile from a `sessionId`, use the\n[Update customer session](https://docs.talon.one/integration-api#tag/Customer-sessions/operation/updateCustomerSessionV2) endpoint.\n\n**Important:** To get loyalty transaction logs for a given Integration ID in a" }, { "info": { "name": "Add points to customer profile", "type": "http" }, "http": { "method": "PUT", "url": "https://yourbaseurl.talon.one/v1/loyalty_programs/:loyaltyProgramId/profile/:integrationId/add_points", "params": [ { "name": "loyaltyProgramId", "value": "45", "type": "path", "description": "The identifier for the loyalty program." }, { "name": "integrationId", "value": "customer1", "type": "path", "description": "The integration identifier for this customer profile. Must be:\n- Unique within the deployment.\n- Stable for the customer. Do not use an ID that the customer can update themselves. For example, you can use a database ID.\n\nOnce set, you cannot update this identifier.\n" } ], "body": { "type": "json", "data": "{}" } }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nAdd points in the specified loyalty program for the given customer.\n\nTo get the `integrationId` of the profile from a `sessionId`, use the\n[Update customer session](https://docs.talon.one/integration-api#tag/Customer-sessions/operation/updateCustomerSessionV2) endpoint.\n" }, { "info": { "name": "Deduct points from customer profile", "type": "http" }, "http": { "method": "PUT", "url": "https://yourbaseurl.talon.one/v1/loyalty_programs/:loyaltyProgramId/profile/:integrationId/deduct_points", "params": [ { "name": "loyaltyProgramId", "value": "45", "type": "path", "description": "The identifier for the loyalty program." }, { "name": "integrationId", "value": "customer1", "type": "path", "description": "The integration identifier for this customer profile. Must be:\n- Unique within the deployment.\n- Stable for the customer. Do not use an ID that the customer can update themselves. For example, you can use a database ID.\n\nOnce set, you cannot update this identifier.\n" } ], "body": { "type": "json", "data": "{}" } }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nDeduct points from the specified loyalty program and specified customer\nprofile.\n\n> [!note] **Note**\n> - Only active points can be deducted.\n> - Only pending points are rolled back when a session is cancelled or reopened.\n\nTo get the `integrationId` of the profile from a `sessionId`, use the\n[Update customer session](https://docs.talon." }, { "info": { "name": "Export customer's transaction logs", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/loyalty_programs/:loyaltyProgramId/profile/:integrationId/export_log", "params": [ { "name": "rangeStart", "value": "2024-05-29T15:04:05+07:00", "type": "query", "description": "Only return results from after this timestamp.\n\n> [!note] **Note**\n> - This must be an RFC3339 timestamp string.\n> - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting\n> considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered.\n" }, { "name": "rangeEnd", "value": "2024-05-29T15:04:05+07:00", "type": "query", "description": "Only return results from before this timestamp.\n\n> [!note] **Note**\n> - This must be an RFC3339 timestamp string.\n> - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting\n> considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered.\n" }, { "name": "dateFormat", "value": "excel", "type": "query", "description": "Determines the format of dates in the export document." }, { "name": "loyaltyProgramId", "value": "45", "type": "path", "description": "The identifier for the loyalty program." }, { "name": "integrationId", "value": "customer1", "type": "path", "description": "The integration identifier for this customer profile. Must be:\n- Unique within the deployment.\n- Stable for the customer. Do not use an ID that the customer can update themselves. For example, you can use a database ID.\n\nOnce set, you cannot update this identifier.\n" } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nDownload a CSV file containing a customer's transaction logs in the loyalty\nprogram.\n\n> [!tip] If the exported CSV file is too large to view, you can\n> [split it into multiple files](https://www.google.com/search?q=split+CSV+into+multiple+files).\n\nThe generated file can contain the following columns:\n\n- `customerprofileid`: The ID of th" }, { "info": { "name": "Export customers' loyalty program join dates", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/loyalty_programs/:loyaltyProgramId/export_join_dates", "params": [ { "name": "loyaltyProgramId", "value": "45", "type": "path", "description": "The identifier of the loyalty program." } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nDownload a CSV file containing the join dates of all customers in the loyalty program.\n\n> [!tip] If the exported CSV file is too large to view, you can\n> [split it into multiple files](https://www.google.com/search?q=split+CSV+into+multiple+files).\n\nThe generated file can contain the following columns:\n\n- `loyaltyProgramID`: The ID of t" }, { "info": { "name": "Export customers' tier data", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/loyalty_programs/:loyaltyProgramId/export_customers_tiers", "params": [ { "name": "loyaltyProgramId", "value": "45", "type": "path", "description": "The identifier for the loyalty program." }, { "name": "subledgerIds", "value": "subledger1,subledger2", "type": "query", "description": "An array of subledgers IDs to filter the export by." }, { "name": "tierNames", "value": "tier1,tier2", "type": "query", "description": "An array of tier names to filter the export by." } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nDownload a CSV file containing the tier information for customers of the specified loyalty program.\n\nThe generated file contains the following columns:\n\n- `programid`: The identifier of the loyalty program. It is displayed in your Talon.One deployment URL.\n- `subledgerid`: The ID of the subledger associated with the loyalty program. Thi" }, { "info": { "name": "Get loyalty program statistics", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/loyalty_programs/:loyaltyProgramId/statistics", "params": [ { "name": "loyaltyProgramId", "value": "8", "type": "path", "description": "Identifier of the loyalty program. You can get the ID with\nthe [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint.\n" } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\n> [warning] This endpoint is deprecated.\n\nTo retrieve statistics for a loyalty program, use the\n[Get statistics for loyalty dashboard](/management-api#tag/Loyalty/operation/getDashboardStatistics)\nendpoint.\n\nRetrieve the statistics of the specified loyalty program, such as the\ntotal active points, pending points, spent points, and expir" }, { "info": { "name": "Export customer loyalty balances", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/loyalty_programs/:loyaltyProgramId/export_customer_balances", "params": [ { "name": "loyaltyProgramId", "value": "45", "type": "path", "description": "The identifier for the loyalty program." }, { "name": "endDate", "value": "2024-05-29T15:04:05+07:00", "type": "query", "description": "Used to return expired, active, and pending loyalty balances before this\ntimestamp. You can enter any past, present, or future timestamp value.\n\n> [!note] **Note**\n> - This must be an RFC3339 timestamp string.\n> - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting\n> considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered.\n> - This parameter does not affect the `currentTier` field in the CSV file, which shows the customer's tier at the time of export.\n" }, { "name": "balances", "value": "currentBalance,pendingBalance", "type": "query", "description": "Filters which balance fields are included in the CSV export. `currentBalance`\nis always returned.\n\nBy default, all balance fields are included. When this parameter is provided, only the\nlisted fields contain values and the rest are returned empty.\n\nAccepted values:\n- `currentBalance`\n- `pendingBalance`\n- `expiredBalance`\n- `spentBalance`\n- `negativeBalance`\n\nMultiple values must be provided as a comma-separated list.\n" } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nDownload a CSV file containing the balance of each customer in the loyalty\nprogram.\n\n> [!tip] If the exported CSV file is too large to view, you can\n> [split it into multiple files](https://www.google.com/search?q=split+CSV+into+multiple+files).\n\nThe generated file can contain the following columns:\n\n- `loyaltyProgramID`: The ID of the " }, { "info": { "name": "Export customer loyalty balance to CSV", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/loyalty_programs/:loyaltyProgramId/export_customer_balance", "params": [ { "name": "loyaltyProgramId", "value": "45", "type": "path", "description": "The identifier for the loyalty program." }, { "name": "endDate", "value": "2024-05-29T15:04:05+07:00", "type": "query", "description": "Used to return expired, active, and pending loyalty balances before this\ntimestamp. You can enter any past, present, or future timestamp value.\n\n> [!note] **Note**\n> - This must be an RFC3339 timestamp string.\n> - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting\n> considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered.\n" }, { "name": "balances", "value": "currentBalance,pendingBalance", "type": "query", "description": "Filters which balance fields are included in the CSV export. `currentBalance`\nis always returned.\n\nBy default, all balance fields are included. When this parameter is provided, only the\nlisted fields contain values and the rest are returned empty.\n\nAccepted values:\n- `currentBalance`\n- `pendingBalance`\n- `expiredBalance`\n- `spentBalance`\n- `negativeBalance`\n\nMultiple values must be provided as a comma-separated list.\n" } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nTo export customer loyalty balances to CSV, use the [Export customer loyalty\nbalances to CSV](/management-api#tag/Loyalty/operation/exportLoyaltyBalances) endpoint.\n\nDownload a CSV file containing the balance of each customer in the loyalty\nprogram.\n\n> [!tip] If the exported CSV file is too large to view, you can\n> [split it into multip" }, { "info": { "name": "List loyalty program transactions", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/loyalty_programs/:loyaltyProgramId/transactions", "params": [ { "name": "loyaltyProgramId", "value": "8", "type": "path", "description": "Identifier of the loyalty program. You can get the ID with\nthe [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint.\n" }, { "name": "loyaltyTransactionType", "value": "manual", "type": "query", "description": "Filter results by loyalty transaction type:\n- `manual`: Loyalty transaction that was done manually.\n- `session`: Loyalty transaction that resulted from a customer session.\n- `import`: Loyalty transaction that was imported from a CSV file.\n" }, { "name": "subledgerId", "value": "subledger1", "type": "query", "description": "The ID of the subledger by which we filter the data." }, { "name": "customerSessionIDs", "value": "session_integration_id_1,session_integration_id_1", "type": "query", "description": "Filter the results by a list of customer session IDs.\n\nTo include multiple IDs, repeat the parameter for each one, for example,\n`?customerSessionIDs=id1&customerSessionIDs=id2`.\n\nThe response contains only data associated with the specified sessions.\n" }, { "name": "transactionUUIDs", "value": "dc608634-0100-40d9-b371-e964476bbe0f,9e829590-05cf-407b-b4c0-5f28468a81e1", "type": "query", "description": "Filter the results by a list of transaction UUIDs.\n\nTo include multiple IDs, repeat the parameter for each one, for example,\n`?transactionUUIDs=uuid1&transactionUUIDs=uuid2`.\n\nThe response contains only data associated with the specified transactions.\n" }, { "name": "startDate", "value": "2024-05-29T15:04:05+07:00", "type": "query", "description": "Date and time from which results are returned. Results are filtered by\ntransaction creation date.\n\n> [!note] **Note**\n> - This must be an RFC3339 timestamp string.\n> - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting\n> considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered.\n" }, { "name": "endDate", "value": "2024-05-29T15:04:05+07:00", "type": "query", "description": "Date and time by which results are returned. Results are filtered by\ntransaction creation date.\n\n> [!note] **Note**\n> - This must be an RFC3339 timestamp string.\n> - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting\n> considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered.\n" }, { "name": "pageSize", "value": "50", "type": "query", "description": "The number of items in the response." }, { "name": "skip", "value": "100", "type": "query", "description": "The number of items to skip when paging through large result sets." }, { "name": "awaitsActivation", "value": "true", "type": "query", "description": "If `true`: Filters results to include only point transactions that have action-based activation and have not expired.\n\nIf `false`: Returns a `400` response.\n" } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nRetrieve loyalty program transaction logs in a given loyalty program with\nfiltering options applied. Manual and imported transactions are also\nincluded.\n\n> [!note] **Note**\n> - If no filters are applied, the last 50 loyalty transactions for the given loyalty program are returned.\n> - To get loyalty transaction logs for a given Integrati" } ] }, { "info": { "name": "Applications", "type": "folder" }, "items": [ { "info": { "name": "List Applications", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/applications", "params": [ { "name": "pageSize", "value": "1000", "type": "query", "description": "The number of items in the response." }, { "name": "skip", "value": "100", "type": "query", "description": "The number of items to skip when paging through large result sets." }, { "name": "sort", "value": "name", "type": "query", "description": "The field by which results should be sorted. By default, results are sorted in ascending order. To sort them in descending order, prefix the field name with `-`.\n\n**Note:** You may not be able to use all fields for sorting. This is due to performance limitations.\n" } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nList all the Applications in the current account." }, { "info": { "name": "Get Application", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId", "params": [ { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nGet the Application specified by the ID." }, { "info": { "name": "Get Application health", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/health_report", "params": [ { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nDisplay the health of the Application and show the last time the Application\nwas used.\n\nYou can also find this information in the Campaign Manager. In your Application, click **Settings** > **Integration API Keys**.\nSee the [docs](https://docs.talon.one/docs/dev/tutorials/monitoring-integration-status).\n" }, { "info": { "name": "List Application cart item filters", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/cart_item_filters", "params": [ { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "pageSize", "value": "50", "type": "query", "description": "The number of items in the response." }, { "name": "skip", "value": "100", "type": "query", "description": "The number of items to skip when paging through large result sets." }, { "name": "name", "value": "cartItemFilter1", "type": "query", "description": "Filter by the display name of the Application cart item filter in the Application.\n\n**Note**: If no `name` is provided, all the Application cart item filters in the Application are returned.\n" } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nReturn all the Application cart item filters for a specific Application." }, { "info": { "name": "Get Application cart item filter expression", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/cart_item_filters/:cartItemFilterId/expressions/:expressionId", "params": [ { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "cartItemFilterId", "value": "20", "type": "path", "description": "The ID of the Application cart item filter. You can get this ID with the [List Application cart item filters](https://docs.talon.one/management-api#tag/Applications/operation/listApplicationCartItemFilters) endpoint." }, { "name": "expressionId", "value": "19", "type": "path", "description": "The ID of the Application cart item filter expression." } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nGet an Application cart item filter expression for a specific Application." } ] }, { "info": { "name": "Campaigns", "type": "folder" }, "items": [ { "info": { "name": "List campaigns", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/campaigns", "params": [ { "name": "pageSize", "value": "1000", "type": "query", "description": "The number of items in the response." }, { "name": "skip", "value": "100", "type": "query", "description": "The number of items to skip when paging through large result sets." }, { "name": "sort", "value": "name", "type": "query", "description": "The field by which results should be sorted. By default, results are sorted in ascending order. To sort them in descending order, prefix the field name with `-`.\n\n**Note:** You may not be able to use all fields for sorting. This is due to performance limitations.\n" }, { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "campaignState", "value": "enabled", "type": "query", "description": "Filter results by the state of the campaign.\n\n- `enabled`: Campaigns that are scheduled, running (activated), or expired.\n- `running`: Campaigns that are running (activated).\n- `disabled`: Campaigns that are disabled.\n- `expired`: Campaigns that are expired.\n- `archived`: Campaigns that are archived.\n" }, { "name": "name", "value": "campaign1", "type": "query", "description": "Filter results performing case-insensitive matching against the name of the campaign." }, { "name": "tags", "value": "tag1,tag2", "type": "query", "description": "Filter results performing case-insensitive matching against the tags of the campaign.\n" }, { "name": "createdBefore", "value": "2024-05-29T15:04:05+07:00", "type": "query", "description": "Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the campaign creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally." }, { "name": "createdAfter", "value": "2024-05-29T15:04:05+07:00", "type": "query", "description": "Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the campaign creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally." }, { "name": "startBefore", "value": "2024-05-29T15:04:05+07:00", "type": "query", "description": "Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the campaign start time timestamp. You can use any time zone setting. Talon.One will convert to UTC internally." }, { "name": "startAfter", "value": "2024-05-29T15:04:05+07:00", "type": "query", "description": "Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the campaign start time timestamp. You can use any time zone setting. Talon.One will convert to UTC internally." }, { "name": "endBefore", "value": "2024-05-29T15:04:05+07:00", "type": "query", "description": "Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the campaign end time timestamp. You can use any time zone setting. Talon.One will convert to UTC internally." }, { "name": "endAfter", "value": "2024-05-29T15:04:05+07:00", "type": "query", "description": "Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the campaign end time timestamp. You can use any time zone setting. Talon.One will convert to UTC internally." }, { "name": "campaignGroupId", "value": "12", "type": "query", "description": "Filter results to campaigns owned by the specified campaign access group ID." }, { "name": "templateId", "value": "18", "type": "query", "description": "The ID of the campaign template this campaign was created from." }, { "name": "storeId", "value": "23", "type": "query", "description": "Filter results to campaigns linked to the specified store ID." } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nList the campaigns of the specified application that match your filter criteria.\n" }, { "info": { "name": "Get campaign", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/campaigns/:campaignId", "params": [ { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "campaignId", "value": "18", "type": "path", "description": "The ID of the campaign. It is displayed in your Talon.One deployment URL." } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nRetrieve the given campaign." }, { "info": { "name": "Update campaign", "type": "http" }, "http": { "method": "PUT", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/campaigns/:campaignId", "params": [ { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "campaignId", "value": "18", "type": "path", "description": "The ID of the campaign. It is displayed in your Talon.One deployment URL." } ], "body": { "type": "json", "data": "{}" } }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nUpdate the given campaign.\n\n> [!important] You cannot use this endpoint to update campaigns if [campaign staging and\n> revisions](https://docs.talon.one/docs/product/applications/managing-general-settings#campaign-staging-and-revisions)\n> is enabled for your Application.\n" }, { "info": { "name": "Delete campaign", "type": "http" }, "http": { "method": "DELETE", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/campaigns/:campaignId", "params": [ { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "campaignId", "value": "18", "type": "path", "description": "The ID of the campaign. It is displayed in your Talon.One deployment URL." } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nDelete the given campaign." }, { "info": { "name": "Copy the campaign into the specified Application", "type": "http" }, "http": { "method": "POST", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/campaigns/:campaignId/copy", "params": [ { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "campaignId", "value": "18", "type": "path", "description": "The ID of the campaign. It is displayed in your Talon.One deployment URL." } ], "body": { "type": "json", "data": "{}" } }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nCopy the campaign into all specified Applications." }, { "info": { "name": "List campaigns that match the given attributes", "type": "http" }, "http": { "method": "POST", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/campaigns_search", "params": [ { "name": "pageSize", "value": "1000", "type": "query", "description": "The number of items in the response." }, { "name": "skip", "value": "100", "type": "query", "description": "The number of items to skip when paging through large result sets." }, { "name": "sort", "value": "name", "type": "query", "description": "The field by which results should be sorted. By default, results are sorted in ascending order. To sort them in descending order, prefix the field name with `-`.\n\n**Note:** You may not be able to use all fields for sorting. This is due to performance limitations.\n" }, { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "campaignState", "value": "enabled", "type": "query", "description": "Filter results by the state of the campaign.\n\n- `enabled`: Campaigns that are scheduled, running (activated), or expired.\n- `running`: Campaigns that are running (activated).\n- `disabled`: Campaigns that are disabled.\n- `expired`: Campaigns that are expired.\n- `archived`: Campaigns that are archived.\n" } ], "body": { "type": "json", "data": "{}" } }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nGet a list of all the campaigns that match a set of attributes.\n" }, { "info": { "name": "List campaign rulesets", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/campaigns/:campaignId/rulesets", "params": [ { "name": "pageSize", "value": "1000", "type": "query", "description": "The number of items in the response." }, { "name": "skip", "value": "100", "type": "query", "description": "The number of items to skip when paging through large result sets." }, { "name": "sort", "value": "name", "type": "query", "description": "The field by which results should be sorted. By default, results are sorted in ascending order. To sort them in descending order, prefix the field name with `-`.\n\n**Note:** You may not be able to use all fields for sorting. This is due to performance limitations.\n" }, { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "campaignId", "value": "18", "type": "path", "description": "The ID of the campaign. It is displayed in your Talon.One deployment URL." } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nList all rulesets of this campaign. A ruleset is a revision of the rules of a campaign.\n**Important:** The response also includes deleted rules.\nYou should only consider the latest revision of the returned rulesets.\n" }, { "info": { "name": "Get ruleset", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/campaigns/:campaignId/rulesets/:rulesetId", "params": [ { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "campaignId", "value": "18", "type": "path", "description": "The ID of the campaign. It is displayed in your Talon.One deployment URL." }, { "name": "rulesetId", "value": "29", "type": "path", "description": "The ID of the ruleset." } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nRetrieve the specified ruleset." }, { "info": { "name": "Get ruleset (V2)", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v2/applications/:applicationId/campaigns/:campaignId/rulesets/:rulesetId", "params": [ { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "campaignId", "value": "18", "type": "path", "description": "The ID of the campaign. It is displayed in your Talon.One deployment URL." }, { "name": "rulesetId", "value": "29", "type": "path", "description": "The ID of the ruleset." } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nRetrieve the specified ruleset as a JSON object." }, { "info": { "name": "Get analytics of campaigns", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/campaigns/:campaignId/analytics", "params": [ { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "campaignId", "value": "18", "type": "path", "description": "The ID of the campaign. It is displayed in your Talon.One deployment URL." }, { "name": "rangeStart", "value": "2024-05-29T15:04:05+07:00", "type": "query", "description": "Only return results from after this timestamp.\n\n> [!note] **Note**\n> - This must be an RFC3339 timestamp string.\n> - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting\n> considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered.\n" }, { "name": "rangeEnd", "value": "2024-05-29T15:04:05+07:00", "type": "query", "description": "Only return results from before this timestamp.\n\n> [!note] **Note**\n> - This must be an RFC3339 timestamp string.\n> - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting\n> considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered.\n" }, { "name": "granularity", "value": "1 hour", "type": "query", "description": "The time interval between the results in the returned time-series." } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nRetrieve statistical data about the performance of the given campaign." }, { "info": { "name": "Export Application analytics aggregated by campaign", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/campaign_analytics/export", "params": [ { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "campaignIds", "value": "11,20", "type": "query", "description": "Filter by one or more Campaign IDs, separated by a comma.\n\n**Note:** If no campaigns are specified, data for all the campaigns in the Application is returned.\n" }, { "name": "rangeStart", "value": "2024-05-29T15:04:05+07:00", "type": "query", "description": "Only return results from after this timestamp.\n\n> [!note] **Note**\n> - This must be an RFC3339 timestamp string.\n> - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting\n> considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered.\n" }, { "name": "rangeEnd", "value": "2024-05-29T15:04:05+07:00", "type": "query", "description": "Only return results from before this timestamp.\n\n> [!note] **Note**\n> - This must be an RFC3339 timestamp string.\n> - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting\n> considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered.\n" } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nDownload a CSV file containing analytics data aggregated by campaign for the\ncampaigns of an Application.\n\n> [!tip] If the exported CSV file is too large to view, you can\n> [split it into multiple files](https://www.google.com/search?q=split+CSV+into+multiple+files).\n\nThe CSV file contains the following columns:\n\n- `campaign_id`: The ID" } ] }, { "info": { "name": "Coupons", "type": "folder" }, "items": [ { "info": { "name": "Create coupons", "type": "http" }, "http": { "method": "POST", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/campaigns/:campaignId/coupons", "params": [ { "name": "silent", "value": "yes", "type": "query", "description": "Possible values: `yes` or `no`.\n- `yes`: Increases the performance of the API call by returning a 204 response.\n- `no`: Returns a 200 response that contains the updated customer profiles.\n" }, { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "campaignId", "value": "18", "type": "path", "description": "The ID of the campaign. It is displayed in your Talon.One deployment URL." } ], "body": { "type": "json", "data": "{}" } }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nCreate coupons according to some pattern. Up to 20.000 coupons can be created without a unique prefix. When a unique prefix is provided, up to 200.000 coupons can be created." }, { "info": { "name": "Update coupons", "type": "http" }, "http": { "method": "PUT", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/campaigns/:campaignId/coupons", "params": [ { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "campaignId", "value": "18", "type": "path", "description": "The ID of the campaign. It is displayed in your Talon.One deployment URL." } ], "body": { "type": "json", "data": "{}" } }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nUpdate all coupons or a specific batch of coupons in the given campaign.\n\nYou can find the `batchId` on the **Coupons** page of your campaign in the\nCampaign Manager, or you can use [List coupons](#tag/Coupons/operation/getCouponsWithoutTotalCount).\n\n> [!note] **Note**\n> - Only send sequential requests to this endpoint.\n> - Requests to " }, { "info": { "name": "Delete coupons", "type": "http" }, "http": { "method": "DELETE", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/campaigns/:campaignId/coupons", "params": [ { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "campaignId", "value": "18", "type": "path", "description": "The ID of the campaign. It is displayed in your Talon.One deployment URL." }, { "name": "value", "value": "SUMMER10", "type": "query", "description": "Filter results performing case-insensitive matching against the coupon code. Both the code and the query are folded to remove all non-alpha-numeric characters." }, { "name": "createdBefore", "value": "2024-05-29T15:04:05+07:00", "type": "query", "description": "Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally." }, { "name": "createdAfter", "value": "2024-05-29T15:04:05+07:00", "type": "query", "description": "Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally." }, { "name": "startsAfter", "value": "2024-05-29T15:04:05+07:00", "type": "query", "description": "Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon start date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally." }, { "name": "startsBefore", "value": "2024-05-29T15:04:05+07:00", "type": "query", "description": "Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon start date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally." }, { "name": "expiresAfter", "value": "2024-05-29T15:04:05+07:00", "type": "query", "description": "Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon expiration date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally." }, { "name": "expiresBefore", "value": "2024-05-29T15:04:05+07:00", "type": "query", "description": "Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon expiration date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally." }, { "name": "valid", "value": "validNow", "type": "query", "description": "- `expired`: Matches coupons in which the expiration date is set and in the past.\n- `validNow`: Matches coupons in which start date is null or in the past and expiration date is null or in the future.\n- `validFuture`: Matches coupons in which start date is set and in the future.\n" }, { "name": "batchId", "value": "nfinccze", "type": "query", "description": "Filter results by batches of coupons" }, { "name": "usable", "value": "false", "type": "query", "description": "- `true`: only coupons where `usageCounter < usageLimit` will be returned.\n- `false`: only coupons where `usageCounter >= usageLimit` will be returned.\n" }, { "name": "referralId", "value": "47", "type": "query", "description": "Filter the results by matching them with the ID of a referral. This filter shows the coupons created by redeeming a referral code." }, { "name": "recipientIntegrationId", "value": "customer1", "type": "query", "description": "Filter results by match with a profile ID specified in the coupon's `RecipientIntegrationId` field.\n" }, { "name": "exactMatch", "value": "false", "type": "query", "description": "Filter results to an exact case-insensitive matching against the coupon code" } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nDeletes all the coupons matching the specified criteria." }, { "info": { "name": "Create coupons for multiple recipients", "type": "http" }, "http": { "method": "POST", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/campaigns/:campaignId/coupons_with_recipients", "params": [ { "name": "silent", "value": "yes", "type": "query", "description": "Possible values: `yes` or `no`.\n- `yes`: Increases the performance of the API call by returning a 204 response.\n- `no`: Returns a 200 response that contains the updated customer profiles.\n" }, { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "campaignId", "value": "18", "type": "path", "description": "The ID of the campaign. It is displayed in your Talon.One deployment URL." } ], "body": { "type": "json", "data": "{}" } }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nCreate coupons according to some pattern for up to 1000 recipients." }, { "info": { "name": "Create coupons asynchronously", "type": "http" }, "http": { "method": "POST", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/campaigns/:campaignId/coupons_async", "params": [ { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "campaignId", "value": "18", "type": "path", "description": "The ID of the campaign. It is displayed in your Talon.One deployment URL." } ], "body": { "type": "json", "data": "{}" } }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nCreate up to 5,000,000 coupons asynchronously. You should typically use this enpdoint when you create at least 20,001 coupons. You receive an email when the creation is complete.\n\nIf you want to create less than 20,001 coupons, you can use the [Create coupons](https://docs.talon.one/management-api#tag/Coupons/operation/createCoupons) en" }, { "info": { "name": "Creates a coupon deletion job", "type": "http" }, "http": { "method": "POST", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/campaigns/:campaignId/coupons_deletion_jobs", "params": [ { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "campaignId", "value": "18", "type": "path", "description": "The ID of the campaign. It is displayed in your Talon.One deployment URL." } ], "body": { "type": "json", "data": "{}" } }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nThis endpoint handles creating a job to delete coupons asynchronously.\n" }, { "info": { "name": "List coupons", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/campaigns/:campaignId/coupons/no_total", "params": [ { "name": "pageSize", "value": "1000", "type": "query", "description": "The number of items in the response." }, { "name": "skip", "value": "100", "type": "query", "description": "The number of items to skip when paging through large result sets." }, { "name": "sort", "value": "name", "type": "query", "description": "The field by which results should be sorted. By default, results are sorted in ascending order. To sort them in descending order, prefix the field name with `-`.\n\n**Note:** You may not be able to use all fields for sorting. This is due to performance limitations.\n" }, { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "campaignId", "value": "18", "type": "path", "description": "The ID of the campaign. It is displayed in your Talon.One deployment URL." }, { "name": "value", "value": "SUMMER10", "type": "query", "description": "Filter results performing case-insensitive matching against the coupon code. Both the code and the query are folded to remove all non-alpha-numeric characters." }, { "name": "createdBefore", "value": "2024-05-29T15:04:05+07:00", "type": "query", "description": "Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally." }, { "name": "createdAfter", "value": "2024-05-29T15:04:05+07:00", "type": "query", "description": "Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally." }, { "name": "valid", "value": "validNow", "type": "query", "description": "Either \"expired\", \"validNow\", or \"validFuture\". The first option matches coupons in which the expiration date is set and in the past. The second matches coupons in which start date is null or in the past and expiration date is null or in the future, the third matches coupons in which start date is set and in the future.\n" }, { "name": "usable", "value": "false", "type": "query", "description": "Either \"true\" or \"false\". If \"true\", only coupons where `usageCounter < usageLimit` will be returned, \"false\" will return only coupons where `usageCounter >= usageLimit`.\n" }, { "name": "redeemed", "value": "false", "type": "query", "description": "- `true`: only coupons where `usageCounter > 0` will be returned.\n- `false`: only coupons where `usageCounter = 0` will be returned.\n- This field cannot be used in conjunction with the `usable` query parameter.\n" }, { "name": "referralId", "value": "47", "type": "query", "description": "Filter the results by matching them with the ID of a referral. This filter shows the coupons created by redeeming a referral code." }, { "name": "recipientIntegrationId", "value": "customer1", "type": "query", "description": "Filter results by match with a profile ID specified in the coupon's RecipientIntegrationId field." }, { "name": "batchId", "value": "nfinccze", "type": "query", "description": "Filter results by batches of coupons" }, { "name": "exactMatch", "value": "false", "type": "query", "description": "Filter results to an exact case-insensitive matching against the coupon code." }, { "name": "expiresBefore", "value": "2024-05-29T15:04:05+07:00", "type": "query", "description": "Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon expiration date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally." }, { "name": "expiresAfter", "value": "2024-05-29T15:04:05+07:00", "type": "query", "description": "Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon expiration date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally." }, { "name": "startsBefore", "value": "2024-05-29T15:04:05+07:00", "type": "query", "description": "Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon start date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally." }, { "name": "startsAfter", "value": "2024-05-29T15:04:05+07:00", "type": "query", "description": "Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon start date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally." }, { "name": "valuesOnly", "value": "false", "type": "query", "description": "Filter results to only return the coupon codes (`value` column) without the associated coupon data." } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nList all the coupons matching the specified criteria.\n" }, { "info": { "name": "Update coupon", "type": "http" }, "http": { "method": "PUT", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/campaigns/:campaignId/coupons/:couponId", "params": [ { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "campaignId", "value": "18", "type": "path", "description": "The ID of the campaign. It is displayed in your Talon.One deployment URL." }, { "name": "couponId", "value": "1194", "type": "path", "description": "The internal ID of the coupon code. You can find this value in the `id` property from the\n[List coupons](https://docs.talon.one/management-api#tag/Coupons/operation/getCouponsWithoutTotalCount) endpoint response.\n" } ], "body": { "type": "json", "data": "{}" } }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nUpdate the specified coupon.\n\n> [!note]\n> With this `PUT` endpoint, if you do not explicitly set a value for the `startDate`, `expiryDate`,\n> and `recipientIntegrationId` properties in your request, it is automatically set to `null`.\n" }, { "info": { "name": "Delete coupon", "type": "http" }, "http": { "method": "DELETE", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/campaigns/:campaignId/coupons/:couponId", "params": [ { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "campaignId", "value": "18", "type": "path", "description": "The ID of the campaign. It is displayed in your Talon.One deployment URL." }, { "name": "couponId", "value": "1194", "type": "path", "description": "The internal ID of the coupon code. You can find this value in the `id` property from the\n[List coupons](https://docs.talon.one/management-api#tag/Coupons/operation/getCouponsWithoutTotalCount) endpoint response.\n" } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nDelete the specified coupon." }, { "info": { "name": "List coupons that match the given attributes in campaign (without total count)", "type": "http" }, "http": { "method": "POST", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/campaigns/:campaignId/coupons_search_advanced/no_total", "params": [ { "name": "pageSize", "value": "1000", "type": "query", "description": "The number of items in the response." }, { "name": "skip", "value": "100", "type": "query", "description": "The number of items to skip when paging through large result sets." }, { "name": "sort", "value": "name", "type": "query", "description": "The field by which results should be sorted. By default, results are sorted in ascending order. To sort them in descending order, prefix the field name with `-`.\n\n**Note:** You may not be able to use all fields for sorting. This is due to performance limitations.\n" }, { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "campaignId", "value": "18", "type": "path", "description": "The ID of the campaign. It is displayed in your Talon.One deployment URL." }, { "name": "value", "value": "SUMMER10", "type": "query", "description": "Filter results performing case-insensitive matching against the coupon code. Both the code and the query are folded to remove all non-alpha-numeric characters." }, { "name": "createdBefore", "value": "2024-05-29T15:04:05+07:00", "type": "query", "description": "Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally." }, { "name": "createdAfter", "value": "2024-05-29T15:04:05+07:00", "type": "query", "description": "Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally." }, { "name": "valid", "value": "validNow", "type": "query", "description": "Either \"expired\", \"validNow\", or \"validFuture\". The first option matches coupons in which the expiration date is set and in the past. The second matches coupons in which start date is null or in the past and expiration date is null or in the future, the third matches coupons in which start date is set and in the future.\n" }, { "name": "usable", "value": "false", "type": "query", "description": "Either \"true\" or \"false\". If \"true\", only coupons where `usageCounter < usageLimit` will be returned, \"false\" will return only coupons where `usageCounter >= usageLimit`.\n" }, { "name": "referralId", "value": "47", "type": "query", "description": "Filter the results by matching them with the ID of a referral. This filter shows the coupons created by redeeming a referral code." }, { "name": "recipientIntegrationId", "value": "customer1", "type": "query", "description": "Filter results by match with a profile ID specified in the coupon's RecipientIntegrationId field." }, { "name": "exactMatch", "value": "false", "type": "query", "description": "Filter results to an exact case-insensitive matching against the coupon code." }, { "name": "batchId", "value": "nfinccze", "type": "query", "description": "Filter results by batches of coupons" } ], "body": { "type": "json", "data": "{}" } }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nList the coupons whose attributes match the query criteria in the given campaign.\n\nThe match is successful if all the attributes of the request are found in a\ncoupon, even if the coupon has more attributes that are not present on the request.\n\n> [!note] The total count is not included in the response.\n" }, { "info": { "name": "List coupons that match the given attributes (without total count)", "type": "http" }, "http": { "method": "POST", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/coupons_search_advanced/no_total", "params": [ { "name": "pageSize", "value": "1000", "type": "query", "description": "The number of items in the response." }, { "name": "skip", "value": "100", "type": "query", "description": "The number of items to skip when paging through large result sets." }, { "name": "sort", "value": "name", "type": "query", "description": "The field by which results should be sorted. By default, results are sorted in ascending order. To sort them in descending order, prefix the field name with `-`.\n\n**Note:** You may not be able to use all fields for sorting. This is due to performance limitations.\n" }, { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "value", "value": "SUMMER10", "type": "query", "description": "Filter results performing case-insensitive matching against the coupon code. Both the code and the query are folded to remove all non-alpha-numeric characters." }, { "name": "createdBefore", "value": "2024-05-29T15:04:05+07:00", "type": "query", "description": "Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally." }, { "name": "createdAfter", "value": "2024-05-29T15:04:05+07:00", "type": "query", "description": "Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally." }, { "name": "valid", "value": "validNow", "type": "query", "description": "Either \"expired\", \"validNow\", or \"validFuture\". The first option matches coupons in which the expiration date is set and in the past. The second matches coupons in which start date is null or in the past and expiration date is null or in the future, the third matches coupons in which start date is set and in the future.\n" }, { "name": "usable", "value": "false", "type": "query", "description": "Either \"true\" or \"false\". If \"true\", only coupons where `usageCounter < usageLimit` will be returned, \"false\" will return only coupons where `usageCounter >= usageLimit`.\n" }, { "name": "referralId", "value": "47", "type": "query", "description": "Filter the results by matching them with the ID of a referral. This filter shows the coupons created by redeeming a referral code." }, { "name": "recipientIntegrationId", "value": "customer1", "type": "query", "description": "Filter results by match with a profile ID specified in the coupon's RecipientIntegrationId field." }, { "name": "batchId", "value": "nfinccze", "type": "query", "description": "Filter results by batches of coupons" }, { "name": "exactMatch", "value": "false", "type": "query", "description": "Filter results to an exact case-insensitive matching against the coupon code." }, { "name": "campaignState", "value": "enabled", "type": "query", "description": "Filter results by the state of the campaign.\n\n- `enabled`: Campaigns that are scheduled, running (activated), or expired.\n- `running`: Campaigns that are running (activated).\n- `disabled`: Campaigns that are disabled.\n- `expired`: Campaigns that are expired.\n- `archived`: Campaigns that are archived.\n" } ], "body": { "type": "json", "data": "{}" } }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nList the coupons whose attributes match the query criteria in all the\ncampaigns of the given Application.\n\nThe match is successful if all the attributes of the request are found in a\ncoupon, even if the coupon has more attributes that are not present on the request.\n\n> [!note] The total count is not included in the response.\n" }, { "info": { "name": "Import coupons", "type": "http" }, "http": { "method": "POST", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/campaigns/:campaignId/import_coupons", "params": [ { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "campaignId", "value": "18", "type": "path", "description": "The ID of the campaign. It is displayed in your Talon.One deployment URL." }, { "name": "skipDuplicates", "value": "false", "type": "query", "description": "An indicator of whether to skip duplicate coupon values instead of causing an error.\nDuplicate values are ignored when `skipDuplicates=true`.\n" } ], "body": { "type": "multipart-form", "data": [ { "name": "upFile", "type": "text", "value": "" } ] } }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nUpload a CSV file containing the coupons that should be created. The file\nshould be sent as multipart data.\n\nThe CSV file contains the following columns:\n\n- `value` (required): The coupon code. Must be at least 3 characters long. We recommend using alphanumeric characters.\n There is no maximum length but limiting the code to 30 charact" }, { "info": { "name": "Export coupons", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/export_coupons", "params": [ { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "campaignId", "value": "49", "type": "query", "description": "Filter results by campaign ID." }, { "name": "sort", "value": "name", "type": "query", "description": "The field by which results should be sorted. By default, results are sorted in ascending order. To sort them in descending order, prefix the field name with `-`.\n\n**Note:** You may not be able to use all fields for sorting. This is due to performance limitations.\n" }, { "name": "value", "value": "SUMMER10", "type": "query", "description": "Filter results performing case-insensitive matching against the coupon code. Both the code and the query are folded to remove all non-alpha-numeric characters." }, { "name": "createdBefore", "value": "2024-05-29T15:04:05+07:00", "type": "query", "description": "Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally." }, { "name": "createdAfter", "value": "2024-05-29T15:04:05+07:00", "type": "query", "description": "Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally." }, { "name": "valid", "value": "validNow", "type": "query", "description": "Either \"expired\", \"validNow\", or \"validFuture\". The first option matches coupons in which the expiration date is set and in the past. The second matches coupons in which start date is null or in the past and expiration date is null or in the future, the third matches coupons in which start date is set and in the future.\n" }, { "name": "usable", "value": "false", "type": "query", "description": "Either \"true\" or \"false\". If \"true\", only coupons where `usageCounter < usageLimit` will be returned, \"false\" will return only coupons where `usageCounter >= usageLimit`.\n" }, { "name": "referralId", "value": "47", "type": "query", "description": "Filter the results by matching them with the ID of a referral. This filter shows the coupons created by redeeming a referral code." }, { "name": "recipientIntegrationId", "value": "customer1", "type": "query", "description": "Filter results by match with a profile id specified in the coupon's RecipientIntegrationId field." }, { "name": "batchId", "value": "nfinccze", "type": "query", "description": "Filter results by batches of coupons" }, { "name": "exactMatch", "value": "false", "type": "query", "description": "Filter results to an exact case-insensitive matching against the coupon code." }, { "name": "dateFormat", "value": "excel", "type": "query", "description": "Determines the format of dates in the export document." }, { "name": "campaignState", "value": "enabled", "type": "query", "description": "Filter results by the state of the campaign.\n\n- `enabled`: Campaigns that are scheduled, running (activated), or expired.\n- `running`: Campaigns that are running (activated).\n- `disabled`: Campaigns that are disabled.\n- `expired`: Campaigns that are expired.\n- `archived`: Campaigns that are archived.\n" }, { "name": "valuesOnly", "value": "false", "type": "query", "description": "Filter results to only return the coupon codes (`value` column) without the associated coupon data." }, { "name": "deletedBefore", "value": "2024-05-29T15:04:05+07:00", "type": "query", "description": "Timestamp that filters the results to only contain coupons deleted before this date. Must be an RFC3339 timestamp string. You can use any time zone setting. Talon.One will convert to UTC internally.\n\n**Note:** Only coupons deleted in the last 7 days will appear in the results." }, { "name": "deletedAfter", "value": "2024-05-29T15:04:05+07:00", "type": "query", "description": "Timestamp that filters the results to only contain coupons deleted after this date. Must be an RFC3339 timestamp string. You can use any time zone setting. Talon.One will convert to UTC internally.\n\n**Note:** Only coupons deleted in the last 7 days will appear in the results." } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nDownload a CSV file containing the coupons that match the given properties.\n\n> [!tip] If the exported CSV file is too large to view, you can\n> [split it into multiple files](https://www.google.com/search?q=split+CSV+into+multiple+files).\n\nThe CSV file can contain the following columns:\n\n- `accountid`: The ID of your deployment.\n- `appli" }, { "info": { "name": "Summarize coupon redemption failures in session", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/coupon_rejections", "params": [ { "name": "sessionIntegrationId", "value": "cc53e4fa-547f-4f5e-8333-76e05c381f67", "type": "query", "description": "The integration ID of the session to summarize." }, { "name": "applicationId", "value": "19", "type": "query", "description": "Filter results by Application ID." }, { "name": "language", "value": "en", "type": "query", "description": "The [ISO-639](https://en.wikipedia.org/wiki/List_of_ISO_639_language_codes) code of the language\nin which the summary will be generated.\n" }, { "name": "couponCode", "value": "SUMMER2025", "type": "query", "description": "The coupon code for which to get the rejection reason." } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nCreate a summary of the reasons for coupon redemption failures in a given customer session.\n" } ] }, { "info": { "name": "Referrals", "type": "folder" }, "items": [ { "info": { "name": "Update referral", "type": "http" }, "http": { "method": "PUT", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/campaigns/:campaignId/referrals/:referralId", "params": [ { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "campaignId", "value": "18", "type": "path", "description": "The ID of the campaign. It is displayed in your Talon.One deployment URL." }, { "name": "referralId", "value": "2154", "type": "path", "description": "The ID of the referral code." } ], "body": { "type": "json", "data": "{}" } }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nUpdate the specified referral." }, { "info": { "name": "Delete referral", "type": "http" }, "http": { "method": "DELETE", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/campaigns/:campaignId/referrals/:referralId", "params": [ { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "campaignId", "value": "18", "type": "path", "description": "The ID of the campaign. It is displayed in your Talon.One deployment URL." }, { "name": "referralId", "value": "2154", "type": "path", "description": "The ID of the referral code." } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nDelete the specified referral." }, { "info": { "name": "List referrals", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/campaigns/:campaignId/referrals/no_total", "params": [ { "name": "pageSize", "value": "1000", "type": "query", "description": "The number of items in the response." }, { "name": "skip", "value": "100", "type": "query", "description": "The number of items to skip when paging through large result sets." }, { "name": "sort", "value": "name", "type": "query", "description": "The field by which results should be sorted. By default, results are sorted in ascending order. To sort them in descending order, prefix the field name with `-`.\n\n**Note:** You may not be able to use all fields for sorting. This is due to performance limitations.\n" }, { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "campaignId", "value": "18", "type": "path", "description": "The ID of the campaign. It is displayed in your Talon.One deployment URL." }, { "name": "code", "value": "JVM8JH8F", "type": "query", "description": "Filter results performing case-insensitive matching against the referral code. Both the code and the query are folded to remove all non-alpha-numeric characters." }, { "name": "createdBefore", "value": "2024-05-29T15:04:05+07:00", "type": "query", "description": "Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the referral creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally." }, { "name": "createdAfter", "value": "2024-05-29T15:04:05+07:00", "type": "query", "description": "Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the referral creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally." }, { "name": "valid", "value": "validNow", "type": "query", "description": "Either \"expired\", \"validNow\", or \"validFuture\". The first option matches referrals in which the expiration date is set and in the past. The second matches referrals in which start date is null or in the past and expiration date is null or in the future, the third matches referrals in which start date is set and in the future.\n" }, { "name": "usable", "value": "false", "type": "query", "description": "Either \"true\" or \"false\". If \"true\", only referrals where `usageCounter < usageLimit` will be returned, \"false\" will return only referrals where `usageCounter >= usageLimit`.\n" }, { "name": "advocate", "value": "customer1", "type": "query", "description": "Filter results by match with a profile ID specified in the referral's AdvocateProfileIntegrationId field." } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nList all referrals of the specified campaign." }, { "info": { "name": "List friends referred by customer profile", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/profile/:integrationId/friends", "params": [ { "name": "pageSize", "value": "1000", "type": "query", "description": "The number of items in the response." }, { "name": "skip", "value": "100", "type": "query", "description": "The number of items to skip when paging through large result sets." }, { "name": "sort", "value": "name", "type": "query", "description": "The field by which results should be sorted. By default, results are sorted in ascending order. To sort them in descending order, prefix the field name with `-`.\n\n**Note:** You may not be able to use all fields for sorting. This is due to performance limitations.\n" }, { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "withTotalResultSize", "value": "false", "type": "query", "description": "When this flag is set, the result includes the total number of results for this query. This might decrease performance on large data sets.\n\n- When `true`: `totalResultSize` contains the total number of results for this query.\n- When `false`: Only `hasMore` is returned, and it is set to `true` when there are more results than shown on the page.\n" }, { "name": "integrationId", "value": "advocate1", "type": "path", "description": "The Integration ID of the Advocate's Profile." } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nList the friends referred by the specified customer profile in this Application.\n" }, { "info": { "name": "Export referrals", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/export_referrals", "params": [ { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "campaignId", "value": "49", "type": "query", "description": "Filter results by campaign ID." }, { "name": "createdBefore", "value": "2024-05-29T15:04:05+07:00", "type": "query", "description": "Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the referral creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally." }, { "name": "createdAfter", "value": "2024-05-29T15:04:05+07:00", "type": "query", "description": "Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the referral creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally." }, { "name": "valid", "value": "validNow", "type": "query", "description": "- `expired`: Matches referrals in which the expiration date is set and in the past.\n- `validNow`: Matches referrals in which start date is null or in the past and expiration date is null or in the future.\n- `validFuture`: Matches referrals in which start date is set and in the future.\n" }, { "name": "usable", "value": "true", "type": "query", "description": "- `true`, only referrals where `usageCounter < usageLimit` will be returned.\n- `false`, only referrals where `usageCounter >= usageLimit` will be returned.\n" }, { "name": "batchId", "value": "nfinccze", "type": "query", "description": "Filter results by batches of referrals" }, { "name": "dateFormat", "value": "excel", "type": "query", "description": "Determines the format of dates in the export document." } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nDownload a CSV file containing the referrals that match the given\nparameters.\n\n> [!tip] If the exported CSV file is too large to view, you can\n> [split it into multiple files](https://www.google.com/search?q=split+CSV+into+multiple+files).\n\nThe CSV file contains the following columns:\n\n- `code`: The referral code.\n- `advocateprofileinte" }, { "info": { "name": "Import referrals", "type": "http" }, "http": { "method": "POST", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/campaigns/:campaignId/import_referrals", "params": [ { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "campaignId", "value": "18", "type": "path", "description": "The ID of the campaign. It is displayed in your Talon.One deployment URL." } ], "body": { "type": "multipart-form", "data": [ { "name": "upFile", "type": "text", "value": "" } ] } }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nUpload a CSV file containing the referrals that should be created.\n\nThe file should be sent as multipart data.\n\nThe CSV file contains the following columns:\n\n- `code` (required): The referral code.\n- `advocateprofileintegrationid` (required): The profile ID of the advocate.\n- `startdate`: The start date in RFC3339 of the code redemption" } ] }, { "info": { "name": "Campaign access groups", "type": "folder" }, "items": [ { "info": { "name": "List campaign access groups", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/campaign_groups", "params": [ { "name": "pageSize", "value": "1000", "type": "query", "description": "The number of items in the response." }, { "name": "skip", "value": "100", "type": "query", "description": "The number of items to skip when paging through large result sets." }, { "name": "sort", "value": "name", "type": "query", "description": "The field by which results should be sorted. By default, results are sorted in ascending order. To sort them in descending order, prefix the field name with `-`.\n\n**Note:** You may not be able to use all fields for sorting. This is due to performance limitations.\n" } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nList the campaign access groups in the current account." }, { "info": { "name": "Get campaign access group", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/campaign_groups/:campaignGroupId", "params": [ { "name": "campaignGroupId", "value": "37", "type": "path", "description": "The ID of the campaign access group." } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nGet a campaign access group specified by its ID." } ] }, { "info": { "name": "Campaign templates", "type": "folder" }, "items": [ { "info": { "name": "List campaign templates", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/campaign_templates", "params": [ { "name": "pageSize", "value": "1000", "type": "query", "description": "The number of items in the response." }, { "name": "skip", "value": "100", "type": "query", "description": "The number of items to skip when paging through large result sets." }, { "name": "sort", "value": "name", "type": "query", "description": "The field by which results should be sorted. By default, results are sorted in ascending order. To sort them in descending order, prefix the field name with `-`.\n\n**Note:** You may not be able to use all fields for sorting. This is due to performance limitations.\n" }, { "name": "state", "value": "draft", "type": "query", "description": "Filter results by the state of the campaign template." }, { "name": "name", "value": "template1", "type": "query", "description": "Filter results performing case-insensitive matching against the name of the campaign template." }, { "name": "tags", "value": "tag1", "type": "query", "description": "Filter results performing case-insensitive matching against the tags of the campaign template. When used in conjunction with the \"name\" query parameter, a logical OR will be performed to search both tags and name for the provided values.\n" }, { "name": "userId", "value": "34", "type": "query", "description": "Filter results by user ID." } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nRetrieve a list of campaign templates." }, { "info": { "name": "Create campaign from campaign template", "type": "http" }, "http": { "method": "POST", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/create_campaign_from_template", "params": [ { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." } ], "body": { "type": "json", "data": "{}" } }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nUse the campaign template referenced in the request body to create\na new campaign in one of the connected Applications.\n\nIf the template was created from a campaign with rules referencing [campaign collections](https://docs.talon.one/docs/product/campaigns/managing-collections),\nthe corresponding collections for the new campaign are cre" } ] }, { "info": { "name": "Experiments", "type": "folder" }, "items": [ { "info": { "name": "List experiments", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/experiments", "params": [ { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "pageSize", "value": "1000", "type": "query", "description": "The number of items in the response." }, { "name": "skip", "value": "100", "type": "query", "description": "The number of items to skip when paging through large result sets." }, { "name": "sort", "value": "name", "type": "query", "description": "The field by which results should be sorted. By default, results are sorted in ascending order. To sort them in descending order, prefix the field name with `-`.\n\n**Note:** You may not be able to use all fields for sorting. This is due to performance limitations.\n" } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nList all experiments of the specified Application that match your filter criteria." }, { "info": { "name": "Get experiment in Application", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/experiments/:experimentId", "params": [ { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "experimentId", "value": "1", "type": "path", "description": "The ID of the experiment." } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nRetrieve the given experiment associated with the Application." } ] }, { "info": { "name": "Loyalty cards", "type": "folder" }, "items": [ { "info": { "name": "Import loyalty cards", "type": "http" }, "http": { "method": "POST", "url": "https://yourbaseurl.talon.one/v1/loyalty_programs/:loyaltyProgramId/import_cards", "params": [ { "name": "loyaltyProgramId", "value": "33", "type": "path", "description": "Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with\nthe [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint.\n" } ], "body": { "type": "multipart-form", "data": [ { "name": "upFile", "type": "text", "value": "" } ] } }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nUpload a CSV file containing the loyalty cards that you want to use in your\ncard-based loyalty program.\n\nSend the file as multipart data.\n\nIt contains the following columns for each card:\n\n- `identifier` (required): The identifier of the loyalty card,\nwhich must match the regular expression `^[A-Za-z0-9._%+@-]+$`.\n- `state` (required): " }, { "info": { "name": "Create loyalty cards", "type": "http" }, "http": { "method": "POST", "url": "https://yourbaseurl.talon.one/v1/loyalty_programs/:loyaltyProgramId/cards/batch", "params": [ { "name": "loyaltyProgramId", "value": "33", "type": "path", "description": "Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with\nthe [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint.\n" } ], "body": { "type": "json", "data": "{}" } }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nCreate a batch of loyalty cards in a specified [card-based loyalty\nprogram](https://docs.talon.one/docs/product/loyalty-programs/overview#loyalty-program-types).\n\nCustomers can use loyalty cards to collect and spend loyalty points.\n\n> [!important] **Note**\n> - The specified card-based loyalty program must have a defined card code\n> fo" }, { "info": { "name": "Export all card transaction logs", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/loyalty_programs/:loyaltyProgramId/export_card_balances", "params": [ { "name": "loyaltyProgramId", "value": "33", "type": "path", "description": "Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with\nthe [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint.\n" }, { "name": "endDate", "value": "2024-05-29T15:04:05+07:00", "type": "query", "description": "Used to return expired, active, and pending loyalty balances before this\ntimestamp. You can enter any past, present, or future timestamp value.\n\n> [!note] **Note**\n> - This must be an RFC3339 timestamp string.\n> - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting\n> considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered.\n" }, { "name": "balances", "value": "currentBalance,pendingBalance", "type": "query", "description": "Filters which balance fields are included in the CSV export. By default,\nall balance fields are included. When this parameter is provided, only the\nlisted fields contain values and the rest are returned empty.\n\nAccepted values:\n- `currentBalance`\n- `pendingBalance`\n- `expiredBalance`\n- `spentBalance`\n- `negativeBalance`\n\nMultiple values must be provided as a comma-separated list.\n\n**Note:**\n- The `negativeBalance` value is not supported for card balance exports.\n- Providing an unsupported or invalid value returns a `400 Bad Request` error.\n" } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nDownload a CSV file containing the balances of all cards in the loyalty\nprogram.\n\n> [!tip] If the exported CSV file is too large to view, you can\n> [split it into multiple files](https://www.google.com/search?q=split+CSV+into+multiple+files).\n\nThe CSV file contains the following columns:\n- `loyaltyProgramID`: The ID of the loyalty progr" }, { "info": { "name": "List loyalty cards", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/loyalty_programs/:loyaltyProgramId/cards", "params": [ { "name": "pageSize", "value": "1000", "type": "query", "description": "The number of items in the response." }, { "name": "skip", "value": "100", "type": "query", "description": "The number of items to skip when paging through large result sets." }, { "name": "sort", "value": "name", "type": "query", "description": "The field by which results should be sorted. By default, results are sorted in ascending order. To sort them in descending order, prefix the field name with `-`.\n\n**Note:** You may not be able to use all fields for sorting. This is due to performance limitations.\n" }, { "name": "loyaltyProgramId", "value": "33", "type": "path", "description": "Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with\nthe [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint.\n" }, { "name": "identifier", "value": "summer-loyalty-card-054", "type": "query", "description": "The card code by which to filter loyalty cards in the response.\n\n**Important**: The loyalty card ID requires [URL\nencoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it\ncontains special characters. For example, you must encode `NewCard2026%`\nas `NewCard2026%25`.\n" }, { "name": "profileId", "value": "44", "type": "query", "description": "Filter results by customer profile ID." }, { "name": "batchId", "value": "UY83CTT4", "type": "query", "description": "Filter results by loyalty card batch ID." } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nFor the given card-based loyalty program, list the loyalty cards that match your filter criteria.\n" }, { "info": { "name": "Export loyalty cards", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/loyalty_programs/:loyaltyProgramId/cards/export", "params": [ { "name": "loyaltyProgramId", "value": "33", "type": "path", "description": "Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with\nthe [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint.\n" }, { "name": "batchId", "value": "UY83CTT4", "type": "query", "description": "Filter results by loyalty card batch ID." }, { "name": "createdBefore", "value": "2024-05-29T15:04:05+07:00", "type": "query", "description": "Only return loyalty cards created before this timestamp.\n\n**Note:** This must be an RFC3339 timestamp string.\n" }, { "name": "createdAfter", "value": "2024-04-15T15:04:05+07:00", "type": "query", "description": "Only return loyalty cards created after this timestamp.\n\n**Note:** This must be an RFC3339 timestamp string.\n" }, { "name": "dateFormat", "value": "excel", "type": "query", "description": "Determines the format of dates in the export document." } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nDownload a CSV file containing the loyalty cards from a specified loyalty\nprogram.\n\n> [!tip] If the exported CSV file is too large to view, you can\n> [split it into multiple files](https://www.google.com/search?q=split+CSV+into+multiple+files).\n\nThe CSV file contains the following columns:\n\n- `identifier`: The unique identifier of the l" }, { "info": { "name": "Get loyalty card", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/loyalty_programs/:loyaltyProgramId/cards/:loyaltyCardId", "params": [ { "name": "loyaltyProgramId", "value": "33", "type": "path", "description": "Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with\nthe [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint.\n" }, { "name": "loyaltyCardId", "value": "summer-loyalty-card-0543", "type": "path", "description": "Identifier of the loyalty card. You can get the identifier with\nthe [List loyalty\ncards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards)\nendpoint.\n\n**Important**: The loyalty card ID requires [URL\nencoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it\ncontains special characters. For example, you must encode `NewCard2026%`\nas `NewCard2026%25`.\n" } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nGet the given loyalty card." }, { "info": { "name": "Update loyalty card", "type": "http" }, "http": { "method": "PUT", "url": "https://yourbaseurl.talon.one/v1/loyalty_programs/:loyaltyProgramId/cards/:loyaltyCardId", "params": [ { "name": "loyaltyProgramId", "value": "33", "type": "path", "description": "Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with\nthe [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint.\n" }, { "name": "loyaltyCardId", "value": "summer-loyalty-card-0543", "type": "path", "description": "Identifier of the loyalty card. You can get the identifier with\nthe [List loyalty\ncards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards)\nendpoint.\n\n**Important**: The loyalty card ID requires [URL\nencoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it\ncontains special characters. For example, you must encode `NewCard2026%`\nas `NewCard2026%25`.\n" } ], "body": { "type": "json", "data": "{}" } }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nUpdate the details of a specific loyalty card. You can set the card's status to `active` or `inactive` through this endpoint. At least one of `status` or `attributes` must be provided." }, { "info": { "name": "Delete loyalty card", "type": "http" }, "http": { "method": "DELETE", "url": "https://yourbaseurl.talon.one/v1/loyalty_programs/:loyaltyProgramId/cards/:loyaltyCardId", "params": [ { "name": "loyaltyProgramId", "value": "33", "type": "path", "description": "Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with\nthe [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint.\n" }, { "name": "loyaltyCardId", "value": "summer-loyalty-card-0543", "type": "path", "description": "Identifier of the loyalty card. You can get the identifier with\nthe [List loyalty\ncards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards)\nendpoint.\n\n**Important**: The loyalty card ID requires [URL\nencoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it\ncontains special characters. For example, you must encode `NewCard2026%`\nas `NewCard2026%25`.\n" } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nDelete the given loyalty card." }, { "info": { "name": "Add points to card", "type": "http" }, "http": { "method": "PUT", "url": "https://yourbaseurl.talon.one/v1/loyalty_programs/:loyaltyProgramId/cards/:loyaltyCardId/add_points", "params": [ { "name": "loyaltyProgramId", "value": "33", "type": "path", "description": "Identifier of the card-based loyalty program containing the loyalty\ncard. You can get the ID with the [List loyalty\nprograms](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms)\nendpoint.\n\n**Important**: The loyalty card ID requires [URL\nencoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it\ncontains special characters. For example, you must encode `NewCard2026%`\nas `NewCard2026%25`.\n" }, { "name": "loyaltyCardId", "value": "summer-loyalty-card-0543", "type": "path", "description": "Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint.\n" } ], "body": { "type": "json", "data": "{}" } }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nAdd points to the given loyalty card in the specified card-based loyalty program.\n" }, { "info": { "name": "Deduct points from card", "type": "http" }, "http": { "method": "PUT", "url": "https://yourbaseurl.talon.one/v1/loyalty_programs/:loyaltyProgramId/cards/:loyaltyCardId/deduct_points", "params": [ { "name": "loyaltyProgramId", "value": "33", "type": "path", "description": "Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with\nthe [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint.\n" }, { "name": "loyaltyCardId", "value": "summer-loyalty-card-0543", "type": "path", "description": "Identifier of the loyalty card. You can get the identifier with\nthe [List loyalty\ncards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards)\nendpoint.\n\n**Important**: The loyalty card ID requires [URL\nencoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it\ncontains special characters. For example, you must encode `NewCard2026%`\nas `NewCard2026%25`.\n" } ], "body": { "type": "json", "data": "{}" } }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nDeduct points from the given loyalty card in the specified card-based loyalty program.\n" }, { "info": { "name": "Export card's ledger log", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/loyalty_programs/:loyaltyProgramId/cards/:loyaltyCardId/export_log", "params": [ { "name": "loyaltyProgramId", "value": "33", "type": "path", "description": "Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with\nthe [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint.\n" }, { "name": "loyaltyCardId", "value": "summer-loyalty-card-0543", "type": "path", "description": "Identifier of the loyalty card. You can get the identifier with\nthe [List loyalty\ncards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards)\nendpoint.\n\n**Important**: The loyalty card ID requires [URL\nencoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it\ncontains special characters. For example, you must encode `NewCard2026%`\nas `NewCard2026%25`.\n" }, { "name": "rangeStart", "value": "2024-05-29T15:04:05+07:00", "type": "query", "description": "Only return results from after this timestamp.\n\n> [!note] **Note**\n> - This must be an RFC3339 timestamp string.\n> - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting\n> considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered.\n" }, { "name": "rangeEnd", "value": "2024-05-29T15:04:05+07:00", "type": "query", "description": "Only return results from before this timestamp.\n\n> [!note] **Note**\n> - This must be an RFC3339 timestamp string.\n> - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting\n> considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered.\n" }, { "name": "dateFormat", "value": "excel", "type": "query", "description": "Determines the format of dates in the export document." } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nDownload a CSV file containing a loyalty card ledger log of the loyalty\nprogram.\n\n> [!tip] If the exported CSV file is too large to view, you can\n> [split it into multiple files](https://www.google.com/search?q=split+CSV+into+multiple+files).\n" }, { "info": { "name": "List card's transactions (Management API)", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/loyalty_programs/:loyaltyProgramId/cards/:loyaltyCardId/logs", "params": [ { "name": "loyaltyProgramId", "value": "33", "type": "path", "description": "Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with\nthe [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint.\n" }, { "name": "loyaltyCardId", "value": "summer-loyalty-card-0543", "type": "path", "description": "Identifier of the loyalty card. You can get the identifier with\nthe [List loyalty\ncards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards)\nendpoint.\n\n**Important**: The loyalty card ID requires [URL\nencoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it\ncontains special characters. For example, you must encode `NewCard2026%`\nas `NewCard2026%25`.\n" }, { "name": "startDate", "value": "2024-05-29T15:04:05+07:00", "type": "query", "description": "Date and time from which results are returned. Results are filtered by\ntransaction creation date.\n\n> [!note] **Note**\n> - This must be an RFC3339 timestamp string.\n> - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting\n> considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered.\n" }, { "name": "endDate", "value": "2024-05-29T15:04:05+07:00", "type": "query", "description": "Date and time by which results are returned. Results are filtered by\ntransaction creation date.\n\n> [!note] **Note**\n> - This must be an RFC3339 timestamp string.\n> - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting\n> considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered.\n" }, { "name": "pageSize", "value": "1000", "type": "query", "description": "The number of items in the response." }, { "name": "skip", "value": "100", "type": "query", "description": "The number of items to skip when paging through large result sets." }, { "name": "subledgerId", "value": "subledger1", "type": "query", "description": "The ID of the subledger by which we filter the data." }, { "name": "customerSessionIDs", "value": "session_integration_id_1,session_integration_id_1", "type": "query", "description": "Filter the results by a list of customer session IDs.\n\nTo include multiple IDs, repeat the parameter for each one, for example,\n`?customerSessionIDs=id1&customerSessionIDs=id2`.\n\nThe response contains only data associated with the specified sessions.\n" }, { "name": "transactionUUIDs", "value": "dc608634-0100-40d9-b371-e964476bbe0f,9e829590-05cf-407b-b4c0-5f28468a81e1", "type": "query", "description": "Filter the results by a list of transaction UUIDs.\n\nTo include multiple IDs, repeat the parameter for each one, for example,\n`?transactionUUIDs=uuid1&transactionUUIDs=uuid2`.\n\nThe response contains only data associated with the specified transactions.\n" } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nRetrieve the transaction logs for the given [loyalty card](https://docs.talon.one/docs/product/loyalty-programs/card-based/card-based-overview)\nwithin the specified [card-based loyalty program](https://docs.talon.one/docs/product/loyalty-programs/overview#loyalty-program-types)\nwith filtering options applied.\n\n> [!note] For most use cas" }, { "info": { "name": "Transfer card data", "type": "http" }, "http": { "method": "PUT", "url": "https://yourbaseurl.talon.one/v1/loyalty_programs/:loyaltyProgramId/cards/:loyaltyCardId/transfer", "params": [ { "name": "loyaltyProgramId", "value": "33", "type": "path", "description": "Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with\nthe [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint.\n" }, { "name": "loyaltyCardId", "value": "summer-loyalty-card-0543", "type": "path", "description": "Identifier of the loyalty card. You can get the identifier with\nthe [List loyalty\ncards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards)\nendpoint.\n\n**Important**: The loyalty card ID requires [URL\nencoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it\ncontains special characters. For example, you must encode `NewCard2026%`\nas `NewCard2026%25`.\n" } ], "body": { "type": "json", "data": "{}" } }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nTransfer loyalty card data, such as linked customers, loyalty balances and\ntransactions, from a given loyalty card to a new, automatically created\nloyalty card.\n\n> [!important] **Note**\n> - The original card is automatically blocked once the new card is created,\n and it cannot be activated again.\n> - The default status of the new car" } ] }, { "info": { "name": "Giveaways", "type": "folder" }, "items": [ { "info": { "name": "Import giveaway codes into a giveaway pool", "type": "http" }, "http": { "method": "POST", "url": "https://yourbaseurl.talon.one/v1/giveaways/pools/:poolId/import", "params": [ { "name": "poolId", "value": "8", "type": "path", "description": "The ID of the pool. You can find it in the Campaign Manager, in the **Giveaways** section." } ], "body": { "type": "multipart-form", "data": [ { "name": "upFile", "type": "text", "value": "" } ] } }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nUpload a CSV file containing the giveaway codes that should be created. Send\nthe file as multipart data.\n\nThe CSV file contains the following columns:\n\n- `code` (required): The code of your giveaway, for instance, a gift card redemption code.\n- `startdate`: The start date in RFC3339 of the code redemption period.\n- `enddate`: The last " }, { "info": { "name": "Export giveaway codes of a giveaway pool", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/giveaways/pools/:poolId/export", "params": [ { "name": "poolId", "value": "8", "type": "path", "description": "The ID of the pool. You can find it in the Campaign Manager, in the **Giveaways** section." }, { "name": "createdBefore", "value": "2024-05-29T15:04:05+07:00", "type": "query", "description": "Timestamp that filters the results to only contain giveaways created before this date. Must be an RFC3339 timestamp string." }, { "name": "createdAfter", "value": "2024-05-29T15:04:05+07:00", "type": "query", "description": "Timestamp that filters the results to only contain giveaways created after this date. Must be an RFC3339 timestamp string." } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nDownload a CSV file containing the giveaway codes of a specific giveaway\npool.\n\n> [!tip] If the exported CSV file is too large to view, you can\n> [split it into multiple files](https://www.google.com/search?q=split+CSV+into+multiple+files).\n\nThe CSV file contains the following columns:\n\n- `id`: The internal ID of the giveaway.\n- `poolid" } ] }, { "info": { "name": "Collections", "type": "folder" }, "items": [ { "info": { "name": "List collections in account", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/collections", "params": [ { "name": "pageSize", "value": "1000", "type": "query", "description": "The number of items in the response." }, { "name": "skip", "value": "100", "type": "query", "description": "The number of items to skip when paging through large result sets." }, { "name": "sort", "value": "name", "type": "query", "description": "The field by which results should be sorted. By default, results are sorted in ascending order. To sort them in descending order, prefix the field name with `-`.\n\n**Note:** You may not be able to use all fields for sorting. This is due to performance limitations.\n" }, { "name": "withTotalResultSize", "value": "false", "type": "query", "description": "When this flag is set, the result includes the total number of results for this query. This might decrease performance on large data sets.\n\n- When `true`: `totalResultSize` contains the total number of results for this query.\n- When `false`: Only `hasMore` is returned, and it is set to `true` when there are more results than shown on the page.\n" }, { "name": "name", "value": "collection1", "type": "query", "description": "Filter by collection name." } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nList account-level collections in the account." }, { "info": { "name": "Create account-level collection", "type": "http" }, "http": { "method": "POST", "url": "https://yourbaseurl.talon.one/v1/collections", "body": { "type": "json", "data": "{}" } }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nCreate an account-level collection." }, { "info": { "name": "Get account-level collection", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/collections/:collectionId", "params": [ { "name": "collectionId", "value": "22", "type": "path", "description": "The ID of the collection. You can get it with the [List collections in account](#tag/Collections/operation/listAccountCollections) endpoint." } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nRetrieve a given account-level collection." }, { "info": { "name": "Update account-level collection", "type": "http" }, "http": { "method": "PUT", "url": "https://yourbaseurl.talon.one/v1/collections/:collectionId", "params": [ { "name": "collectionId", "value": "22", "type": "path", "description": "The ID of the collection. You can get it with the [List collections in account](#tag/Collections/operation/listAccountCollections) endpoint." } ], "body": { "type": "json", "data": "{}" } }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nEdit the description of a given account-level collection and enable or disable the collection in the specified Applications." }, { "info": { "name": "Delete account-level collection", "type": "http" }, "http": { "method": "DELETE", "url": "https://yourbaseurl.talon.one/v1/collections/:collectionId", "params": [ { "name": "collectionId", "value": "22", "type": "path", "description": "The ID of the collection. You can get it with the [List collections in account](#tag/Collections/operation/listAccountCollections) endpoint." } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nDelete a given account-level collection." }, { "info": { "name": "Get collection items", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/collections/:collectionId/items", "params": [ { "name": "pageSize", "value": "1000", "type": "query", "description": "The number of items in the response." }, { "name": "skip", "value": "100", "type": "query", "description": "The number of items to skip when paging through large result sets." }, { "name": "collectionId", "value": "22", "type": "path", "description": "The ID of the collection. You can get it with the [List collections in account](#tag/Collections/operation/listAccountCollections) endpoint." } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nRetrieve items from a given collection.\n\nYou can retrieve items from both account-level collections and campaign-level collections using this endpoint.\n" }, { "info": { "name": "List collections in Application", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/collections", "params": [ { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "pageSize", "value": "1000", "type": "query", "description": "The number of items in the response." }, { "name": "skip", "value": "100", "type": "query", "description": "The number of items to skip when paging through large result sets." }, { "name": "sort", "value": "name", "type": "query", "description": "The field by which results should be sorted. By default, results are sorted in ascending order. To sort them in descending order, prefix the field name with `-`.\n\n**Note:** You may not be able to use all fields for sorting. This is due to performance limitations.\n" }, { "name": "withTotalResultSize", "value": "false", "type": "query", "description": "When this flag is set, the result includes the total number of results for this query. This might decrease performance on large data sets.\n\n- When `true`: `totalResultSize` contains the total number of results for this query.\n- When `false`: Only `hasMore` is returned, and it is set to `true` when there are more results than shown on the page.\n" }, { "name": "name", "value": "collection1", "type": "query", "description": "Filter by collection name." } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nList campaign-level collections from all campaigns in a given Application." }, { "info": { "name": "List collections in campaign", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/campaigns/:campaignId/collections", "params": [ { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "campaignId", "value": "18", "type": "path", "description": "The ID of the campaign. It is displayed in your Talon.One deployment URL." }, { "name": "pageSize", "value": "1000", "type": "query", "description": "The number of items in the response." }, { "name": "skip", "value": "100", "type": "query", "description": "The number of items to skip when paging through large result sets." }, { "name": "sort", "value": "name", "type": "query", "description": "The field by which results should be sorted. By default, results are sorted in ascending order. To sort them in descending order, prefix the field name with `-`.\n\n**Note:** You may not be able to use all fields for sorting. This is due to performance limitations.\n" }, { "name": "withTotalResultSize", "value": "false", "type": "query", "description": "When this flag is set, the result includes the total number of results for this query. This might decrease performance on large data sets.\n\n- When `true`: `totalResultSize` contains the total number of results for this query.\n- When `false`: Only `hasMore` is returned, and it is set to `true` when there are more results than shown on the page.\n" }, { "name": "name", "value": "collection1", "type": "query", "description": "Filter by collection name." } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nList collections in a given campaign." }, { "info": { "name": "Create campaign-level collection", "type": "http" }, "http": { "method": "POST", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/campaigns/:campaignId/collections", "params": [ { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "campaignId", "value": "18", "type": "path", "description": "The ID of the campaign. It is displayed in your Talon.One deployment URL." } ], "body": { "type": "json", "data": "{}" } }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nCreate a campaign-level collection in a given campaign." }, { "info": { "name": "Get campaign-level collection", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/campaigns/:campaignId/collections/:collectionId", "params": [ { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "campaignId", "value": "18", "type": "path", "description": "The ID of the campaign. It is displayed in your Talon.One deployment URL." }, { "name": "collectionId", "value": "44", "type": "path", "description": "The ID of the collection. You can get it with the [List collections in Application](#tag/Collections/operation/listCollectionsInApplication) endpoint." } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nRetrieve a given campaign-level collection." }, { "info": { "name": "Update campaign-level collection's description", "type": "http" }, "http": { "method": "PUT", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/campaigns/:campaignId/collections/:collectionId", "params": [ { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "campaignId", "value": "18", "type": "path", "description": "The ID of the campaign. It is displayed in your Talon.One deployment URL." }, { "name": "collectionId", "value": "44", "type": "path", "description": "The ID of the collection. You can get it with the [List collections in Application](#tag/Collections/operation/listCollectionsInApplication) endpoint." } ], "body": { "type": "json", "data": "{}" } }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nEdit the description of a given campaign-level collection." }, { "info": { "name": "Delete campaign-level collection", "type": "http" }, "http": { "method": "DELETE", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/campaigns/:campaignId/collections/:collectionId", "params": [ { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "campaignId", "value": "18", "type": "path", "description": "The ID of the campaign. It is displayed in your Talon.One deployment URL." }, { "name": "collectionId", "value": "44", "type": "path", "description": "The ID of the collection. You can get it with the [List collections in Application](#tag/Collections/operation/listCollectionsInApplication) endpoint." } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nDelete a given campaign-level collection." }, { "info": { "name": "Import data into existing account-level collection", "type": "http" }, "http": { "method": "POST", "url": "https://yourbaseurl.talon.one/v1/collections/:collectionId/import", "params": [ { "name": "collectionId", "value": "22", "type": "path", "description": "The ID of the collection. You can get it with the [List collections in account](#tag/Collections/operation/listAccountCollections) endpoint." } ], "body": { "type": "multipart-form", "data": [ { "name": "upFile", "type": "text", "value": "" } ] } }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nUpload a CSV file containing the collection of string values that should be\nattached as payload for collection.\n\nThe file should be sent as multipart data.\n\nThe import **replaces** the initial content of the collection.\n\nThe CSV file **must** only contain the following column:\n\n- `item`: the values in your collection.\n\nA collection is l" }, { "info": { "name": "Import data into existing campaign-level collection", "type": "http" }, "http": { "method": "POST", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/campaigns/:campaignId/collections/:collectionId/import", "params": [ { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "campaignId", "value": "18", "type": "path", "description": "The ID of the campaign. It is displayed in your Talon.One deployment URL." }, { "name": "collectionId", "value": "44", "type": "path", "description": "The ID of the collection. You can get it with the [List collections in Application](#tag/Collections/operation/listCollectionsInApplication) endpoint." } ], "body": { "type": "multipart-form", "data": [ { "name": "upFile", "type": "text", "value": "" } ] } }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nUpload a CSV file containing the collection of string values that should be\nattached as payload for collection.\n\nThe file should be sent as multipart data.\n\nThe import **replaces** the initial content of the collection.\n\nThe CSV file **must** only contain the following column:\n\n- `item`: the values in your collection.\n\nA collection is l" }, { "info": { "name": "Export account-level collection's items", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/collections/:collectionId/export", "params": [ { "name": "collectionId", "value": "22", "type": "path", "description": "The ID of the collection. You can get it with the [List collections in account](#tag/Collections/operation/listAccountCollections) endpoint." } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nDownload a CSV file containing items from a given account-level collection.\n\n> [!tip] If the exported CSV file is too large to view, you can\n> [split it into multiple files](https://www.google.com/search?q=split+CSV+into+multiple+files).\n" }, { "info": { "name": "Export campaign-level collection's items", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/campaigns/:campaignId/collections/:collectionId/export", "params": [ { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "campaignId", "value": "18", "type": "path", "description": "The ID of the campaign. It is displayed in your Talon.One deployment URL." }, { "name": "collectionId", "value": "44", "type": "path", "description": "The ID of the collection. You can get it with the [List collections in Application](#tag/Collections/operation/listCollectionsInApplication) endpoint." } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nDownload a CSV file containing items from a given campaign-level collection.\n\n> [!tip] If the exported CSV file is too large to view, you can\n> [split it into multiple files](https://www.google.com/search?q=split+CSV+into+multiple+files).\n" } ] }, { "info": { "name": "Logs", "type": "folder" }, "items": [ { "info": { "name": "Get access logs for Application", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/access_logs/no_total", "params": [ { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "path", "value": "pattern1", "type": "query", "description": "Only return results where the request path matches the given regular expression." }, { "name": "method", "value": "get", "type": "query", "description": "Only return results where the request method matches the given regular expression." }, { "name": "status", "value": "success", "type": "query", "description": "Filter results by HTTP status codes." }, { "name": "rangeStart", "value": "2024-05-29T15:04:05+07:00", "type": "query", "description": "Only return results from after this timestamp.\n\n> [!note] **Note**\n> - This must be an RFC3339 timestamp string.\n> - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting\n> considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered.\n" }, { "name": "rangeEnd", "value": "2024-05-29T15:04:05+07:00", "type": "query", "description": "Only return results from before this timestamp.\n\n> [!note] **Note**\n> - This must be an RFC3339 timestamp string.\n> - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting\n> considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered.\n" }, { "name": "pageSize", "value": "1000", "type": "query", "description": "The number of items in the response." }, { "name": "skip", "value": "100", "type": "query", "description": "The number of items to skip when paging through large result sets." }, { "name": "sort", "value": "name", "type": "query", "description": "The field by which results should be sorted. By default, results are sorted in ascending order. To sort them in descending order, prefix the field name with `-`.\n\n**Note:** You may not be able to use all fields for sorting. This is due to performance limitations.\n" } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nRetrieve the list of API calls sent to the specified Application.\n" }, { "info": { "name": "List message log entries", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/message_logs", "params": [ { "name": "messageID", "value": "message1", "type": "query", "description": "Filter results by message ID." }, { "name": "changeType", "value": "CampaignEvaluationTreeChanged", "type": "query", "description": "Filter results by change type." }, { "name": "notificationIDs", "value": "23,46", "type": "query", "description": "Filter results by notification ID (include up to 30 values, separated by a comma)." }, { "name": "createdBefore", "value": "2024-05-29T15:04:05Z", "type": "query", "description": "Filter results where request and response times to return entries before parameter value, expected to be an RFC3339 timestamp string. Use UTC time." }, { "name": "createdAfter", "value": "2024-05-29T15:04:05Z", "type": "query", "description": "Filter results where request and response times to return entries after parameter value, expected to be an RFC3339 timestamp string. Use UTC time." }, { "name": "cursor", "value": "U3dhZ2dlciByb2Nrcw==", "type": "query", "description": "A specific unique value in the database. If this value is not given, the server fetches results starting with the first record.\n" }, { "name": "period", "value": "15m", "type": "query", "description": "Filter results by time period. Choose between the available relative time frames.\n" }, { "name": "isSuccessful", "value": "false", "type": "query", "description": "Indicates whether to return log entries with either successful or unsuccessful HTTP response codes. When set to`true`, only log entries with `2xx` response codes are returned. When set to `false`, only log entries with `4xx` and `5xx` response codes are returned.\n" }, { "name": "entityType", "value": "application", "type": "query", "description": "The entity type the log is related to.\n" }, { "name": "applicationId", "value": "19", "type": "query", "description": "Filter results by Application ID." }, { "name": "campaignId", "value": "49", "type": "query", "description": "Filter results by campaign ID." }, { "name": "loyaltyProgramId", "value": "40", "type": "query", "description": "Identifier of the loyalty program." }, { "name": "responseCode", "value": "200", "type": "query", "description": "Filter results by response status code." }, { "name": "webhookIDs", "value": "23,46", "type": "query", "description": "Filter results by webhook ID (include up to 30 values, separated by a comma)." } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nRetrieve all message log entries." }, { "info": { "name": "Get audit logs for an account", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/changes", "params": [ { "name": "pageSize", "value": "1000", "type": "query", "description": "The number of items in the response." }, { "name": "skip", "value": "100", "type": "query", "description": "The number of items to skip when paging through large result sets." }, { "name": "sort", "value": "name", "type": "query", "description": "The field by which results should be sorted. By default, results are sorted in ascending order. To sort them in descending order, prefix the field name with `-`.\n\n**Note:** You may not be able to use all fields for sorting. This is due to performance limitations.\n" }, { "name": "applicationId", "value": "19", "type": "query", "description": "Filter results by Application ID." }, { "name": "entityPath", "value": "example/url/path", "type": "query", "description": "Filter results on a case insensitive matching of the url path of the entity" }, { "name": "userId", "value": "34", "type": "query", "description": "Filter results by user ID." }, { "name": "createdBefore", "value": "2024-05-29T15:04:05+07:00", "type": "query", "description": "Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the change creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally." }, { "name": "createdAfter", "value": "2024-05-29T15:04:05+07:00", "type": "query", "description": "Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the change creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally." }, { "name": "withTotalResultSize", "value": "false", "type": "query", "description": "When this flag is set, the result includes the total number of results for this query. This might decrease performance on large data sets.\n\n- When `true`: `totalResultSize` contains the total number of results for this query.\n- When `false`: Only `hasMore` is returned, and it is set to `true` when there are more results than shown on the page.\n" }, { "name": "managementKeyId", "value": "16", "type": "query", "description": "Filter results that match the given management key ID." }, { "name": "includeOld", "value": "false", "type": "query", "description": "When this flag is set to false, the state without the change will not be returned. The default value is true." } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nRetrieve the audit logs displayed in **Accounts > Audit logs**.\n" }, { "info": { "name": "Get exports", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/exports", "params": [ { "name": "pageSize", "value": "1000", "type": "query", "description": "The number of items in the response." }, { "name": "skip", "value": "100", "type": "query", "description": "The number of items to skip when paging through large result sets." }, { "name": "applicationId", "value": "19", "type": "query", "description": "Filter results by Application ID." }, { "name": "campaignId", "value": "8", "type": "query", "description": "Filter by the campaign ID on which the limit counters are used." }, { "name": "entity", "value": "Coupon", "type": "query", "description": "The name of the entity type that was exported." } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nList all past exports\n" } ] }, { "info": { "name": "Customer data", "type": "folder" }, "items": [ { "info": { "name": "List application's customers", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/customers", "params": [ { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "integrationId", "value": "customer1", "type": "query", "description": "Filter results performing an exact matching against the profile integration identifier." }, { "name": "pageSize", "value": "1000", "type": "query", "description": "The number of items in the response." }, { "name": "skip", "value": "100", "type": "query", "description": "The number of items to skip when paging through large result sets." }, { "name": "withTotalResultSize", "value": "false", "type": "query", "description": "When this flag is set, the result includes the total number of results for this query. This might decrease performance on large data sets.\n\n- When `true`: `totalResultSize` contains the total number of results for this query.\n- When `false`: Only `hasMore` is returned, and it is set to `true` when there are more results than shown on the page.\n" } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nList all the customers of the specified application." }, { "info": { "name": "List application customers matching the given attributes", "type": "http" }, "http": { "method": "POST", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/customer_search", "params": [ { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "pageSize", "value": "1000", "type": "query", "description": "The number of items in the response." }, { "name": "skip", "value": "100", "type": "query", "description": "The number of items to skip when paging through large result sets." }, { "name": "withTotalResultSize", "value": "false", "type": "query", "description": "When this flag is set, the result includes the total number of results for this query. This might decrease performance on large data sets.\n\n- When `true`: `totalResultSize` contains the total number of results for this query.\n- When `false`: Only `hasMore` is returned, and it is set to `true` when there are more results than shown on the page.\n" } ], "body": { "type": "json", "data": "{}" } }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nGet a list of the application customers matching the provided criteria.\n\nThe match is successful if all the attributes of the request are found in a profile, even if the profile has more attributes that are not present on the request.\n" }, { "info": { "name": "List customer profiles matching the given attributes", "type": "http" }, "http": { "method": "POST", "url": "https://yourbaseurl.talon.one/v1/customer_search/no_total", "params": [ { "name": "pageSize", "value": "1000", "type": "query", "description": "The number of items in the response." }, { "name": "skip", "value": "100", "type": "query", "description": "The number of items to skip when paging through large result sets." }, { "name": "sandbox", "value": "false", "type": "query", "description": "Indicates whether you are pointing to a sandbox or live customer." } ], "body": { "type": "json", "data": "{}" } }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nGet a list of the customer profiles matching the provided criteria.\n\nThe match is successful if all the attributes of the request are found in a profile, even if the profile has more attributes that are not present on the request.\n" }, { "info": { "name": "Get customer profile", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/customers/:customerId", "params": [ { "name": "customerId", "value": "3778", "type": "path", "description": "The value of the `id` property of a customer profile. Get it with the\n[List Application's customers](https://docs.talon.one/management-api#tag/Customer-data/operation/getApplicationCustomers) endpoint.\n" } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nReturn the details of the specified customer profile.\n\n> [!note]\n> You can retrieve the same information via the Integration API, which can save you extra API requests. Consider these options:\n> - Request the customer profile to be part of the response content using\n> [Update Customer Session](https://docs.talon.one/integration-api#ta" }, { "info": { "name": "List customer profiles", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/customers/no_total", "params": [ { "name": "pageSize", "value": "1000", "type": "query", "description": "The number of items in the response." }, { "name": "skip", "value": "100", "type": "query", "description": "The number of items to skip when paging through large result sets." }, { "name": "sandbox", "value": "false", "type": "query", "description": "Indicates whether you are pointing to a sandbox or live customer." } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nList all customer profiles." }, { "info": { "name": "Get application's customer", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/customers/:customerId", "params": [ { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "customerId", "value": "3778", "type": "path", "description": "The value of the `id` property of a customer profile. Get it with the\n[List Application's customers](https://docs.talon.one/management-api#tag/Customer-data/operation/getApplicationCustomers) endpoint.\n" } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nRetrieve the customers of the specified application.\n" }, { "info": { "name": "Get Activity Reports for Application Customers", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/customer_activity_reports/no_total", "params": [ { "name": "pageSize", "value": "1000", "type": "query", "description": "The number of items in the response." }, { "name": "skip", "value": "100", "type": "query", "description": "The number of items to skip when paging through large result sets." }, { "name": "sort", "value": "name", "type": "query", "description": "The field by which results should be sorted. By default, results are sorted in ascending order. To sort them in descending order, prefix the field name with `-`.\n\n**Note:** You may not be able to use all fields for sorting. This is due to performance limitations.\n" }, { "name": "rangeStart", "value": "2024-05-29T15:04:05+07:00", "type": "query", "description": "Only return results from after this timestamp.\n\n> [!note] **Note**\n> - This must be an RFC3339 timestamp string.\n> - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting\n> considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered.\n" }, { "name": "rangeEnd", "value": "2024-05-29T15:04:05+07:00", "type": "query", "description": "Only return results from before this timestamp.\n\n> [!note] **Note**\n> - This must be an RFC3339 timestamp string.\n> - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting\n> considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered.\n" }, { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "name", "value": "customer1", "type": "query", "description": "Only return reports matching the customer name." }, { "name": "integrationId", "value": "customer1", "type": "query", "description": "Filter results performing an exact matching against the profile integration identifier." }, { "name": "campaignName", "value": "campaign1", "type": "query", "description": "Only return reports matching the campaign name." }, { "name": "advocateName", "value": "advocate1", "type": "query", "description": "Only return reports matching the current customer referrer name." } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nFetch summary reports for all application customers based on a time range. Instead of having the total number of results\nin the response, this endpoint only mentions whether there are more results.\n" }, { "info": { "name": "Get customer's activity report", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/customer_activity_reports/:customerId", "params": [ { "name": "pageSize", "value": "1000", "type": "query", "description": "The number of items in the response." }, { "name": "skip", "value": "100", "type": "query", "description": "The number of items to skip when paging through large result sets." }, { "name": "rangeStart", "value": "2024-05-29T15:04:05+07:00", "type": "query", "description": "Only return results from after this timestamp.\n\n> [!note] **Note**\n> - This must be an RFC3339 timestamp string.\n> - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting\n> considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered.\n" }, { "name": "rangeEnd", "value": "2024-05-29T15:04:05+07:00", "type": "query", "description": "Only return results from before this timestamp.\n\n> [!note] **Note**\n> - This must be an RFC3339 timestamp string.\n> - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting\n> considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered.\n" }, { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "customerId", "value": "3778", "type": "path", "description": "The value of the `id` property of a customer profile. Get it with the\n[List Application's customers](https://docs.talon.one/management-api#tag/Customer-data/operation/getApplicationCustomers) endpoint.\n" } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nFetch the summary report of a given customer in the given application, in a time range." }, { "info": { "name": "Get customer's analytics report", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/customers/:customerId/analytics", "params": [ { "name": "pageSize", "value": "1000", "type": "query", "description": "The number of items in the response." }, { "name": "skip", "value": "100", "type": "query", "description": "The number of items to skip when paging through large result sets." }, { "name": "sort", "value": "name", "type": "query", "description": "The field by which results should be sorted. By default, results are sorted in ascending order. To sort them in descending order, prefix the field name with `-`.\n\n**Note:** You may not be able to use all fields for sorting. This is due to performance limitations.\n" }, { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "customerId", "value": "3778", "type": "path", "description": "The value of the `id` property of a customer profile. Get it with the\n[List Application's customers](https://docs.talon.one/management-api#tag/Customer-data/operation/getApplicationCustomers) endpoint.\n" } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nFetch analytics for a given customer in the given application." }, { "info": { "name": "List Application sessions", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/sessions", "params": [ { "name": "pageSize", "value": "1000", "type": "query", "description": "The number of items in the response." }, { "name": "skip", "value": "100", "type": "query", "description": "The number of items to skip when paging through large result sets." }, { "name": "sort", "value": "name", "type": "query", "description": "The field by which results should be sorted. By default, results are sorted in ascending order. To sort them in descending order, prefix the field name with `-`.\n\n**Note:** You may not be able to use all fields for sorting. This is due to performance limitations.\n" }, { "name": "partialMatch", "value": "false", "type": "query", "description": "Enables partial matching for a single text search field. When enabled, the search term matches anywhere within the field value (case-insensitive). Minimum 3 characters required for partial matches; shorter inputs automatically fall back to exact match.\n\n**Note:** Use with one of: `integrationId`, `profile`, `coupon`, `referral`, or `storeIntegrationId`." }, { "name": "profile", "value": "customer1", "type": "query", "description": "Filter by sessions with this profile integration ID. By default, requires exact match. Use `partialMatch=true` to search for partial matches (minimum 3 characters)." }, { "name": "state", "value": "open", "type": "query", "description": "Filter by sessions with this state. Must be exact match." }, { "name": "createdBefore", "value": "2024-05-29T15:04:05+07:00", "type": "query", "description": "Only return events created before this date. You can use any time zone setting. Talon.One will convert to UTC internally." }, { "name": "createdAfter", "value": "2024-05-29T15:04:05+07:00", "type": "query", "description": "Only return events created after this date. You can use any time zone setting. Talon.One will convert to UTC internally." }, { "name": "coupon", "value": "SUMMER10", "type": "query", "description": "Filter by sessions with this coupon. By default, requires exact match. Use `partialMatch=true` to search for partial matches (minimum 3 characters)." }, { "name": "referral", "value": "WPCNAQ5C", "type": "query", "description": "Filter by sessions with this referral. By default, requires exact match. Use `partialMatch=true` to search for partial matches (minimum 3 characters)." }, { "name": "integrationId", "value": "STORE-123-REGION-WEST", "type": "query", "description": "Filter by sessions with this integration ID. By default, requires exact match. Use `partialMatch=true` to search for partial matches (minimum 3 characters)." }, { "name": "storeIntegrationId", "value": "store1", "type": "query", "description": "The integration ID of the store. You choose this ID when you create a store. By default, requires exact match. Use `partialMatch=true` to search for partial matches (minimum 3 characters)." }, { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nList all the sessions of the specified Application.\n" }, { "info": { "name": "List Application sessions matching the given customer attributes", "type": "http" }, "http": { "method": "POST", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/sessions_search", "params": [ { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "pageSize", "value": "1000", "type": "query", "description": "The number of items in the response." }, { "name": "skip", "value": "100", "type": "query", "description": "The number of items to skip when paging through large result sets." }, { "name": "withTotalResultSize", "value": "false", "type": "query", "description": "When this flag is set, the result includes the total number of results for this query. This might decrease performance on large data sets.\n- When `true`: `totalResultSize` contains the total number of results for this query.\n- When `false`: Only `hasMore` is returned, and it is set to `true` when there are more results than shown on the page.\n" } ], "body": { "type": "json", "data": "{}" } }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nGet a list of the Application sessions matching the provided customer profile\nattributes.\n\nThe match is successful if all the attributes of the request are found in a\nprofile, even if the profile has more attributes that are not present on the\nrequest.\n" }, { "info": { "name": "Get Application session", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/sessions/:sessionId", "params": [ { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "sessionId", "value": "2533", "type": "path", "description": "The **internal** ID of the session. You can get the ID with the [List Application sessions](https://docs.talon.one/management-api#tag/Customer-data/operation/getApplicationSessions) endpoint.\n" } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nGet the details of the given session.\nYou can list the sessions with the [List Application sessions](https://docs.talon.one/management-api#tag/Customer-data/operation/getApplicationSessions) endpoint.\n" }, { "info": { "name": "List Applications events", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/events/no_total", "params": [ { "name": "pageSize", "value": "1000", "type": "query", "description": "The number of items in the response." }, { "name": "skip", "value": "100", "type": "query", "description": "The number of items to skip when paging through large result sets." }, { "name": "sort", "value": "name", "type": "query", "description": "The field by which results should be sorted. By default, results are sorted in ascending order. To sort them in descending order, prefix the field name with `-`.\n\n**Note:** You may not be able to use all fields for sorting. This is due to performance limitations.\n" }, { "name": "type", "value": "talon_session_created,talon_session_updated", "type": "query", "description": "Comma-separated list of types by which to filter events. Must be exact match(es)." }, { "name": "createdBefore", "value": "2024-05-29T15:04:05+07:00", "type": "query", "description": "Only return events created before this date. You can use any time zone setting. Talon.One will convert to UTC internally." }, { "name": "createdAfter", "value": "2024-05-29T15:04:05+07:00", "type": "query", "description": "Only return events created after this date. You can use any time zone setting. Talon.One will convert to UTC internally." }, { "name": "session", "value": "session1", "type": "query", "description": "Session integration ID filter for events. Must be exact match." }, { "name": "profile", "value": "profile1", "type": "query", "description": "Profile integration ID filter for events. Must be exact match." }, { "name": "customerName", "value": "customer1", "type": "query", "description": "Customer name filter for events. Will match substrings case-insensitively." }, { "name": "customerEmail", "value": "john@doe.com", "type": "query", "description": "Customer e-mail address filter for events. Will match substrings case-insensitively." }, { "name": "couponCode", "value": "SUMMER10", "type": "query", "description": "Coupon code" }, { "name": "referralCode", "value": "WPCNAQ5C", "type": "query", "description": "Referral code" }, { "name": "ruleQuery", "value": "rule1", "type": "query", "description": "Rule name filter for events" }, { "name": "campaignQuery", "value": "campaign1", "type": "query", "description": "Campaign name filter for events" }, { "name": "effectType", "value": "rejectCoupon", "type": "query", "description": "The type of effect that was triggered. See [API effects](https://docs.talon.one/docs/dev/integration-api/api-effects)." }, { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nLists all events recorded for an application. Instead of having the total number of results in the response, this endpoint only mentions whether there are more results.\n" }, { "info": { "name": "List Applications event types", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/event_types", "params": [ { "name": "pageSize", "value": "1000", "type": "query", "description": "The number of items in the response." }, { "name": "skip", "value": "100", "type": "query", "description": "The number of items to skip when paging through large result sets." }, { "name": "sort", "value": "name", "type": "query", "description": "The field by which results should be sorted. By default, results are sorted in ascending order. To sort them in descending order, prefix the field name with `-`.\n\n**Note:** You may not be able to use all fields for sorting. This is due to performance limitations.\n" }, { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nGet all of the distinct values of the Event `type` property for events recorded in the application.\n\nSee also: [Track an event](https://docs.talon.one/integration-api#tag/Events/operation/trackEventV2)\n" } ] }, { "info": { "name": "Audiences", "type": "folder" }, "items": [ { "info": { "name": "List audiences", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/audiences", "params": [ { "name": "pageSize", "value": "1000", "type": "query", "description": "The number of items in the response." }, { "name": "skip", "value": "100", "type": "query", "description": "The number of items to skip when paging through large result sets." }, { "name": "sort", "value": "name", "type": "query", "description": "The field by which results should be sorted. By default, results are sorted in ascending order. To sort them in descending order, prefix the field name with `-`.\n\n**Note:** You may not be able to use all fields for sorting. This is due to performance limitations.\n" }, { "name": "withTotalResultSize", "value": "false", "type": "query", "description": "When this flag is set, the result includes the total number of results for this query. This might decrease performance on large data sets.\n\n- When `true`: `totalResultSize` contains the total number of results for this query.\n- When `false`: Only `hasMore` is returned, and it is set to `true` when there are more results than shown on the page.\n" } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nGet all audiences created in the account. To create an audience, use [Create audience](https://docs.talon.one/integration-api#tag/Audiences/operation/createAudienceV2).\n" }, { "info": { "name": "List audience analytics", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/audiences/analytics", "params": [ { "name": "sort", "value": "name", "type": "query", "description": "The field by which results should be sorted. By default, results are sorted in ascending order. To sort them in descending order, prefix the field name with `-`.\n\n**Note:** You may not be able to use all fields for sorting. This is due to performance limitations.\n" }, { "name": "audienceIds", "value": "audience1", "type": "query", "description": "The IDs of one or more audiences, separated by commas, by which to filter results. Do not provide more than 1000 audience IDs." } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nGet a list of audience IDs and their member count.\n" }, { "info": { "name": "List audience members", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/audiences/:audienceId/memberships", "params": [ { "name": "audienceId", "value": "10", "type": "path", "description": "The ID of the audience." }, { "name": "pageSize", "value": "1000", "type": "query", "description": "The number of items in the response." }, { "name": "skip", "value": "100", "type": "query", "description": "The number of items to skip when paging through large result sets." }, { "name": "sort", "value": "name", "type": "query", "description": "The field by which results should be sorted. By default, results are sorted in ascending order. To sort them in descending order, prefix the field name with `-`.\n\n**Note:** You may not be able to use all fields for sorting. This is due to performance limitations.\n" }, { "name": "profileQuery", "value": "profile1", "type": "query", "description": "The filter to select a profile." } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nGet a paginated list of the customer profiles in a given audience.\n\nA maximum of 1000 customer profiles per page is allowed.\n" }, { "info": { "name": "Import audience members", "type": "http" }, "http": { "method": "POST", "url": "https://yourbaseurl.talon.one/v1/audiences/:audienceId/memberships/import", "params": [ { "name": "audienceId", "value": "10", "type": "path", "description": "The ID of the audience." } ], "body": { "type": "multipart-form", "data": [ { "name": "upFile", "type": "text", "value": "" } ] } }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nUpload a CSV file containing the integration IDs of the members you want to\nadd to an audience.\n\nThe file should be sent as multipart data and should contain only the\nfollowing column (required):\n\n- `profileintegrationid`: The integration ID of the customer profile.\n\nThe import **replaces** the previous list of audience members.\n\n> [!no" }, { "info": { "name": "Export audience members", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/audiences/:audienceId/memberships/export", "params": [ { "name": "audienceId", "value": "10", "type": "path", "description": "The ID of the audience." } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nDownload a CSV file containing the integration IDs of the members of an\naudience.\n\n> [!tip] If the exported CSV file is too large to view, you can\n> [split it into multiple files](https://www.google.com/search?q=split+CSV+into+multiple+files).\n\nThe file contains the following column:\n\n- `profileintegrationid`: The integration ID of the " } ] }, { "info": { "name": "Catalogs", "type": "folder" }, "items": [ { "info": { "name": "Get summary of price history", "type": "http" }, "http": { "method": "POST", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/price_history", "params": [ { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." } ], "body": { "type": "json", "data": "{}" } }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nFetch the historical price data for a given SKU within a defined timeframe.\n" }, { "info": { "name": "Exclude price records from price history", "type": "http" }, "http": { "method": "POST", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/price_history/exclusions", "params": [ { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." } ], "body": { "type": "json", "data": "{}" } }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nSelect a batch of historical price IDs to exclude from [best prior price calculation](https://docs.talon.one/integration-api#tag/Catalogs/operation/bestPriorPrice). All IDs in the batch must be valid `id` values obtained from the [Get summary of price history](https://docs.talon.one/management-api#tag/Catalogs/operation/priceHistory.res" }, { "info": { "name": "List items in a catalog", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/catalogs/:catalogId/items", "params": [ { "name": "catalogId", "value": "30", "type": "path", "description": "The ID of the catalog. You can find the ID in the Campaign Manager in **Account** > **Tools** > **Cart item catalogs**." }, { "name": "pageSize", "value": "1000", "type": "query", "description": "The number of items in the response." }, { "name": "skip", "value": "100", "type": "query", "description": "The number of items to skip when paging through large result sets." }, { "name": "withTotalResultSize", "value": "false", "type": "query", "description": "When this flag is set, the result includes the total number of results for this query. This might decrease performance on large data sets.\n\n- When `true`: `totalResultSize` contains the total number of results for this query.\n- When `false`: Only `hasMore` is returned, and it is set to `true` when there are more results than shown on the page.\n" }, { "name": "sku", "value": "SKU-1,SKU-2", "type": "query", "description": "Filter results by one or more SKUs. Must be exact match." }, { "name": "productNames", "value": "product1,product2", "type": "query", "description": "Filter results by one or more product names. Must be exact match." } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nReturn a paginated list of cart items in the given catalog.\n" } ] }, { "info": { "name": "Attributes", "type": "folder" }, "items": [ { "info": { "name": "List custom attributes", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/attributes", "params": [ { "name": "pageSize", "value": "1000", "type": "query", "description": "The number of items in the response." }, { "name": "skip", "value": "100", "type": "query", "description": "The number of items to skip when paging through large result sets." }, { "name": "sort", "value": "name", "type": "query", "description": "The field by which results should be sorted. By default, results are sorted in ascending order. To sort them in descending order, prefix the field name with `-`.\n\n**Note:** You may not be able to use all fields for sorting. This is due to performance limitations.\n" }, { "name": "entity", "value": "entity1", "type": "query", "description": "Returned attributes will be filtered by supplied entity." }, { "name": "applicationIds", "value": "1,2,3", "type": "query", "description": "Returned attributes will be filtered by supplied application ids" }, { "name": "loyaltyProgramIds", "value": "1,2", "type": "query", "description": "Returned attributes will be filtered by the specified loyalty program ids, separated by commas. You can only use this parameter when `entity` is `LoyaltyCard`." }, { "name": "type", "value": "string", "type": "query", "description": "Returned attributes will be filtered by supplied type" }, { "name": "kind", "value": "builtin", "type": "query", "description": "Returned attributes will be filtered by supplied kind (builtin or custom)" }, { "name": "search", "value": "string", "type": "query", "description": "Returned attributes will be filtered by searching case insensitive through Attribute name, description and type" } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nReturn all the custom attributes for the account.\n" }, { "info": { "name": "Create custom attribute", "type": "http" }, "http": { "method": "POST", "url": "https://yourbaseurl.talon.one/v1/attributes", "body": { "type": "json", "data": "{}" } }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nCreate a _custom attribute_ in this account.\n[Custom attributes](https://docs.talon.one/docs/dev/concepts/attributes) allow you\nto add data to Talon.One domain entities like campaigns, coupons,\ncustomers and so on.\n\nThese attributes can then be given values when creating/updating these entities, and these values can be\nused in your camp" }, { "info": { "name": "Get custom attribute", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/attributes/:attributeId", "params": [ { "name": "attributeId", "value": "31", "type": "path", "description": "The ID of the attribute. You can find the ID in the Campaign Manager's URL when you display the details of an attribute in **Account** > **Tools** > **Attributes**." } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nRetrieve the specified custom attribute.\n" }, { "info": { "name": "Update custom attribute", "type": "http" }, "http": { "method": "PUT", "url": "https://yourbaseurl.talon.one/v1/attributes/:attributeId", "params": [ { "name": "attributeId", "value": "31", "type": "path", "description": "The ID of the attribute. You can find the ID in the Campaign Manager's URL when you display the details of an attribute in **Account** > **Tools** > **Attributes**." } ], "body": { "type": "json", "data": "{}" } }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nUpdate an existing custom attribute. Once created, the only property of a custom attribute that can be\nchanged is the description.\n\nTo change the `type` or `name` property of a custom attribute, create a new attribute and\nupdate any relevant integrations and rules to use the new attribute.\n" }, { "info": { "name": "Import allowed values for attribute", "type": "http" }, "http": { "method": "POST", "url": "https://yourbaseurl.talon.one/v1/attributes/:attributeId/allowed_list/import", "params": [ { "name": "attributeId", "value": "31", "type": "path", "description": "The ID of the attribute. You can find the ID in the Campaign Manager's URL when you display the details of an attribute in **Account** > **Tools** > **Attributes**." } ], "body": { "type": "multipart-form", "data": [ { "name": "upFile", "type": "text", "value": "" } ] } }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nUpload a CSV file containing a list of [picklist\nvalues](https://docs.talon.one/docs/product/account/dev-tools/managing-attributes#picklist-values)\nfor the specified attribute.\n\nThe file should be sent as multipart data.\n\nThe import **replaces** the previous list of allowed values for this\nattribute, if any.\n\nThe CSV file **must** only " } ] }, { "info": { "name": "Additional costs", "type": "folder" }, "items": [ { "info": { "name": "List additional costs", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/additional_costs", "params": [ { "name": "pageSize", "value": "1000", "type": "query", "description": "The number of items in the response." }, { "name": "skip", "value": "100", "type": "query", "description": "The number of items to skip when paging through large result sets." }, { "name": "sort", "value": "name", "type": "query", "description": "The field by which results should be sorted. By default, results are sorted in ascending order. To sort them in descending order, prefix the field name with `-`.\n\n**Note:** You may not be able to use all fields for sorting. This is due to performance limitations.\n" } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nReturns all the defined additional costs for the account.\n" }, { "info": { "name": "Create additional cost", "type": "http" }, "http": { "method": "POST", "url": "https://yourbaseurl.talon.one/v1/additional_costs", "body": { "type": "json", "data": "{}" } }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nCreate an [additional cost](https://docs.talon.one/docs/product/account/dev-tools/managing-additional-costs).\n\nThese additional costs are shared across all applications in your account, and are never required.\n" }, { "info": { "name": "Get additional cost", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/additional_costs/:additionalCostId", "params": [ { "name": "additionalCostId", "value": "2", "type": "path", "description": "The ID of the additional cost. You can find the ID the the Campaign Manager's URL when you display the details of the cost in **Account** > **Tools** > **Additional costs**.\n" } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nReturns the additional cost.\n" }, { "info": { "name": "Update additional cost", "type": "http" }, "http": { "method": "PUT", "url": "https://yourbaseurl.talon.one/v1/additional_costs/:additionalCostId", "params": [ { "name": "additionalCostId", "value": "2", "type": "path", "description": "The ID of the additional cost. You can find the ID the the Campaign Manager's URL when you display the details of the cost in **Account** > **Tools** > **Additional costs**.\n" } ], "body": { "type": "json", "data": "{}" } }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nUpdates an existing additional cost. Once created, the only property of an additional cost that cannot be changed is the `name` property (or **API name** in the Campaign Manager). This restriction is in place to prevent accidentally breaking live integrations.\n" } ] }, { "info": { "name": "Webhooks", "type": "folder" }, "items": [ { "info": { "name": "List webhooks", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/webhooks", "params": [ { "name": "applicationIds", "value": "33", "type": "query", "description": "Checks if the given catalog or its attributes are referenced in the specified Application ID.\n\n**Note**: If no Application ID is provided, we check for all connected Applications.\n" }, { "name": "sort", "value": "name", "type": "query", "description": "The field by which results should be sorted. By default, results are sorted in ascending order. To sort them in descending order, prefix the field name with `-`.\n\n**Note:** You may not be able to use all fields for sorting. This is due to performance limitations.\n" }, { "name": "pageSize", "value": "1000", "type": "query", "description": "The number of items in the response." }, { "name": "skip", "value": "100", "type": "query", "description": "The number of items to skip when paging through large result sets." }, { "name": "creationType", "value": "webhooks", "type": "query", "description": "Filter results by creation type." }, { "name": "visibility", "value": "visible", "type": "query", "description": "Filter results by visibility." }, { "name": "outgoingIntegrationsTypeId", "value": "15", "type": "query", "description": "Filter results by outgoing integration type ID." }, { "name": "title", "value": "title1", "type": "query", "description": "Filter results performing case-insensitive matching against the webhook title." } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nList all webhooks." }, { "info": { "name": "Get webhook", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/webhooks/:webhookId", "params": [ { "name": "webhookId", "value": "11", "type": "path", "description": "The ID of the webhook. You can find the ID in the Campaign Manager's URL when you display the details of the webhook in **Account** > **Webhooks**.\n" } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nReturns a webhook by its id." } ] }, { "info": { "name": "Events", "type": "folder" }, "items": [ { "info": { "name": "List event types", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/event_types", "params": [ { "name": "name", "value": "event1", "type": "query", "description": "Filter results to event types with the given name. This parameter implies `includeOldVersions`." }, { "name": "includeOldVersions", "value": "false", "type": "query", "description": "Include all versions of every event type." }, { "name": "pageSize", "value": "1000", "type": "query", "description": "The number of items in the response." }, { "name": "skip", "value": "100", "type": "query", "description": "The number of items to skip when paging through large result sets." }, { "name": "sort", "value": "name", "type": "query", "description": "The field by which results should be sorted. By default, results are sorted in ascending order. To sort them in descending order, prefix the field name with `-`.\n\n**Note:** You may not be able to use all fields for sorting. This is due to performance limitations.\n" } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nFetch all event type definitions for your account.\n" } ] }, { "info": { "name": "Analytics", "type": "folder" }, "items": [ { "info": { "name": "Export triggered effects", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/export_effects", "params": [ { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "campaignId", "value": "49", "type": "query", "description": "Filter results by campaign ID." }, { "name": "createdBefore", "value": "2024-05-29T15:04:05+07:00", "type": "query", "description": "Filter results comparing the parameter value, expected to be an RFC3339 timestamp string. You can use any time zone setting. Talon.One will convert to UTC internally." }, { "name": "createdAfter", "value": "2024-05-29T15:04:05+07:00", "type": "query", "description": "Filter results comparing the parameter value, expected to be an RFC3339 timestamp string. You can use any time zone setting. Talon.One will convert to UTC internally." }, { "name": "dateFormat", "value": "excel", "type": "query", "description": "Determines the format of dates in the export document." } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nDownload a CSV file containing the triggered effects that match the given\nattributes.\n\n> [!tip] If the exported CSV file is too large to view, you can\n> [split it into multiple files](https://www.google.com/search?q=split+CSV+into+multiple+files).\n\nThe generated file can contain the following columns:\n\n- `applicationid`: The ID of the A" }, { "info": { "name": "Export customer sessions", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/export_customer_sessions", "params": [ { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "createdBefore", "value": "2024-05-29T15:04:05+07:00", "type": "query", "description": "Filter results comparing the parameter value, expected to be an RFC3339 timestamp string." }, { "name": "createdAfter", "value": "2024-05-29T15:04:05+07:00", "type": "query", "description": "Filter results comparing the parameter value, expected to be an RFC3339 timestamp string." }, { "name": "updatedBefore", "value": "2024-05-29T15:04:05+07:00", "type": "query", "description": "Filter results comparing the parameter value, expected to be an RFC3339 timestamp string." }, { "name": "updatedAfter", "value": "2024-05-29T15:04:05+07:00", "type": "query", "description": "Filter results comparing the parameter value, expected to be an RFC3339 timestamp string." }, { "name": "profileIntegrationId", "value": "customer1", "type": "query", "description": "Only return sessions for the customer that matches this customer integration ID." }, { "name": "dateFormat", "value": "excel", "type": "query", "description": "Determines the format of dates in the export document." }, { "name": "customerSessionState", "value": "open", "type": "query", "description": "Filter results by state." } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nDownload a CSV file containing the customer sessions that match the request.\n\n> [!important] Archived sessions cannot be exported. See the [retention\n> policy](https://docs.talon.one/docs/dev/server-infrastructure-and-data-retention).\n\n> [!tip] If the exported CSV file is too large to view, you can\n> [split it into multiple files](https" } ] }, { "info": { "name": "Accounts and users", "type": "folder" }, "items": [ { "info": { "name": "List users in account", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/users", "params": [ { "name": "pageSize", "value": "1000", "type": "query", "description": "The number of items in the response." }, { "name": "skip", "value": "100", "type": "query", "description": "The number of items to skip when paging through large result sets." }, { "name": "sort", "value": "name", "type": "query", "description": "The field by which results should be sorted. By default, results are sorted in ascending order. To sort them in descending order, prefix the field name with `-`.\n\n**Note:** You may not be able to use all fields for sorting. This is due to performance limitations.\n" } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nRetrieve all users in your account.\n" }, { "info": { "name": "Get user", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/users/:userId", "params": [ { "name": "userId", "value": "33", "type": "path", "description": "The ID of the user." } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nRetrieve the data (including an invitation code) for a user. Non-admin users can only get their own profile.\n" }, { "info": { "name": "Update user", "type": "http" }, "http": { "method": "PUT", "url": "https://yourbaseurl.talon.one/v1/users/:userId", "params": [ { "name": "userId", "value": "33", "type": "path", "description": "The ID of the user." } ], "body": { "type": "json", "data": "{}" } }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nUpdate the details of a specific user." }, { "info": { "name": "Delete user", "type": "http" }, "http": { "method": "DELETE", "url": "https://yourbaseurl.talon.one/v1/users/:userId", "params": [ { "name": "userId", "value": "33", "type": "path", "description": "The ID of the user." } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nDelete a specific user." }, { "info": { "name": "Validate Okta API ownership", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/provisioning/okta" }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nValidate the ownership of the API through a challenge-response mechanism.\n\nThis challenger endpoint is used by Okta to confirm that communication between Talon.One and Okta is correctly configured and accessible\nfor provisioning and deprovisioning of Talon.One users, and that only Talon.One can receive and respond to events from Okta.\n" }, { "info": { "name": "List SCIM groups", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/provisioning/scim/Groups" }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nRetrieve a paginated list of groups created using the SCIM protocol with an identity provider, for example, Microsoft Entra ID.\nIn Talon.One, a `Group` corresponds to a [role](https://docs.talon.one/docs/product/account/account-settings/managing-roles), and `members` are the [users](https://docs.talon.one/docs/product/account/account-se" }, { "info": { "name": "Create SCIM group", "type": "http" }, "http": { "method": "POST", "url": "https://yourbaseurl.talon.one/v1/provisioning/scim/Groups", "body": { "type": "json", "data": "{}" } }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nCreate a new Talon.One group using the SCIM Group provisioning protocol with an identity provider, for example, Microsoft Entra ID, and assign members from the payload to the new group.\nIn Talon.One, a `Group` corresponds to a [role](https://docs.talon.one/docs/product/account/account-settings/managing-roles), and `members` are the [use" }, { "info": { "name": "Get SCIM group", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/provisioning/scim/Groups/:groupId", "params": [ { "name": "groupId", "value": "44", "type": "path", "description": "The ID of the group." } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nRetrieve data for a specific group created using the SCIM provisioning protocol with an identity provider, for example, Microsoft Entra ID.\nIn Talon.One, a `Group` corresponds to a [role](https://docs.talon.one/docs/product/account/account-settings/managing-roles), and `members` are the [users](https://docs.talon.one/docs/product/accoun" }, { "info": { "name": "Update SCIM group", "type": "http" }, "http": { "method": "PUT", "url": "https://yourbaseurl.talon.one/v1/provisioning/scim/Groups/:groupId", "params": [ { "name": "groupId", "value": "44", "type": "path", "description": "The ID of the group." } ], "body": { "type": "json", "data": "{}" } }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nUpdate the details of a specific group created using the SCIM provisioning protocol with an identity provider, for example, Microsoft Entra ID. This endpoint replaces all attributes of the given group with the attributes provided in the request payload.\nIn Talon.One, a `Group` corresponds to a [role](https://docs.talon.one/docs/product/" }, { "info": { "name": "Update SCIM group attributes", "type": "http" }, "http": { "method": "PATCH", "url": "https://yourbaseurl.talon.one/v1/provisioning/scim/Groups/:groupId", "params": [ { "name": "groupId", "value": "44", "type": "path", "description": "The ID of the group." } ], "body": { "type": "json", "data": "{}" } }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nUpdate certain attributes of a group created using the SCIM provisioning protocol with an identity provider, for example, Microsoft Entra ID. This endpoint allows for selective adding, removing, or replacing of specific group attributes while other attributes remain unchanged.\nIn Talon.One, a `Group` corresponds to a [role](https://docs" }, { "info": { "name": "Delete SCIM group", "type": "http" }, "http": { "method": "DELETE", "url": "https://yourbaseurl.talon.one/v1/provisioning/scim/Groups/:groupId", "params": [ { "name": "groupId", "value": "44", "type": "path", "description": "The ID of the group." } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nDelete a specific group created using the SCIM provisioning protocol with an identity provider, for example, Microsoft Entra ID.\nIn Talon.One, a `Group` corresponds to a [role](https://docs.talon.one/docs/product/account/account-settings/managing-roles), and `members` are the [users](https://docs.talon.one/docs/product/account/account-s" }, { "info": { "name": "List SCIM users", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/provisioning/scim/Users" }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nRetrieve a paginated list of users that have been provisioned using the SCIM protocol with an identity provider, for example, Microsoft Entra ID." }, { "info": { "name": "Create SCIM user", "type": "http" }, "http": { "method": "POST", "url": "https://yourbaseurl.talon.one/v1/provisioning/scim/Users", "body": { "type": "json", "data": "{}" } }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nCreate a new Talon.One user using the SCIM provisioning protocol with an identity provider, for example, Microsoft Entra ID." }, { "info": { "name": "Get SCIM user", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/provisioning/scim/Users/:userId", "params": [ { "name": "userId", "value": "33", "type": "path", "description": "The ID of the user." } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nRetrieve data for a specific Talon.One user created using the SCIM provisioning protocol with an identity provider, for example, Microsoft Entra ID." }, { "info": { "name": "Update SCIM user", "type": "http" }, "http": { "method": "PUT", "url": "https://yourbaseurl.talon.one/v1/provisioning/scim/Users/:userId", "params": [ { "name": "userId", "value": "33", "type": "path", "description": "The ID of the user." } ], "body": { "type": "json", "data": "{}" } }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nUpdate the details of a specific Talon.One user created using the SCIM provisioning protocol with an identity provider, for example, Microsoft Entra ID.\n\nThis endpoint replaces all attributes of the specific user with the attributes provided in the request payload.\n" }, { "info": { "name": "Update SCIM user attributes", "type": "http" }, "http": { "method": "PATCH", "url": "https://yourbaseurl.talon.one/v1/provisioning/scim/Users/:userId", "params": [ { "name": "userId", "value": "33", "type": "path", "description": "The ID of the user." } ], "body": { "type": "json", "data": "{}" } }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nUpdate certain attributes of a specific Talon.One user created using the SCIM provisioning protocol with an identity provider, for example, Microsoft Entra ID.\n\nThis endpoint allows for selective adding, removing, or replacing specific attributes while leaving other attributes unchanged.\n" }, { "info": { "name": "Delete SCIM user", "type": "http" }, "http": { "method": "DELETE", "url": "https://yourbaseurl.talon.one/v1/provisioning/scim/Users/:userId", "params": [ { "name": "userId", "value": "33", "type": "path", "description": "The ID of the user." } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nDelete a specific Talon.One user created using the SCIM provisioning protocol with an identity provider, for example, Microsoft Entra ID." }, { "info": { "name": "List supported SCIM resource types", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/provisioning/scim/ResourceTypes" }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nRetrieve a list of resource types supported by the SCIM provisioning protocol.\n\nResource types define the various kinds of resources that can be managed via the SCIM API, such as users, groups, or custom-defined resources.\n" }, { "info": { "name": "Get SCIM service provider configuration", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/provisioning/scim/ServiceProviderConfig" }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nRetrieve the configuration settings of the SCIM service provider. It provides details about the features and capabilities supported by the SCIM API, such as the different operation settings.\n" }, { "info": { "name": "List supported SCIM schemas", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/provisioning/scim/Schemas" }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nRetrieve a list of schemas supported by the SCIM provisioning protocol.\n\nSchemas define the structure and attributes of the different resources that can be managed via the SCIM API, such as users, groups, and any custom-defined resources.\n" }, { "info": { "name": "Delete user by email address", "type": "http" }, "http": { "method": "POST", "url": "https://yourbaseurl.talon.one/v1/users/delete", "body": { "type": "json", "data": "{}" } }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\n[Delete a specific user](https://docs.talon.one/docs/product/account/account-settings/managing-users#deleting-a-user) by their email address.\n" }, { "info": { "name": "Enable user by email address", "type": "http" }, "http": { "method": "POST", "url": "https://yourbaseurl.talon.one/v1/users/activate", "body": { "type": "json", "data": "{}" } }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nEnable a [disabled user](https://docs.talon.one/docs/product/account/account-settings/managing-users#disabling-a-user) by their email address.\n" }, { "info": { "name": "Disable user by email address", "type": "http" }, "http": { "method": "POST", "url": "https://yourbaseurl.talon.one/v1/users/deactivate", "body": { "type": "json", "data": "{}" } }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\n[Disable a specific user](https://docs.talon.one/docs/product/account/account-settings/managing-users#disabling-a-user) by their email address.\n" }, { "info": { "name": "Invite user from identity provider", "type": "http" }, "http": { "method": "POST", "url": "https://yourbaseurl.talon.one/v1/users/invite", "body": { "type": "json", "data": "{}" } }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\n[Invite a user](https://docs.talon.one/docs/product/account/account-settings/managing-users#inviting-a-user) from an external identity provider to Talon.One by sending an invitation to their email address.\n" }, { "info": { "name": "Invite user", "type": "http" }, "http": { "method": "POST", "url": "https://yourbaseurl.talon.one/v2/invites", "body": { "type": "json", "data": "{}" } }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nCreate a new user in the account and send an invitation to their email\naddress.\n\n> [!note] The invitation token is valid for 24 hours after the email has\n> been sent. You can resend an invitation to a user with the [Resend\n> invitation email](https://docs.talon.one/management-api#tag/Accounts-and-users/operation/createInviteEmail)\n> end" }, { "info": { "name": "Resend invitation email", "type": "http" }, "http": { "method": "POST", "url": "https://yourbaseurl.talon.one/v1/invite_emails", "body": { "type": "json", "data": "{}" } }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nResend an email invitation to an existing user.\n\n> [!note] The invitation token is valid for 24 hours after the email has been sent.\n" }, { "info": { "name": "Request a password reset", "type": "http" }, "http": { "method": "POST", "url": "https://yourbaseurl.talon.one/v1/password_recovery_emails", "body": { "type": "json", "data": "{}" } }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nSend an email with a password recovery link to the email address of an\nexisting account.\n\n> [!note] The password recovery link expires 30 minutes after this endpoint is triggered.\n" }, { "info": { "name": "Reset password", "type": "http" }, "http": { "method": "POST", "url": "https://yourbaseurl.talon.one/v1/reset_password", "body": { "type": "json", "data": "{}" } }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nConsumes the supplied password reset token and updates the password for\nthe associated account.\n" }, { "info": { "name": "Get account details", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/accounts/:accountId", "params": [ { "name": "accountId", "value": "28", "type": "path", "description": "The identifier of the account. Retrieve it via the\n[List users in account](https://docs.talon.one/management-api#tag/Accounts-and-users/operation/getUsers) endpoint in the `accountId`\nproperty.\n" } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nReturn the details of your companies Talon.One account.\n" }, { "info": { "name": "Get account analytics", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/accounts/:accountId/analytics", "params": [ { "name": "accountId", "value": "28", "type": "path", "description": "The identifier of the account. Retrieve it via the\n[List users in account](https://docs.talon.one/management-api#tag/Accounts-and-users/operation/getUsers) endpoint in the `accountId`\nproperty.\n" } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nReturn the analytics of your Talon.One account.\n" } ] }, { "info": { "name": "Sessions", "type": "folder" }, "items": [ { "info": { "name": "Create session", "type": "http" }, "http": { "method": "POST", "url": "https://yourbaseurl.talon.one/v1/sessions", "body": { "type": "json", "data": "{}" } }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nCreate a session to use the Management API endpoints.\n\nUse the value of the `token` property provided in the response as bearer\ntoken in other API calls.\n\nA token is valid for 3 months. In accordance with best pratices, use your\ngenerated token for all your API requests. Do **not** regenerate a token for each request.\n\nThis endpoint has" }, { "info": { "name": "Destroy session", "type": "http" }, "http": { "method": "DELETE", "url": "https://yourbaseurl.talon.one/v1/sessions" }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nDestroys the session." } ] }, { "info": { "name": "Roles", "type": "folder" }, "items": [ { "info": { "name": "List roles", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v2/roles" }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nList all roles." }, { "info": { "name": "Get role", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v2/roles/:roleId", "params": [ { "name": "roleId", "value": "9", "type": "path", "description": "The ID of role.\n\n**Note**: To find the ID of a role, use the [List roles](/management-api#tag/Roles/operation/listAllRolesV2) endpoint.\n" } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nGet the details of a specific role. To see all the roles, use the [List roles](/management-api#tag/Roles/operation/listAllRolesV2) endpoint.\n" }, { "info": { "name": "Update role", "type": "http" }, "http": { "method": "PUT", "url": "https://yourbaseurl.talon.one/v2/roles/:roleId", "params": [ { "name": "roleId", "value": "9", "type": "path", "description": "The ID of role.\n\n**Note**: To find the ID of a role, use the [List roles](/management-api#tag/Roles/operation/listAllRolesV2) endpoint.\n" } ], "body": { "type": "json", "data": "{}" } }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nUpdate a specific role." } ] }, { "info": { "name": "Value maps", "type": "folder" }, "items": [ { "info": { "name": "Export campaign value map", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/campaigns/:campaignId/value_maps/:valueMapId/export", "params": [ { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "campaignId", "value": "18", "type": "path", "description": "The ID of the campaign. It is displayed in your Talon.One deployment URL." }, { "name": "valueMapId", "value": "17", "type": "path", "description": "The ID of the value map.\n" } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nDownload a CSV file containing all the value map items in a campaign. If\nthere are multiple versions of the value map, only the items of the current\nversion are exported.\n\n> [!tip] If the exported CSV file is too large to view, you can\n> [split it into multiple files](https://www.google.com/search?q=split+CSV+into+multiple+files).\n\nThe " } ] }, { "info": { "name": "Stores", "type": "folder" }, "items": [ { "info": { "name": "List stores", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/stores", "params": [ { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "pageSize", "value": "1000", "type": "query", "description": "The number of items in the response." }, { "name": "skip", "value": "100", "type": "query", "description": "The number of items to skip when paging through large result sets." }, { "name": "sort", "value": "name", "type": "query", "description": "The field by which results should be sorted. By default, results are sorted in ascending order. To sort them in descending order, prefix the field name with `-`.\n\n**Note:** You may not be able to use all fields for sorting. This is due to performance limitations.\n" }, { "name": "withTotalResultSize", "value": "false", "type": "query", "description": "When this flag is set, the result includes the total number of results for this query. This might decrease performance on large data sets.\n\n- When `true`: `totalResultSize` contains the total number of results for this query.\n- When `false`: Only `hasMore` is returned, and it is set to `true` when there are more results than shown on the page.\n" }, { "name": "campaignId", "value": "49", "type": "query", "description": "Filter results by campaign ID." }, { "name": "name", "value": "store1", "type": "query", "description": "The name of the store." }, { "name": "integrationId", "value": "storeId1", "type": "query", "description": "The integration ID of the store." }, { "name": "query", "value": "name", "type": "query", "description": "Filter results by `name` or `integrationId`." } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nList all stores for a specific Application." }, { "info": { "name": "Create store", "type": "http" }, "http": { "method": "POST", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/stores", "params": [ { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." } ], "body": { "type": "json", "data": "{}" } }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nCreate a new store in a specific Application." }, { "info": { "name": "Get store", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/stores/:storeId", "params": [ { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "storeId", "value": "17", "type": "path", "description": "The ID of the store.\nYou can get this ID with the [List stores](#tag/Stores/operation/listStores) endpoint.\n" } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nGet store details for a specific store ID." }, { "info": { "name": "Update store", "type": "http" }, "http": { "method": "PUT", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/stores/:storeId", "params": [ { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "storeId", "value": "17", "type": "path", "description": "The ID of the store.\nYou can get this ID with the [List stores](#tag/Stores/operation/listStores) endpoint.\n" } ], "body": { "type": "json", "data": "{}" } }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nUpdate store details for a specific store ID." }, { "info": { "name": "Delete store", "type": "http" }, "http": { "method": "DELETE", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/stores/:storeId", "params": [ { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "storeId", "value": "17", "type": "path", "description": "The ID of the store.\nYou can get this ID with the [List stores](#tag/Stores/operation/listStores) endpoint.\n" } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nDelete the specified store." }, { "info": { "name": "Export stores", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/campaigns/:campaignId/stores/export", "params": [ { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "campaignId", "value": "18", "type": "path", "description": "The ID of the campaign. It is displayed in your Talon.One deployment URL." } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nDownload a CSV file containing the stores linked to a specific campaign.\n\n> [!tip] If the exported CSV file is too large to view, you can\n> [split it into multiple files](https://www.google.com/search?q=split+CSV+into+multiple+files).\n\nThe CSV file contains the following column:\n\n- `store_integration_id`: The identifier of the store.\n" }, { "info": { "name": "Disconnect stores", "type": "http" }, "http": { "method": "DELETE", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/campaigns/:campaignId/stores", "params": [ { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "campaignId", "value": "18", "type": "path", "description": "The ID of the campaign. It is displayed in your Talon.One deployment URL." } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nDisconnect the stores linked to a specific campaign." }, { "info": { "name": "Import stores", "type": "http" }, "http": { "method": "POST", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/campaigns/:campaignId/stores/import", "params": [ { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "campaignId", "value": "18", "type": "path", "description": "The ID of the campaign. It is displayed in your Talon.One deployment URL." } ], "body": { "type": "multipart-form", "data": [ { "name": "upFile", "type": "text", "value": "" } ] } }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nUpload a CSV file containing the stores you want to link to a specific campaign.\n\nSend the file as multipart data.\n\nThe CSV file **must** only contain the following column:\n- `store_integration_id`: The identifier of the store.\n\nThe import **replaces** the previous list of stores linked to the campaign.\n" } ] }, { "info": { "name": "Store budgets", "type": "folder" }, "items": [ { "info": { "name": "List campaign store budget limits", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/campaigns/:campaignId/stores/budgets", "params": [ { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "campaignId", "value": "18", "type": "path", "description": "The ID of the campaign. It is displayed in your Talon.One deployment URL." }, { "name": "action", "value": "setDiscount", "type": "query", "description": "The action that this budget is limiting." }, { "name": "period", "value": "weekly", "type": "query", "description": "The period to which the limit applies.\n\n**Note**: For budgets with no period, set this to `overall`.\n" } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nReturn the store budget limits for a given campaign." }, { "info": { "name": "Create campaign store budget", "type": "http" }, "http": { "method": "POST", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/campaigns/:campaignId/stores/budgets", "params": [ { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "campaignId", "value": "18", "type": "path", "description": "The ID of the campaign. It is displayed in your Talon.One deployment URL." } ], "body": { "type": "json", "data": "{}" } }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nCreate a new store budget for a given campaign." }, { "info": { "name": "Delete campaign store budgets", "type": "http" }, "http": { "method": "DELETE", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/campaigns/:campaignId/stores/budgets", "params": [ { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "campaignId", "value": "18", "type": "path", "description": "The ID of the campaign. It is displayed in your Talon.One deployment URL." }, { "name": "action", "value": "setDiscount", "type": "query", "description": "The action that this budget is limiting." }, { "name": "period", "value": "weekly", "type": "query", "description": "The period to which the limit applies.\n\n**Note**: For budgets with no period, set this to `overall`.\n" } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nDelete the store budgets for a given campaign." }, { "info": { "name": "Get summary of campaign store budgets", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/campaigns/:campaignId/stores/budgets/summary", "params": [ { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "campaignId", "value": "18", "type": "path", "description": "The ID of the campaign. It is displayed in your Talon.One deployment URL." } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nFetch a summary of all store budget information for a given campaign." }, { "info": { "name": "Import campaign store budgets", "type": "http" }, "http": { "method": "POST", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/campaigns/:campaignId/stores/budgets/import", "params": [ { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "campaignId", "value": "18", "type": "path", "description": "The ID of the campaign. It is displayed in your Talon.One deployment URL." }, { "name": "action", "value": "setDiscount", "type": "query", "description": "The action that this budget is limiting." }, { "name": "period", "value": "weekly", "type": "query", "description": "The period to which the limit applies.\n\n**Note**: For budgets with no period, set this to `overall`.\n" } ], "body": { "type": "multipart-form", "data": [ { "name": "upFile", "type": "text", "value": "" } ] } }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nUpload a CSV file containing store budgets for a given campaign.\n\nSend the file as multipart data.\n\nThe CSV file **must** only contain the following columns:\n- `store_integration_id`: The identifier of the store.\n- `limit`: The budget limit for the store.\n\nThe import **replaces** the previous list of store budgets.\n" }, { "info": { "name": "Export campaign store budgets", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/campaigns/:campaignId/stores/budgets/export", "params": [ { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "campaignId", "value": "18", "type": "path", "description": "The ID of the campaign. It is displayed in your Talon.One deployment URL." }, { "name": "action", "value": "setDiscount", "type": "query", "description": "The action that this budget is limiting." }, { "name": "period", "value": "weekly", "type": "query", "description": "The period to which the limit applies.\n\n**Note**: For budgets with no period, set this to `overall`.\n" } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nDownload a CSV file containing the store budgets for a given campaign.\n\n> [!tip] If the exported CSV file is too large to view, you can\n> [split it into multiple files](https://www.google.com/search?q=split+CSV+into+multiple+files).\n\nThe CSV file contains the following columns:\n\n- `store_integration_id`: The identifier of the store.\n- `" } ] }, { "info": { "name": "Achievements", "type": "folder" }, "items": [ { "info": { "name": "List achievements", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/campaigns/:campaignId/achievements", "params": [ { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "campaignId", "value": "18", "type": "path", "description": "The ID of the campaign. It is displayed in your Talon.One deployment URL." }, { "name": "pageSize", "value": "50", "type": "query", "description": "The number of items in the response." }, { "name": "skip", "value": "100", "type": "query", "description": "The number of items to skip when paging through large result sets." }, { "name": "title", "value": "achievement1", "type": "query", "description": "Filter by the display name for the achievement in the campaign manager.\n\n**Note**: If no `title` is provided, all the achievements from the campaign are returned.\n" } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nList all the achievements for a specific campaign." }, { "info": { "name": "Create achievement", "type": "http" }, "http": { "method": "POST", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/campaigns/:campaignId/achievements", "params": [ { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "campaignId", "value": "18", "type": "path", "description": "The ID of the campaign. It is displayed in your Talon.One deployment URL." } ], "body": { "type": "json", "data": "{}" } }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nCreate a new achievement in a specific campaign." }, { "info": { "name": "Get achievement", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/campaigns/:campaignId/achievements/:achievementId", "params": [ { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "campaignId", "value": "18", "type": "path", "description": "The ID of the campaign. It is displayed in your Talon.One deployment URL." }, { "name": "achievementId", "value": "45", "type": "path", "description": "The ID of the achievement. You can get this ID with the [List achievement](https://docs.talon.one/management-api#tag/Achievements/operation/listAchievements) endpoint." } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nGet the details of a specific achievement." }, { "info": { "name": "Update achievement", "type": "http" }, "http": { "method": "PUT", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/campaigns/:campaignId/achievements/:achievementId", "params": [ { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "campaignId", "value": "18", "type": "path", "description": "The ID of the campaign. It is displayed in your Talon.One deployment URL." }, { "name": "achievementId", "value": "45", "type": "path", "description": "The ID of the achievement. You can get this ID with the [List achievement](https://docs.talon.one/management-api#tag/Achievements/operation/listAchievements) endpoint." } ], "body": { "type": "json", "data": "{}" } }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nUpdate the details of a specific achievement." }, { "info": { "name": "Delete achievement", "type": "http" }, "http": { "method": "DELETE", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/campaigns/:campaignId/achievements/:achievementId", "params": [ { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "campaignId", "value": "18", "type": "path", "description": "The ID of the campaign. It is displayed in your Talon.One deployment URL." }, { "name": "achievementId", "value": "45", "type": "path", "description": "The ID of the achievement. You can get this ID with the [List achievement](https://docs.talon.one/management-api#tag/Achievements/operation/listAchievements) endpoint." } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nDelete the specified achievement." }, { "info": { "name": "Export achievement customer data", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/campaigns/:campaignId/achievements/:achievementId/export", "params": [ { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "campaignId", "value": "18", "type": "path", "description": "The ID of the campaign. It is displayed in your Talon.One deployment URL." }, { "name": "achievementId", "value": "45", "type": "path", "description": "The ID of the achievement. You can get this ID with the [List achievement](https://docs.talon.one/management-api#tag/Achievements/operation/listAchievements) endpoint." } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nDownload a CSV file containing a list of all the customers who have participated in and are currently participating in the given achievement.\n\nThe CSV file contains the following columns:\n- `profileIntegrationID`: The integration ID of the customer profile participating in the achievement.\n- `title`: The display name of the achievement " }, { "info": { "name": "List achievements", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v2/achievements", "params": [ { "name": "pageSize", "value": "50", "type": "query", "description": "The number of items in the response." }, { "name": "skip", "value": "100", "type": "query", "description": "The number of items to skip when paging through large result sets." }, { "name": "sort", "value": "name", "type": "query", "description": "The field by which results should be sorted. By default, results are sorted in ascending order. To sort them in descending order, prefix the field name with `-`.\n\n**Note:** You may not be able to use all fields for sorting. This is due to performance limitations.\n" }, { "name": "title", "value": "achievement1", "type": "query", "description": "Filter by the display name of the achievement." }, { "name": "applicationId", "value": "42", "type": "query", "description": "Filter by the ID of an Application connected to the achievement." } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nList all achievements.\n" }, { "info": { "name": "Create achievement", "type": "http" }, "http": { "method": "POST", "url": "https://yourbaseurl.talon.one/v2/achievements", "body": { "type": "json", "data": "{}" } }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nCreate a new account-level achievement." }, { "info": { "name": "Get achievement", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v2/achievements/:achievementId", "params": [ { "name": "achievementId", "value": "45", "type": "path", "description": "The ID of the achievement. You can get this ID with the [List achievement](https://docs.talon.one/management-api#tag/Achievements/operation/listAchievementsV2) endpoint.\n" } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nRetrieve the details of a specific achievement." }, { "info": { "name": "Update achievement", "type": "http" }, "http": { "method": "PUT", "url": "https://yourbaseurl.talon.one/v2/achievements/:achievementId", "params": [ { "name": "achievementId", "value": "45", "type": "path", "description": "The ID of the achievement. You can get this ID with the [List achievement](https://docs.talon.one/management-api#tag/Achievements/operation/listAchievementsV2) endpoint." } ], "body": { "type": "json", "data": "{}" } }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nUpdate the details of a specific achievement." }, { "info": { "name": "Delete achievement", "type": "http" }, "http": { "method": "DELETE", "url": "https://yourbaseurl.talon.one/v2/achievements/:achievementId", "params": [ { "name": "achievementId", "value": "45", "type": "path", "description": "The ID of the achievement. You can get this ID with the [List achievement](https://docs.talon.one/management-api#tag/Achievements/operation/listAchievementsV2) endpoint." } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nDelete a specific achievement." }, { "info": { "name": "Export achievement customer data", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v2/achievements/:achievementId/export", "params": [ { "name": "achievementId", "value": "45", "type": "path", "description": "The ID of the achievement. You can get this ID with the [List achievements](https://docs.talon.one/management-api#tag/Achievements/operation/listAchievementsV2) endpoint." } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nDownload a CSV file containing a list of all the customers who have participated in and are currently participating in the given achievement.\n\nThe CSV file contains the following columns:\n- `profileIntegrationID`: The integration ID of the customer profile participating in the achievement.\n- `title`: The display name of the achievement " }, { "info": { "name": "List customer achievements", "type": "http" }, "http": { "method": "GET", "url": "https://yourbaseurl.talon.one/v1/applications/:applicationId/achievement_progress/:integrationId", "params": [ { "name": "applicationId", "value": "42", "type": "path", "description": "The ID of the Application. It is displayed in your Talon.One deployment URL." }, { "name": "integrationId", "value": "customer1", "type": "path", "description": "The integration identifier for this customer profile. Must be:\n- Unique within the deployment.\n- Stable for the customer. Do not use an ID that the customer can update themselves. For example, you can use a database ID.\n\nOnce set, you cannot update this identifier.\n" }, { "name": "pageSize", "value": "50", "type": "query", "description": "The number of items in the response." }, { "name": "skip", "value": "100", "type": "query", "description": "The number of items to skip when paging through large result sets." }, { "name": "achievementId", "value": "41", "type": "query", "description": "The ID of the achievement. You can get this ID with the [List achievement](https://docs.talon.one/management-api#tag/Achievements/operation/listAchievements) endpoint." }, { "name": "title", "value": "achievement1", "type": "query", "description": "Filter results by the `title` of an achievement." } ] }, "docs": "> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.\n\nFor the given customer profile, list all the achievements that match your filter criteria.\n" } ] } ], "bundled": true }