# createTask: Create Task Source: https://apidocs.salamoonder.com/endpoint/createTask POST /createTask Creates a new captcha solving task and returns a task ID. This example uses KasadaCaptchaSolver but is not limited to this task. # getBalance: Get Balance Source: https://apidocs.salamoonder.com/endpoint/getBalance POST /getBalance Retrieves your current account balance. This uses the createTask endpoint with type 'getBalance' and returns the wallet balance immediately. # getTaskResult: Task Result Source: https://apidocs.salamoonder.com/endpoint/getTaskResult POST /getTaskResult Retrieves the solution for a previously created task using its task ID. Poll this endpoint until status is 'ready'. # Examples Source: https://apidocs.salamoonder.com/examples Learn by doing. Each example below demonstrates a specific use case with production-ready code you can adapt immediately. ## Before You Build. The first two pages covered the fundamentals. Now let's show you what's actually possible with Salamoonder, whether you're a seasoned developer or just getting started. Below are sample projects meant to make a point, along with community examples. These are rhetorical use cases, not real world deployments. They exist to explain ideas and prompt discussion, not to act as live projects you can reference. If you're ready to code, jump straight to the next section. But take a minute here first. You might discover something that sparks your next build. Here's what you can do with [Salamoonder](https://salamoonder.com/). Want to scale on Kick, Twitch, or Whatnot? You need automation, but every platform throws captchas at you immediately. Salamoonder handles it. Build tools that create accounts, boost followers, and drive revenue at real speed. This is how top streamers scale. Monitoring Nike, Canada Goose, Footlocker? Kasada will kill your scrapers instantly. Salamoonder solves the protection layer so you can build price tracking that actually works. Get the data you need, consistently. Arc’teryx just dropped. Nike’s releasing in 60 seconds. You need checkout automation or you’re getting nothing. Salamoonder handles every captcha instantly. Build bots that complete orders in seconds while others are still loading the page. ## **Ready to build?** Now that you see what’s possible, let’s build. Below are working examples to get you started fast. These use our [Software Development Kit](https://apidocs.salamoonder.com/sdk/official), so make sure it’s included in your project. If something breaks, let us know. We don’t monitor these actively, so your feedback keeps them running. ### Kasada Standard Examples ```python expandable theme={null} import asyncio import salamoonder API_KEY = "sr-YOUR-KEY" async with salamoonder.Salamoonder(API_KEY) as client: task_id = await client.task.createTask( task_type="KasadaCaptchaSolver", pjs_url="https://example.com/149e9513-01fa-4fb0-aad4-566afd725d1b/2d206a39-8ed7-437e-a3be-862e0f06eea3/p.js", cd_only="false" ) result = await client.task.getTaskResult(task_id) if "x-kpsdk-ct" not in result: print(f"Failed to solve challenge: {result}") return print(result) ``` ### Kasada Payload Examples ```python expandable theme={null} import asyncio import salamoonder # Keep in mind not using the same USER-AGENT as displayed as our docs will result in bad responses. # https://apidocs.salamoonder.com/tasks/kasada/payload URL = "https://example.com/149e9513-01fa-4fb0-aad4-566afd725d1b/2d206a39-8ed7-437e-a3be-862e0f06eea3/fp?x-kpsdk-v=j-1.2.170" USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" PROXY = "http://user:pass@ip:port" API_KEY = "sr-YOUR-KEY" async with salamoonder.Salamoonder(API_KEY) as client: data = await client.kasada.parse_kasada_script(url=URL, user_agent=USER_AGENT, proxy=PROXY) task_id = await client.task.createTask( task_type="KasadaPayloadSolver", url="https://example.com", script_url=data["script_url"], script_content=data["script_content"], ) result = await client.task.getTaskResult(task_id) post_solution = await client.kasada.post_payload( url="https://example.com", solution=result, user_agent=USER_AGENT, proxy=PROXY, mfc=False ) print(post_solution) ``` ### Akamai Web Examples ```python web.py expandable theme={null} import asyncio from salamoonder import Salamoonder # Configuration URL = "https://example.com/" USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36" PROXY = "http://user:pass@ip:port" API_KEY = "sr-YOUR-KEY" HEADERS = { "User-Agent": USER_AGENT, "sec-ch-ua": '"Google Chrome";v="141", "Not-A.Brand";v="8", "Chromium";v="141"', "sec-ch-ua-mobile": "?0", "sec-ch-ua-platform": '"Windows"', "accept-language": "en-US,en;q=0.9", } async with Salamoonder(API_KEY) as client: akamai_data = await client.akamai.fetch_and_extract(website_url=URL, user_agent=USER_AGENT, proxy=PROXY) if not akamai_data: print("Failed to retrieve Akamai data") return # Solve 3 sensors (requires 3 API calls, you pay per sensor) data = "" for i in range(3): task_id = await client.task.createTask( task_type="AkamaiWebSensorSolver", url=akamai_data['base_url'], abck=akamai_data['abck'], bmsz=akamai_data['bm_sz'], script=akamai_data['script_data'], sensor_url=akamai_data['akamai_url'], user_agent=USER_AGENT, count=i, data=data ) result = await client.task.getTaskResult(task_id) payload = result['payload'] data = result['data'] cookie = await client.akamai.post_sensor( akamai_url=akamai_data['akamai_url'], sensor_data=payload, user_agent=USER_AGENT, website_url=URL, proxy=PROXY ) print(f"Successfully solved Akamai on {URL}") for k, v in cookie.items(): client.session.cookies.set(k, str(v), domain=".example.com") ``` ```python sbsd.py expandable theme={null} import asyncio from salamoonder import Salamoonder # Configuration URL = "https://example.com/" USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36" PROXY = "http://user:pass@ip:port" API_KEY = "sr-YOUR-KEY" HEADERS = { "User-Agent": USER_AGENT, "sec-ch-ua": '"Google Chrome";v="141", "Not-A.Brand";v="8", "Chromium";v="141"', "sec-ch-ua-mobile": "?0", "sec-ch-ua-platform": '"Windows"', "accept-language": "en-US,en;q=0.9", } async with Salamoonder(API_KEY) as client: akamai_data = await client.akamai_sbsd.fetch_and_extract( website_url=URL, user_agent=USER_AGENT, proxy=PROXY ) if not akamai_data: print("Failed to retrieve Akamai SBSD data") return task_id = await client.task.createTask( task_type="AkamaiSBSDSolver", url=akamai_data['base_url'], cookie=akamai_data['cookie_value'], sbsd_url=akamai_data['sbsd_url'], script=akamai_data['script_data'] ) result = await client.task.getTaskResult(task_id) cookie = await client.akamai_sbsd.post_sbsd( sbsd_payload=result['payload'], post_url=akamai_data['sbsd_url'], user_agent=result['user-agent'], website_url=URL, proxy=PROXY ) if cookie: print(f"Successfully solved Akamai SBSD on {URL}") print(f"Cookie Dict: {cookie}") # Set the cookie in your jar # And then do your action. else: print("Failed to solve Akamai SBSD") ``` ### DataDome Examples ```python slider.py expandable theme={null} import asyncio from salamoonder import Salamoonder from loguru import logger # Configuration URL = "https://example.com/" USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36" PROXY = "http://user:pass@ip:port" API_KEY = "sr-YOUR-KEY" HEADERS = { "User-Agent": USER_AGENT, "sec-ch-ua": '"Google Chrome";v="146", "Not-A.Brand";v="8", "Chromium";v="146"', "sec-ch-ua-mobile": "?0", "sec-ch-ua-platform": '"Windows"', "accept-language": "en-US,en;q=0.9", } async def main(): async with Salamoonder(API_KEY) as client: response = await client.get(URL, headers=HEADERS, proxy=PROXY, impersonate="chrome133a") cookies = response.cookies.get('datadome') if not cookies: print("No DataDome cookie found") return challenge = await client.datadome.get_slider_challenge( html=response.text, datadome_cookie=cookies, referer=URL, user_agent=USER_AGENT, ) task_id = await client.task.createTask( task_type="DataDomeSliderSolver", captcha_url=challenge['captcha_url'], challenge_page=challenge['challenge_page'], user_agent=USER_AGENT, ) result = await client.task.getTaskResult(task_id) if 'url' not in result: logger.error(f"Failed to solve {result}") return cookie_response = await client.get(result['url'], headers=HEADERS, proxy=PROXY, impersonate="chrome133a") print(cookie_response.text) if __name__ == "__main__": asyncio.run(main()) ``` ```python interstitial.py expandable theme={null} import asyncio from salamoonder import Salamoonder from loguru import logger # Configuration URL = "https://example.com/" USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36" PROXY = "http://user:pass@ip:port" API_KEY = "sr-YOUR-KEY" HEADERS = { "User-Agent": USER_AGENT, "sec-ch-ua": '"Google Chrome";v="146", "Not-A.Brand";v="8", "Chromium";v="146"', "sec-ch-ua-mobile": "?0", "sec-ch-ua-platform": '"Windows"', "accept-language": "en-US,en;q=0.9", } async def main(): async with Salamoonder(API_KEY) as client: response = await client.get(URL, headers=HEADERS, proxy=PROXY, impersonate="chrome133a") cookies = response.cookies.get('datadome') if not cookies: logger.error("No DataDome cookie found") return challenge = await client.datadome.get_interstitial_challenge( html=response.text, datadome_cookie=cookies, referer=URL, user_agent=USER_AGENT, ) task_id = await client.task.createTask( task_type="DataDomeInterstitialSolver", captcha_url=challenge['captcha_url'], challenge_page=challenge['challenge_page'], user_agent=USER_AGENT, ) result = await client.task.getTaskResult(task_id) if "url" not in result: logger.error(f"Failed to solve challenge: {result}") return cookie_response = await client.get(result['url'], headers=HEADERS, proxy=PROXY, impersonate="chrome133a") print(cookie_response.text) if __name__ == "__main__": asyncio.run(main()) ``` ### Incapsula Examples ```python reese84.py expandable theme={null} import asyncio from salamoonder import Salamoonder from loguru import logger # Configuration URL = "https://example.com/" USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36" PROXY = "http://user:pass@ip:port" API_KEY = "sr-YOUR-KEY" HEADERS = { "User-Agent": USER_AGENT, "sec-ch-ua": '"Google Chrome";v="142", "Not-A.Brand";v="8", "Chromium";v="142"', "sec-ch-ua-mobile": "?0", "sec-ch-ua-platform": '"Windows"', "accept-language": "en-US,en;q=0.9", } async with Salamoonder(API_KEY) as client: response = await client.get(URL, headers=HEADERS) if "Pardon Our Interruption" not in response.text and "Incapsula incident ID" not in response.text: print("No challenge detected") return print("Incapsula challenge detected") # Solve the challenge task_id = await client.task.createTask( task_type="IncapsulaReese84Solver", website=URL, submit_payload=True, # Optional parameters # reese_url="...", # user_agent=USER_AGENT ) result = await client.task.getTaskResult(task_id) if "token" not in result: print(f"Failed to solve challenge: {result}") return token = result["token"] client.session.cookies.set( name="reese84", value=token, domain=".example.com", path="/", secure=True ) response = await client.get(URL, headers=HEADERS) if "Pardon Our Interruption" not in response.text and "Incapsula incident ID" not in response.text: print("Successfully bypassed Incapsula!") else: print("Bypass failed") ``` ```python UTMVC.py theme={null} import asyncio from salamoonder import Salamoonder # Configuration URL = "https://example.com/" USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36" API_KEY = "sr-YOUR-KEY" HEADERS = { "User-Agent": USER_AGENT, "sec-ch-ua": '"Google Chrome";v="139", "Not-A.Brand";v="8", "Chromium";v="139"', "sec-ch-ua-mobile": "?0", "sec-ch-ua-platform": '"Windows"', "accept-language": "en-US,en;q=0.9", } async with Salamoonder(API_KEY) as client: task_id = await client.task.createTask( task_type="IncapsulaUTMVCSolver", website=URL, user_agent=USER_AGENT ) result = await client.task.getTaskResult(task_id) if "utmvc" not in result: print(f"Failed to solve challenge: {result}") return utmvc = result["utmvc"] client.session.cookies.set( name="___utmvc", value=utmvc, domain=".example.com", path="/", secure=True ) print(f"Successfully solved UTMVC challenge: {utmvc[:150]}") print(f"User-Agent: {result['user-agent']}") ``` ## Real world Examples This repository includes practical examples for using the Salamoonder SDK, covering various bot detection and security challenges such as Akamai, Datadome, Incapsula, and Kasada. Each example comes with clear instructions and working code that you can adapt directly to your workflow. It's a great resource whether you're just getting started or looking for ways to handle specific cases more efficiently. These examples have more real world examples which you can adopt in your workflow. # Getting started Source: https://apidocs.salamoonder.com/getting-started Now that you have a greater understanding what we at Salamoonder stand for and offer, let's now start the integration process as I'm sure we've well convinced you to give us a try! ### Requirements It’s easy to get started with Salamoonder, and you’ll be up and running quickly no matter your experience! If you’re new, hop over to our [register page](https://salamoonder.com/auth/register), or head to the [login page](https://salamoonder.com/auth/login) if you already have an account. Create or log in, then go to [Deposit](https://salamoonder.com/dashboard/deposit). Choose your payment method and amount, complete the payment, and your funds will appear in your account instantly. After that, go to your [Settings](https://salamoonder.com/dashboard/api/settings) tab. Find your API key in [Settings](https://salamoonder.com/dashboard/api/settings) and copy it. You’ll need it to start using [Salamoonder](https://salamoonder.com/) in your projects. Use the [Software Development Kit](https://apidocs.salamoonder.com/sdk/official) or follow our documentation to connect to the API and start building your project. ### Start Building That’s it! Just 4 simple steps and you’re ready to go. Check out these get-started links to get ahead quickly. Thanks for taking the time to read through, we really appreciate it and look forward to a long-lasting partnership! Go to our official SDK, built and maintained by our team. Redirects you to SDKs built and maintained by our users. Redirects you to our officially supported tasks. You're ready to build. The next page shows you exactly how it works: real code, real solutions. You'll see how to solve captchas and interact with target sites, no fluff. Follow the examples and you'll understand the flow immediately. Let's get started. # Introduction Source: https://apidocs.salamoonder.com/introduction Salamoonder provides an easy-to-use API to solve captchas seamlessly, letting you scrape any website with ease! ## What is Salamoonder? [Salamoonder](https://salamoonder.com/) makes bypassing anti-bots simple. You skip complex scripts and outside steps. Ask for what you want and it delivers right away. It gives new developers the speed to match top talent in web scraping. We support a wide range of [captchas ](https://apidocs.salamoonder.com/tasks/kasada)that you can solve with a single request to our API. If a task needs extra input, you can use our [Software Development Kit](https://apidocs.salamoonder.com/sdk/official) (SDK), which handles everything for you. ## What makes us different? At [Salamoonder](https://salamoonder.com/), we take a unique approach. Everyone wants a simple integration that doesn’t clutter their existing code. With Salamoonder, you can be up and running in just [5 lines of code](https://apidocs.salamoonder.com/sdk/official). What really sets us apart from the competition is; 1. **Competitive Pricing**: Fair rates, usually around 50% cheaper than the competition. 2. **Reliability**: Count on Salamoonder for consistent and dependable captcha solving. 3. **Customization**: Adjust parameters to control how captchas are solved for you. ## Why choose us? Here's what you get! Not only do you get fast responses and valid tokens, but at [Salamoonder](https://salamoonder.com/) we value real connections with our users. Our team is hands-on and eager to hear your feedback. You’re treated as an individual, not just a user. Here’s why our users switched and continue to stay with us! 1. **Solving Speed**: Get results in a few ms, keeping your flow fast and steady. 2. **Developer Friendly**: Integrate it in in mere seconds and keep your workflow smooth. 3. **Hands-on Support**: If you run into issues, you can get them sorted in minutes. Ready to get going? On the next page you’ll find everything you need to start: from funding your account to grabbing your API key, installing the SDK and making your first request. # Community Source: https://apidocs.salamoonder.com/sdk/community Thanks to our users, some have created their own Software Development Kit (SDK). Keep in mind we haven't fully checked them, so make sure you understand what you're running. Keep in mind that this is maintained by users and the code can change at any time. We do not actively watch for updates, so be sure to check the source yourself. This GO SDK is actively maintained and includes useful helper functions Here are some simple examples for each SDK. They come straight from their GitHub, and they might be outdated. ```go JuanBrotenelle/salamoonder.go theme={null} package main import ( "context" "encoding/json" "fmt" "log" "github.com/juanbrotenelle/go_salamoonder" ) func main() { client, err := salamoonder.New("sr-YOUR-API-KEY", nil) if err != nil { log.Fatal(err) } result, err := client.CreateTask(context.Background(), salamoonder.KasadaOptions{ Pjs: "https://www.nike.com/.../.../p.js", CdOnly: true, } ) if err != nil { log.Fatal(err) } taskResult, err := client.Task(context.Background(), result.TaskId) if err != nil { log.Fatal(err) } var solution salamoonder.KasadaSolution if err := json.Unmarshal(taskResult.Solution, &solution); err != nil { log.Fatal(err) } fmt.Println(solution.UserAgent) } ``` # Official Source: https://apidocs.salamoonder.com/sdk/official The Software Development Kit, or SDK, lets you drop Salamoonder into your project without the fuss. Use our official SDK or one of the ones made by our community! This is our official Python SDK, created and maintained by the official Salamoonder team! This is our official JavaScript SDK, created and mainted by the official Salamoonder team! This is our official GO SDK, created and mainted by the official Salamoonder team! Here are some easy to use examples for each SDK, so you can see how they work and follow along without trouble. ```python salamoonder.py theme={null} import asyncio from salamoonder import Salamoonder async def main(): async with Salamoonder('YOUR_API_KEY') as client: # Create and solve a Kasada captcha task task_id = await client.task.createTask('KasadaCaptchaSolver', pjs_url='https://example.com/script.js', cd_only="false" ) # Poll for the result solution = await client.task.getTaskResult(task_id) print('Solution:', solution) asyncio.run(main()) ``` ```javascript salamoonder.js theme={null} import Salamoonder from 'salamoonder-js'; const client = new Salamoonder('YOUR_API_KEY'); // Create and solve a Kasada captcha task const taskId = await client.task.createTask('KasadaCaptchaSolver', { pjs_url: 'https://example.com/script.js', cd_only: "false", }); // Poll for the result const solution = await client.task.getTaskResult(taskId); console.log('Solution:', solution); ``` # SBSD Source: https://apidocs.salamoonder.com/tasks/akamai/sbsd Each request in this task is priced at only €0.0025. ## Create Task Create the task with the [createTask](https://apidocs.salamoonder.com/endpoint/createTask) endpoint, or use our [Software Development Kit ](https://apidocs.salamoonder.com/sdk/official)to make your integration process even easier ### Task Structure | **Property** | **Type** | **Required** | **Description** | | ------------ | :------: | :----------: | :----------------------------------------------------- | | `type` | String | Yes | The task type that you want to engange. | | `url` | String | Yes | Your **target** website, make sure it's the full URL. | | `cookie` | String | Yes | The **sbsd\_o** cookie or **bm\_so**. | | `sbsd_url` | string | Yes | The **full SBSD URL**, this is dynamic. | | `script` | String | Yes | The **complete script** fetched from the **SBSD URL**. | | `user_agent` | String | No | Your **chrome** user-agent. | This task is where we took extra care to explain the parameters, because we want everything to be clear and easy to use. We strongly recommend using our [Software Development Kit](https://apidocs.salamoonder.com/sdk/official), and our [examples](https://apidocs.salamoonder.com/examples#akamai-web-examples) are there to help you get up and running fast. You can send your own user agent for this task. If you skip it, the system picks a random one. If you do send one, make sure it’s a Chrome on Windows user agent, since those have worked best. Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36 ### Example Request ```json theme={null} POST https://salamoonder.com/api/createTask Host: salamoonder.com Content-Type: application/json { "api_key": "YOUR_API_KEY", "task": { "type": "AkamaiSBSDSolver", "url": "https://www.bol.com/", "cookie": "F13EC1F79E0F5EB12959B4BAD24E1A291710A2...", "sbsd_url": "https://bol.com/.well-known/sbsd/11...", "script": "(function(){if(typeof Array.prototype ...", "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win6..." } } ``` ### Example Response ```json theme={null} { "error_code": 0, "error_description": "", "taskId": "d4611a5f-9b4e-4f4a-94a2-8303d97562e1" } ``` **Response Fields:** * `taskId` - Unique identifier for this task. Use this to retrieve results. ## Getting Results Retrieve the results using the [getTaskResult ](https://docs.salamoonder.com/endpoint/getTaskResult)method. or use our [Software Development Kit ](https://apidocs.salamoonder.com/sdk/official)to make your integration process even easier! ### Example Request ```json theme={null} POST https://salamoonder.com/api/getTaskResult Host: salamoonder.com Content-Type: application/json { "api_key": "YOUR_API_KEY", "taskId": "d4611a5f-9b4e-4f4a-94a2-8303d97562e1" } ``` ### Example Response The returned payload is base64 encoded. You must decode it before sending it. Our SDK can handle this for you and keeps things simple. ```json theme={null} { "errorId": 0, "solution": { "payload": "...", "user-agent": "..." }, "status": "ready" } ``` **Response Fields:** * `payload` - The payload you have to post to the akamai sbsd URL. * `user-agent` - The user agent used to create the payload. ## Quick Start Example We have examples for all our tasks to streamline integration. Feel free to check them out! All our Akamai SBSDExamples can be found here! # Web Source: https://apidocs.salamoonder.com/tasks/akamai/web Each request in this task is priced at only €0.0025. **Attention** Our **BMP task** is reserved for long-term customers and is not available to new users. This helps us maintain a controlled user base and reduce the risk of external monitoring. ## Create Task Create the task with the [createTask](https://apidocs.salamoonder.com/endpoint/createTask) endpoint, or use our [Software Development Kit ](https://apidocs.salamoonder.com/sdk/official)to make your integration process even easier ### Task Structure | **Property** | **Type** | **Required** | **Description** | | ------------ | :------: | :----------: | :---------------------------------------------------- | | `type` | String | Yes | The task type that you want to engange. | | `url` | String | Yes | Your **target** website, make sure it's the full URL. | | `abck` | String | Yes | The initial **\_abck** cookie that you retrieved. | | `bmsz` | string | Yes | The initial **bm\_sz** cookie that you retrieved. | | `script` | String | Yes | The **complete script** fetched from Akamai. | | `sensor_url` | String | Yes | The **full akamai URL**, this is dynamic. | | `count` | Integer | Yes | First request should **always be 0**, then increase. | | `data` | String | Yes | Should be **empty** on first request. | | `user_agent` | String | No | Your **chrome** user-agent. | This task is where we took extra care to explain the parameters, because we want everything to be clear and easy to use. We strongly recommend using our [Software Development Kit](https://apidocs.salamoonder.com/sdk/official), and our [examples](https://apidocs.salamoonder.com/examples#akamai-web-examples) are there to help you get up and running fast. You can send your own user agent for this task. If you skip it, the system picks a random one. If you do send one, make sure it’s a Chrome on Windows user agent, since those have worked best. Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36 ### Example Request ```json theme={null} POST https://salamoonder.com/api/createTask Host: salamoonder.com Content-Type: application/json { "api_key": "YOUR_API_KEY", "task": { "type": "AkamaiWebSensorSolver", "url": "https://www.ihg.com/hotels/us/en/reservation", "abck": "2706C6DDF2B013C342A7125C1C0F5185~-1~YAAQ...", "bmsz": "BCD5B7DFC133ED770D17429A247C9724~YAAQ7do...", "script": "(function(){if(typeof Array.prototype ...", "sensor_url": "https://www.ihg.com/rJftaU2Ch9_OZd...", "count": 0, // should be 0 on first request "data": "", // This should be empty on the first request. "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win6..." } } ``` ### Example Response ```json theme={null} { "error_code": 0, "error_description": "", "taskId": "d4611a5f-9b4e-4f4a-94a2-8303d97562e1" } ``` **Response Fields:** * `taskId` - Unique identifier for this task. Use this to retrieve results. ## Getting Results Retrieve the results using the [getTaskResult ](https://apidocs.salamoonder.com/api/gettaskresult-task-result)method. or use our [Software Development Kit ](https://apidocs.salamoonder.com/sdk/official)to make your integration process even easier! ### Example Request ```json theme={null} POST https://salamoonder.com/api/getTaskResult Host: salamoonder.com Content-Type: application/json { "api_key": "YOUR_API_KEY", "taskId": "d4611a5f-9b4e-4f4a-94a2-8303d97562e1" } ``` ### Example Response ```json theme={null} { "errorId": 0, "solution": { "data": "...", "payload": "...", "user-agent": "..." }, "status": "ready" } ``` **Response Fields:** * `data` - Data that needs to be sent to our API for the second payload generation. * `payload` - The payload you have to post to the akamai URL. * `user-agent` - The user-agent used to create the payload. ## Quick Start Example We have examples for all our tasks to streamline integration. Feel free to check them out! All our Akamai Web Examples can be found here! # Interstitial Source: https://apidocs.salamoonder.com/tasks/datadome/interstitial Each request in this task is priced at only €0.0023. ## Create Task Create the task with the [createTask](https://apidocs.salamoonder.com/endpoint/createTask) endpoint, or use our [Software Development Kit ](https://apidocs.salamoonder.com/sdk/official)to make your integration process even easier! ### Task Structure | **Property** | **Type** | **Required** | | ---------------- | :---------------------: | :----------: | | `type` | String | Yes | | `captcha_url` | String | Yes | | `challenge_page` | String (base64-encoded) | Yes | | `user_agent` | String | Yes | Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36 ### Example Request ```json theme={null} POST https://salamoonder.com/api/createTask Host: salamoonder.com Content-Type: application/json { "api_key": "YOUR_API_KEY", "task": { "type": "DataDomeInterstitialSolver", "captcha_url": "https://geo.captcha-delivery.com/captcha/...", "challenge_page": "", "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64 ..." } } ``` Upon successfully submitting the task to us, you should receive a ‘taskId’ in the response. ### Example Response ```json theme={null} { "error_code": 0, "error_description": "", "taskId": "d4611a5f-9b4e-4f4a-94a2-8303d97562e1" } ``` **Response Fields:** * `taskId` - Unique identifier for this task. Use this to retrieve results. ## **Getting Results** Retrieve the results using the [getTaskResult ](https://apidocs.salamoonder.com/api/gettaskresult-task-result)method. or use our [Software Development Kit ](https://apidocs.salamoonder.com/sdk/official)to make your integration process even easier! ### Example Request ```json theme={null} POST https://salamoonder.com/api/getTaskResult Host: salamoonder.com Content-Type: application/json { "api_key": "YOUR_API_KEY", "taskId": "d4611a5f-9b4e-4f4a-94a2-8303d97562e1" } ``` ### Example Response ```json theme={null} { "errorId": 0, "solution": { "url": "https://geo.captcha-delivery.com/check/...", "payload": "?cid=xxx" "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebK..." }, "status": "ready" } ``` **Response Fields:** * `url`- Make a GET request to this URL to get the cookie. * `user-agent` - user-agent that was used to make this payload. ## Quick Start Example We have examples for all our tasks to streamline integration. Feel free to check them out! All our Interstitial Examples can be found here! # Slider Source: https://apidocs.salamoonder.com/tasks/datadome/slider Each request in this task is priced at only €0.0023. **Attention** Watch the `t` field in `captcha_url`. If it shows `fe`, you are fine. If it shows `bv`, your IP is blocked and you need to switch to a new one. ## Create Task Create the task with the [createTask](https://apidocs.salamoonder.com/endpoint/createTask) endpoint, or use our [Software Development Kit ](https://apidocs.salamoonder.com/sdk/official)to make your integration process even easier! ### Task Structure | **Property** | **Type** | **Required** | | ---------------- | :---------------------: | :----------: | | `type` | String | Yes | | `captcha_url` | String | Yes | | `challenge_page` | String (base64-encoded) | Yes | | `user_agent` | String | Yes | Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36 ### Example Request ```json theme={null} POST https://salamoonder.com/api/createTask Host: salamoonder.com Content-Type: application/json { "api_key": "YOUR_API_KEY", "task": { "type": "DataDomeSliderSolver", "captcha_url": "https://geo.captcha-delivery.com/captcha/...", "challenge_page": "", "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64 ..." } } ``` Upon successfully submitting the task to us, you should receive a ‘taskId’ in the response. ### Example Response ```json theme={null} { "error_code": 0, "error_description": "", "taskId": "d4611a5f-9b4e-4f4a-94a2-8303d97562e1" } ``` **Response Fields:** * `taskId` - Unique identifier for this task. Use this to retrieve results. ## Getting Results Retrieve the results using the [getTaskResult ](https://apidocs.salamoonder.com/api/gettaskresult-task-result)method. or use our [Software Development Kit ](https://docs.salamoonder.com/sdk/official)to make your integration process even easier! ### Example Request ```json theme={null} POST https://salamoonder.com/api/getTaskResult Host: salamoonder.com Content-Type: application/json { "api_key": "YOUR_API_KEY", "taskId": "d4611a5f-9b4e-4f4a-94a2-8303d97562e1" } ``` ### Example Response ```json theme={null} { "errorId": 0, "solution": { "url": "https://geo.captcha-delivery.com/check/...", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebK..." }, "status": "ready" } ``` **Response Fields:** * `url`- Make a GET request to this URL to get the cookie. * `user-agent` - user-agent that was used to make this payload. ## Quick Start Example We have examples for all our tasks to streamline integration. Feel free to check them out! All our Slider examples can be found here! # Reese84 Source: https://apidocs.salamoonder.com/tasks/incapsula/reese84 Each request in this task is priced at only €0.0015. ## Create Task​ Create the task with the [createTask](https://apidocs.salamoonder.com/endpoint/createTask) endpoint, or use our [Software Development Kit ](https://apidocs.salamoonder.com/sdk/official)to make your integration process even easier! ### Task Structure | **Property** | **Type** | **Required** | | ---------------- | :------: | :----------: | | `type` | String | Yes | | `website` | String | Yes | | `submit_payload` | Boolean | Yes | | `user_agent` | String | No | You can send your own user agent for this task. If you skip it, the system picks a random one. If you do send one, make sure it's a Chrome on Windows user agent, since those have worked best. Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36 ### Example Request ```json theme={null} POST https://salamoonder.com/api/createTask Host: salamoonder.com Content-Type: application/json { "api_key": "YOUR_API_KEY", "task": { "type": "IncapsulaReese84Solver", "website": "https://www.pokemoncenter.com/", "submit_payload": true, "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebK..." } } ``` Upon successfully submitting the task to us, you should receive a ‘taskId’ in the response. ### Example Response ```json theme={null} { "error_code": 0, "error_description": "", "taskId": "d4611a5f-9b4e-4f4a-94a2-8303d97562e1" } ``` **Response Fields:** * `taskId` - Unique identifier for this task. Use this to retrieve results. ## **Getting Results** Retrieve the results using the [getTaskResult ](https://apidocs.salamoonder.com/api/gettaskresult-task-result)method. or use our [Software Development Kit ](https://apidocs.salamoonder.com/sdk/official)to make your integration process even easier! ### **Example Request** ```json theme={null} POST https://salamoonder.com/api/getTaskResult Host: salamoonder.com Content-Type: application/json { "api_key": "YOUR_API_KEY", "taskId": "d4611a5f-9b4e-4f4a-94a2-8303d97562e1" } ``` ### Example Response (submit\_payload: true) When `submit_payload` is set to `true`, you receive a ready-to-set cookie: ```json theme={null} { "errorId": 0, "solution": { "token": "3:rVOfjx0PiH6yaKHP6NJA4A==:djhiQiEO06lKq6aB9elbcrOSKvx/C6OCC...", "renewInSec": 865, "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/5..." }, "status": "ready" } ``` **Response Fields:** * `token` - Ready-to-use Reese84 token for submission * `renewInSec` - Token validity period in seconds * `user-agent` - user-agent that was used to make this token ### Example Response (submit\_payload: false) When `submit_payload` is set to `false`, you receive the raw payload for manual posting: ```json theme={null} { "errorId": 0, "solution": { "payload": "{\"solution\":{\"interrogation\":{\"p\":\"V33Hw0cqFIs8LgTT...", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/5...", "accept-language": "en-US,en;q=0.9" }, "status": "ready" } ``` **Response Fields:** * `payload` - Raw payload for manual processing * `user-agent` - user-agent that was used to make this payload. * `accept-language` - Language header to use ## What if your response doesn't match ours? if you get `Failed to find reese84 script URL, please reach out to support.` in the solution field please change your request body to ```json theme={null} { "api_key": "YOUR_API_KEY", "task": { "type": "IncapsulaReese84Solver", "website": "https://www.pokemoncenter.com/", "reese_url": "https://www.pokemoncenter.com/vice-come-Solden....", "submit_payload": false } } ``` This is required when the target website can’t be reached. If the site isn’t accessible, the payload can’t be sent either. Contact our support team if you still want to use the submit payload function, and we’ll set up a custom configuration for you. ## Quick Start Example We have examples for all our tasks to streamline integration. Feel free to check them out! All our Reese84 examples can be found here! # UTMVC Source: https://apidocs.salamoonder.com/tasks/incapsula/utmvc Each request in this task is priced at only €0.0015. ## Create Task Create the task with the [createTask ](https://apidocs.salamoonder.com/endpoint/createTask)endpoint, or use our [Software Development Kit ](https://apidocs.salamoonder.com/sdk/official)to make your integration process even easier! ### Task Structure | **Property** | **Type** | **Required** | | :----------- | :------: | :----------: | | `type` | String | Yes | | `website` | String | Yes | | `user_agent` | String | No | You can send your own user agent for this task. If you skip it, the system picks a random one. If you do send one, make sure it’s a Chrome on Windows user agent, since those have worked best. Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36 ### Example Request ```json theme={null} POST https://salamoonder.com/api/createTask Host: salamoonder.com Content-Type: application/json { "api_key": "YOUR_API_KEY", "task": { "type": "IncapsulaUTMVCSolver", "website": "https://group.accor.com/", "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win6..." } } ``` Upon successfully submitting the task to us, you should receive a ‘taskId’ in the response. ### Example Response ```json theme={null} { "error_code": 0, "error_description": "", "taskId": "d4611a5f-9b4e-4f4a-94a2-8303d97562e1" } ``` **Response Fields:** * `taskId` - Unique identifier for this task. Use this to retrieve results. ## **Getting Results** Retrieve the results using the [getTaskResult ](https://apidocs.salamoonder.com/api/gettaskresult-task-result)method. or use our [Software Development Kit ](https://apidocs.salamoonder.com/sdk/official)to make your integration process even easier! ### Example Request ```json theme={null} POST https://salamoonder.com/api/getTaskResult Host: salamoonder.com Content-Type: application/json { "api_key": "YOUR_API_KEY", "taskId": "d4611a5f-9b4e-4f4a-94a2-8303d97562e1" } ``` ### Example Response ```json theme={null} { "errorId": 0, "solution": { "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x6...", "utmvc": "oh7B0lJUDUsIMcMjz2441jusv+4c8BKNB4gbFaaojd+m..." }, "status": "ready" } ``` **Response Fields:** * `user-agent` - Browser user-agent to use with this solution * `utmvc` - The UTMVC challenge data. ## Quick Start Example We have examples for all our tasks to streamline integration. Feel free to check them out! All our UTMVC Examples can be found here! # Payload Source: https://apidocs.salamoonder.com/tasks/kasada/payload Each request in this task is priced at only €0.0005. **Attention** Copy this user-agent precisely. Deviations will produce unexpected or broken responses. Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36 ## Create Task​ Create the task with the [createTask](https://apidocs.salamoonder.com/endpoint/createTask) endpoint, or use our [Software Development Kit](https://apidocs.salamoonder.com/sdk/official) to make your integration process even easier! ### Task Structure | **Property** | **Type** | **Required** | | ---------------- | :------: | :----------: | | `type` | String | Yes | | `url` | String | Yes | | `script_content` | String | Yes | | `script_url` | String | No | ### **Example Request** ```json theme={null} POST https://salamoonder.com/api/createTask Host: salamoonder.com Content-Type: application/json { "api_key": "YOUR_API_KEY", "task": { "type": "KasadaPayloadSolver", "url": "https://www.whatnot.com/", "script_url": "https://www.whatnot.com/../../ips.js?KP_UIDz=0....", "script_content": "KPSDK.scriptStart=KPSDK.now();((function()....", } } ``` Upon successfully submitting the task to us, you should receive a 'taskId' in the response. ### Example Response ```json theme={null} { "error_code": 0, "error_description": "", "taskId": "d4611a5f-9b4e-4f4a-94a2-8303d97562e1" } ``` **Response Fields:** * `taskId` - Unique identifier for this task. Use this to retrieve results. ## **Getting Results** Retrieve the results using the [getTaskResult](https://apidocs.salamoonder.com/api/gettaskresult-task-result) method. or use our [Software Development Kit](https://apidocs.salamoonder.com/sdk/official) to make your integration process even easier! ### **Example Request** ```json theme={null} POST https://salamoonder.com/api/getTaskResult Host: salamoonder.com Content-Type: application/json { "api_key": "YOUR_API_KEY", "taskId": "d4611a5f-9b4e-4f4a-94a2-8303d97562e1" } ``` ### Example Response The returned payload is base64 encoded. You must decode it before sending it. Our SDK can handle this for you and keeps things simple. ```json theme={null} { "errorId": 0, "solution": { "headers": { "x-kpsdk-ct": "02ZDV4Wf8UnQrrkylUAizpCB8ASqkRLkm6...", "x-kpsdk-dt": "12mx37w425vz64hz04plwa1z10w78w81t5...", "x-kpsdk-im": "AALI-09Hz2cchHDvUL2BZJxUn9WAK9sZzn...", "x-kpsdk-v": "j-1.2.118" }, "payload": "base64_encoded_payload", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win6..." }, "status": "ready" } ``` **Response Fields:** * `x-kpsdk-*` - Header values that need to be sent to the /tl endpoint. * `payload` - Payload to post to /tl which will give you the validated data. * `user-agent` - User-Agent that was used to make this payload. ## Quick Start Example We have examples for all our tasks to streamline integration. Feel free to check them out! All our Kasada Payload Examples can be found here! ## Common Troubleshooting Because we rely on the data you provide, small discrepancies, such as mismatched user-agents, can occasionally cause issues. ### Not getting a 200 and `"reload": true` from `/tl`? If the `/tl` endpoint does not return a 200 response with `"reload": true`, the request has failed. Please verify the following: 1. The correct `user-agent` is being used. 2. The same `user-agent` is sent with **every** request, not just the POST. 3. All required headers are included in the POST request to `/tl`. 4. The request body is decoded **before** being sent. If you've checked all of the above and are still experiencing blocks or errors, please reach out to our support team via [Telegram](https://t.me/salamoonder_bot) or **Email**. ### Receiving a token but still getting blocked? There are a variety of reasons this can happen, but let's start with the most common. Please verify the following: 1. You are proxying **all** requests, preferably with a sticky session. 2. You are using a well-crafted TLS client. 3. You are **not** posting the `kpsdk-v` value to the protected endpoint. If you've checked all of the above and are still experiencing blocks or errors, please reach out to our support team via [Telegram](https://t.me/salamoonder_bot) or **Email**. # Standard Source: https://apidocs.salamoonder.com/tasks/kasada/standard Each request in this task is priced at only €0.002. This is our standard task and it is the one most of our users choose. If you are not very comfortable with technical setups, this is the option we recommend. ## Supported Sites We can support any site, but we like to keep track of what people use. If yours is missing, send us a message on [Telegram](https://t.me/salamoonder). * [gql.twitch.tv](https://k.twitchcdn.net/149e9513-01fa-4fb0-aad4-566afd725d1b/2d206a39-8ed7-437e-a3be-862e0f06eea3/p.js) / [passport.twitch.tv](https://k.twitchcdn.net/149e9513-01fa-4fb0-aad4-566afd725d1b/2d206a39-8ed7-437e-a3be-862e0f06eea3/p.js) * [kick.com](https://kick.com/149e9513-01fa-4fb0-aad4-566afd725d1b/2d206a39-8ed7-437e-a3be-862e0f06eea3/p.js) * [api.nike.com](https://www.nike.com/149e9513-01fa-4fb0-aad4-566afd725d1b/2d206a39-8ed7-437e-a3be-862e0f06eea3/p.js) / [accounts.nike.com](https://www.nike.com/149e9513-01fa-4fb0-aad4-566afd725d1b/2d206a39-8ed7-437e-a3be-862e0f06eea3/p.js) * [sso.123-reg.co.uk](https://sso.123-reg.co.uk/149e9513-01fa-4fb0-aad4-566afd725d1b/2d206a39-8ed7-437e-a3be-862e0f06eea3/p.js) * [wbiprod.storedvalue.com](https://wbiprod.storedvalue.com/149e9513-01fa-4fb0-aad4-566afd725d1b/2d206a39-8ed7-437e-a3be-862e0f06eea3/p.js) * [api-online.myer.com.au](https://www.myer.com.au/149e9513-01fa-4fb0-aad4-566afd725d1b/2d206a39-8ed7-437e-a3be-862e0f06eea3/p.js) * [sso.godaddy.com](https://sso.godaddy.com/149e9513-01fa-4fb0-aad4-566afd725d1b/2d206a39-8ed7-437e-a3be-862e0f06eea3/p.js) * [www.sephora.com](https://www.sephora.com/149e9513-01fa-4fb0-aad4-566afd725d1b/2d206a39-8ed7-437e-a3be-862e0f06eea3/p.js) / [api.sephora.com](https://api.sephora.com/149e9513-01fa-4fb0-aad4-566afd725d1b/2d206a39-8ed7-437e-a3be-862e0f06eea3/p.js) / [api-developer.sephora.com](https://api-developer.sephora.com/149e9513-01fa-4fb0-aad4-566afd725d1b/2d206a39-8ed7-437e-a3be-862e0f06eea3/p.js) * [ca.account.sony.com](https://my.account.sony.com/149e9513-01fa-4fb0-aad4-566afd725d1b/2d206a39-8ed7-437e-a3be-862e0f06eea3/p.js) * [sso.secureserver.net](https://sso.secureserver.net/149e9513-01fa-4fb0-aad4-566afd725d1b/2d206a39-8ed7-437e-a3be-862e0f06eea3/p.js) * [www.realtor.com](https://www.realtor.com/149e9513-01fa-4fb0-aad4-566afd725d1b/2d206a39-8ed7-437e-a3be-862e0f06eea3/p.js) * [www.hyatt.com](https://www.hyatt.com/149e9513-01fa-4fb0-aad4-566afd725d1b/2d206a39-8ed7-437e-a3be-862e0f06eea3/p.js) * [api.au.pointsbet.com](https://api.au.pointsbet.com/149e9513-01fa-4fb0-aad4-566afd725d1b/2d206a39-8ed7-437e-a3be-862e0f06eea3/p.js) * [www.realestate.com.au](https://www.realestate.com.au/149e9513-01fa-4fb0-aad4-566afd725d1b/2d206a39-8ed7-437e-a3be-862e0f06eea3/p.js) * [www.whatnot.com](https://www.whatnot.com/149e9513-01fa-4fb0-aad4-566afd725d1b/2d206a39-8ed7-437e-a3be-862e0f06eea3/p.js) / [api.whatnot.com](https://api.whatnot.com/149e9513-01fa-4fb0-aad4-566afd725d1b/2d206a39-8ed7-437e-a3be-862e0f06eea3/p.js) * [www.canadagoose.com](https://www.canadagoose.com/149e9513-01fa-4fb0-aad4-566afd725d1b/2d206a39-8ed7-437e-a3be-862e0f06eea3/p.js) * [apihub.scheels.com](https://apihub.scheels.com/149e9513-01fa-4fb0-aad4-566afd725d1b/2d206a39-8ed7-437e-a3be-862e0f06eea3/p.js) * [vercel.com](https://vercel.com/149e9513-01fa-4fb0-aad4-566afd725d1b/2d206a39-8ed7-437e-a3be-862e0f06eea3/p.js) * [resend.com](https://resend.com/149e9513-01fa-4fb0-aad4-566afd725d1b/2d206a39-8ed7-437e-a3be-862e0f06eea3/p.js) * [www.footlocker.com](https://www.footlocker.com/149e9513-01fa-4fb0-aad4-566afd725d1b/2d206a39-8ed7-437e-a3be-862e0f06eea3/p.js) / [www.footlocker.it](https://www.footlocker.it/149e9513-01fa-4fb0-aad4-566afd725d1b/2d206a39-8ed7-437e-a3be-862e0f06eea3/p.js) / [www.footlocker.de](https://www.footlocker.de/149e9513-01fa-4fb0-aad4-566afd725d1b/2d206a39-8ed7-437e-a3be-862e0f06eea3/p.js) / [www.footlocker.fr](https://www.footlocker.fr/149e9513-01fa-4fb0-aad4-566afd725d1b/2d206a39-8ed7-437e-a3be-862e0f06eea3/p.js) * [www.overstock.com](https://www.overstock.com/149e9513-01fa-4fb0-aad4-566afd725d1b/2d206a39-8ed7-437e-a3be-862e0f06eea3/p.js) * [auth.flybuys.com.au](https://auth.flybuys.com.au/149e9513-01fa-4fb0-aad4-566afd725d1b/2d206a39-8ed7-437e-a3be-862e0f06eea3/p.js) * [www.crocs.com](https://www.crocs.com/149e9513-01fa-4fb0-aad4-566afd725d1b/2d206a39-8ed7-437e-a3be-862e0f06eea3/p.js) / [www.crocs.ca](https://www.crocs.ca/149e9513-01fa-4fb0-aad4-566afd725d1b/2d206a39-8ed7-437e-a3be-862e0f06eea3/p.js) / [www.crocs.co.uk](https://www.crocs.co.uk/149e9513-01fa-4fb0-aad4-566afd725d1b/2d206a39-8ed7-437e-a3be-862e0f06eea3/p.js) * [portalapi.eu.clearpay.co.uk](https://portalapi.eu.clearpay.co.uk/149e9513-01fa-4fb0-aad4-566afd725d1b/2d206a39-8ed7-437e-a3be-862e0f06eea3/p.js) * [portalapi.us.afterpay.com](https://portalapi.us.afterpay.com/149e9513-01fa-4fb0-aad4-566afd725d1b/2d206a39-8ed7-437e-a3be-862e0f06eea3/p.js) * [portalapi.afterpay.com](https://portalapi.afterpay.com/149e9513-01fa-4fb0-aad4-566afd725d1b/2d206a39-8ed7-437e-a3be-862e0f06eea3/p.js) * [mobileapi.us.afterpay.com](https://mobileapi.us.afterpay.com/149e9513-01fa-4fb0-aad4-566afd725d1b/2d206a39-8ed7-437e-a3be-862e0f06eea3/p.js) * [arcteryx.com](https://arcteryx.com/149e9513-01fa-4fb0-aad4-566afd725d1b/2d206a39-8ed7-437e-a3be-862e0f06eea3/p.js) * [api.crowdgen.com](https://api.crowdgen.com/149e9513-01fa-4fb0-aad4-566afd725d1b/2d206a39-8ed7-437e-a3be-862e0f06eea3/p.js) * [www.wards.com](https://www.wards.com/149e9513-01fa-4fb0-aad4-566afd725d1b/2d206a39-8ed7-437e-a3be-862e0f06eea3/p.js) * [signin.costco.com](https://signin.costco.com/149e9513-01fa-4fb0-aad4-566afd725d1b/2d206a39-8ed7-437e-a3be-862e0f06eea3/p.js) * [api.on.pointsbet.com](https://api.on.pointsbet.com/149e9513-01fa-4fb0-aad4-566afd725d1b/2d206a39-8ed7-437e-a3be-862e0f06eea3/p.js) * [flatmates.com.au](https://flatmates.com.au/149e9513-01fa-4fb0-aad4-566afd725d1b/2d206a39-8ed7-437e-a3be-862e0f06eea3/p.js) * [services.chipotle.com](https://services.chipotle.com/149e9513-01fa-4fb0-aad4-566afd725d1b/2d206a39-8ed7-437e-a3be-862e0f06eea3/p.js) * [www.chewy.com](https://www.chewy.com/149e9513-01fa-4fb0-aad4-566afd725d1b/2d206a39-8ed7-437e-a3be-862e0f06eea3/p.js) * [platform.parallel.ai](https://platform.parallel.ai/149e9513-01fa-4fb0-aad4-566afd725d1b/2d206a39-8ed7-437e-a3be-862e0f06eea3/p.js) * [console.groq.com](https://console.groq.com/149e9513-01fa-4fb0-aad4-566afd725d1b/2d206a39-8ed7-437e-a3be-862e0f06eea3/p.js) ## Create Task​ Create the task with the [createTask](https://apidocs.salamoonder.com/endpoint/createTask) endpoint, or use our [Software Development Kit ](https://apidocs.salamoonder.com/sdk/official)to make your integration process even easier! ### Task Structure | **Property** | **Type** | **Required** | | ------------ | :------: | :----------: | | `type` | String | True | | `pjs` | String | True | | `cdOnly` | String | True | ### **Example Request** ```json theme={null} POST https://salamoonder.com/api/createTask Host: salamoonder.com Content-Type: application/json { "api_key": "YOUR_API_KEY", "task": { "type": "KasadaCaptchaSolver", "pjs": "https://www.nike.com/.../.../p.js", "cdOnly": "false" } } ``` Upon successfully submitting the task to us, you should receive a 'taskId' in the response. ### Example Response ```json theme={null} { "error_code": 0, "error_description": "", "taskId": "d4611a5f-9b4e-4f4a-94a2-8303d97562e1" } ``` **Response Fields:** * `taskId` - Unique identifier for this task. Use this to retrieve results. ## **Getting Results** Retrieve the results using the [getTaskResult ](https://apidocs.salamoonder.com/api/gettaskresult-task-result)method. or use our [Software Development Kit ](https://apidocs.salamoonder.com/sdk/official)to make your integration process even easier! ### **Example Request** ```json theme={null} POST https://salamoonder.com/api/getTaskResult Host: salamoonder.com Content-Type: application/json { "api_key": "YOUR_API_KEY", "taskId": "d4611a5f-9b4e-4f4a-94a2-8303d97562e1" } ``` ### Example Response Make sure to not pass kpsdk-v to the protected endpoint for the best results! ```json theme={null} { "errorId": 0, "solution": { "x-kpsdk-cd": "{\"workTime\":1765212789082,\"id\"...", "x-kpsdk-ct": "02ZDV4Wf8UnQrrkylUAizpCB8ASqkRLkm6...", "x-kpsdk-st": "1765212777507", "x-kpsdk-r": "1-BwVtcmY", "x-kpsdk-cr": "true", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win6..." }, "status": "ready" } ``` **Response Fields:** * `x-kpsdk-*` - Ready-to-use Kasada header values for submission. * `user-agent` - User-Agent that was used to make this token ## Quick Start Example We have examples for all our tasks to streamline integration. Feel free to check them out! All our Kasada Examples can be found here! # Integrity Source: https://apidocs.salamoonder.com/tasks/twitch/integrity Each request in this task is priced at only €0.003. This helper task creates an Integrity token for Twitch actions like following, subscribing, or sending bits. You can also do this with our [Kasada](https://apidocs.salamoonder.com/tasks/kasada) task, this just makes it easier. ## Create Task​ Create the task with the [createTask](https://apidocs.salamoonder.com/endpoint/createTask) endpoint, or use our [Software Development Kit ](https://apidocs.salamoonder.com/sdk/official)to make your integration process even easier! ### Task Structure | **Property** | **Type** | **Required** | | :------------- | :------: | :----------: | | `access_token` | String | Yes | | `device_id` | String | No | | `client_id` | String | No | ### **Example Request** ```json theme={null} POST https://salamoonder.com/api/createTask Host: salamoonder.com Content-Type: application/json { "api_key": "YOUR_API_KEY", "task": { "type": "Twitch_PublicIntegrity", "access_token": "your_twitch_account_oauth", //"device_id": "K3sKKpQhYQwymZFP6zIcu5LCOxyT24", //"client_id": "kimne78kx3ncx6brgo4mv6wki5h1ko" } } ``` Upon successfully submitting the task to us, you should receive a 'taskId' in the response. ### Example Response ```json theme={null} { "error_code": 0, "error_description": "", "taskId": "d4611a5f-9b4e-4f4a-94a2-8303d97562e1" } ``` **Response Fields:** * `taskId` - Unique identifier for this task. Use this to retrieve results. ## **Getting Results** Retrieve the results using the [getTaskResult ](https://apidocs.salamoonder.com/api/gettaskresult-task-result)method. or use our [Software Development Kit ](https://apidocs.salamoonder.com/sdk/official)to make your integration process even easier! ### **Example Request** ```json theme={null} POST https://salamoonder.com/api/getTaskResult Host: salamoonder.com Content-Type: application/json { "api_key": "YOUR_API_KEY", "taskId": "d4611a5f-9b4e-4f4a-94a2-8303d97562e1" } ``` ### Example Response ```json theme={null} { "errorId":0, "solution":{ "device-id":"ba478854e9d42411....", "integrity-token":"v4.local.IvusFCEJ6-Srca31_dOMU6WnJRLFy7P-rH_4..", "expiration":"1763692850412", "user-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleW..", "client-id":"kimne78kx3ncx6brgo4mv6wki5h1ko" }, "status":"ready" } ``` **Response Fields:** * `device-id` - Device identifier used for this task * `integrity-token` - Ready-to-use Twitch integrity token for authentication * `expiration` - Whenever the token will expire. * `user-agent` - User-agent that was used to generate the token * `client-id` - Client ID used for this request ## Quick Start Example Because this is a helper function, there is no official example available, but we do include quick start code in Python. ```python theme={null} import requests import json import time API_KEY = "YOUR_API_KEY" BASE_URL = "https://salamoonder.com/api" ACCESS_TOKEN = "" # Step 1: Create task task_data = { "api_key": API_KEY, "task": { "type": "Twitch_PublicIntegrity", "access_token": ACCESS_TOKEN, #"device_id": "your_device_id", #"client_id": "your_client_id" } } response = requests.post(f"{BASE_URL}/createTask", json=task_data) task_id = response.json()["taskId"] print(f"Task created: {task_id}") # Step 2: Poll for results while True: result_data = { "api_key": API_KEY, "taskId": task_id } response = requests.post(f"{BASE_URL}/getTaskResult", json=result_data) result = response.json() if result["status"] == "ready": token = result["solution"]["integrity-token"] user_agent = result["solution"]["user-agent"] print(f"Integrity Token: {token}") print(f"User-Agent: {user_agent}") break time.sleep(2) ```