API
For every interaction an API Key is needed (UTF-8 encoding). See also API management.In the future JSON is going to be the only the output used for simplicity's sake, if available for the respective function. The required GET- and POST-requests work basically identically for all programming languages and tools.
The best way to test the system is to simply try it out, if necessary using sandbox options (selfsolve + selfonly).
For any questions do not hesitate to contact the support.
Functions
Servercheck
These requests allow you to receive information about the workload of the server and other data. These data is refreshed every few seconds.As a CSV-file with the separator "|" (String):
https://www.9kw.eu/grafik/servercheck.txt
Response as text: (example)
https://www.9kw.eu/grafik/servercheck.json
Response as a JSON-file: (example)
Name | Description |
---|---|
newuser24h | New sign-ups during the last 24 hours |
serverdate | Date of the server as a UNIX-timestamp |
avgsec, avgsec5m, avgsec15m, avgsec1h, avgsec24h | Average solve time during the last 5 min, 15 min, 1 h, 24 h, from when the captcha has been handed over to a solver to when it has been solved. |
allavgsec, allavgsec5m, allavgsec15m, allavgsec1h, allavgsec24h | Complete average solve time during the last 5 min, 15 min, 1 h, 24h, from when the process has been captured by the system. |
useronline | current amount of signed in users. Mostly identical with the solvers ("worker"). |
worker | currently active solvers |
workeraudio | Like "worker" but limited to audio processes. |
workerconfirm | Like "worker" but limited to confirm processes. |
workerinteractive | Like "worker" but limited to interactive processes. |
workermouse | Like "worker" but limited to simple clicking processes. |
workermultimouse | Like "worker" but limited to dynamic clicking processes. |
workerpuzzle | Like "worker" but limited to puzzle processes. |
workerrotate | Like "worker" but limited to rotate processes. |
workertext | Like "worker" but limited to image processes. |
workertextonly | Like "worker" but limited to text-only processes. |
inwork | These processes are currently worked on an have been assigned to a solver. |
inworkaudio | Like "inwork" but limited to audio processes. |
inworkconfirm | Like "inwork" but limited to confirm processes. |
inworkinteractive | Like "inwork" but limited to interactive processes. |
inworkmouse | Like "inwork" but limited to simple clicking processes. |
inworkmultimouse | Like "inwork" but limited to dynamic clicking processes. |
inworkpuzzle | Like "inwork" but limited to puzzle processes. |
inworkrotate | Like "inwork" but limited to rotate processes. |
inworktext | Like "inwork" but limited to image processes. |
inworktextonly | Like "inwork" but limited to text-only processes. |
queue | Queue of processes waiting to be solved. |
queue1 | Queue of processes waiting to be solved with the maximum timeout set to less than 299 seconds. |
queue2 | Queue of processes waiting to be solved with the maximum timeout set to more than 299 seconds. |
queueaudio | Like "queue" but limited to audio processes. |
queueconfirm | Like "queue" but limited to confirm processes. |
queueinteractive | Like "queue" but limited to interactive processes. |
queuemouse | Like "queue" but limited to clicking processes. |
queuemultimouse | Like "queue" but limited to dynamic clicking processes. |
queuepuzzle | Like "queue" but limited to puzzle processes. |
queuerotate | Like "queue" but limited to rotate processes. |
queuetext | Like "queue" but limited to image processes. |
queuetextonly | Like "queue" but limited to text-only processes. |
ninekwclientversion | Current version of the 9kw.eu client |
Error codes
Error code | Description | Action |
---|---|---|
0001 API key doesn't exist | No key matching the syntax has been found at all. | Create an API key using the API settings and use it. |
0002 API key not found | No matching key has been found. | Create or verify your API key using the API settings and use it. |
0003 Active API key not found | No active key has been found. | Check for an active key using the API settings and use it. |
0004 API key deactivated by owner | The key used has been deactivated by the project owner. | Create or activate the key using the API settings or contact the support. |
0005 No user found | No matching account has been found. | Verify your credentials like API key using the API settings. |
0006 No data found | No matching data has been found. | Verify the basic method of data transfer (e.g. POST-request). |
0007 No ID found | The ID can't be found in the database. | Check the ID. |
0008 No captcha found | No matching data at all has been found regarding the captcha. | Check the transmitted data. |
0009 No image found | No matching data regarding the captcha has been found. | Check the transmitted data (e.g. the picture). |
0010 Image size not allowed | The submitted filesize was either too big or too small. | Reduce the size of the submitted file (e.g. the picture) if it was several 100 kilobytes or increase it if the minimum of 100 bytes wasn't reached. |
0011 Balance insufficient | No matching balance of the desired amount was found. | Increase your balance by solving captchas or buying credits. |
0012 Already done | The process has been completed already. | Check whether the maximum time allowed has run out. |
0013 No answer found | No valid answer has been found. | Check whether a valid answer has been sent. |
0014 Captcha already answered | The captcha has been solved already. | Check whether the maximum time allowed has run out. |
0015 Captcha submitted too quickly | Too many captchas have been submitted in too little time. See FAQ #22 | Allow atleast 250 ms between requests and all other values. Try submitting no more than one captcha per second (or minute). |
0016 JD Check active | An (old) option for JDownloader 1 only (NOT 2)! | Disable or adjust the check under advanced settings. |
0017 Unknown problem | There has been an unusual problem or the safety precautions were triggered before the specific cause has been identified. | Use the API documentation and stick to it. Alternatively contact the support using the ticket system. |
0018 No ID found | No valid process has been found. | Ensure that the submitted ID is complete and valid. |
0019 Incorrect answer | The solution detected is invalid or incomplete. | Submit a valid solution during the available time frame. |
0020 Not filed on time (wrong UserID) | The maximum time allowed has run out and the process has been assigned to another user. | Stick to the time limits in the future. |
0021 Link not allowed | The submitted data set contained a forbidden link. | Change the link or replace it with ordinary text data. |
0022 Submit denied | Submission was prohibited by the user. | Check the API settings and adjust them. |
0023 Solve denied | Solving was denied by the user. | Check the API settings and adjust them. |
0024 Not enough credits | There were no sufficient funds. | Increase your balance by solving captchas or buying credits. |
0025 No input found | No submitted input has been found. | Submit valid input to the system. |
0026 No conditions accepted | The conditions have not been accepted. | Accept the conditions. |
0027 No coupon code in the database found | No valid coupon code has been found in the database. | Use or create a valid coupon code using the coupon settings. |
0028 Already used coupon code | The coupon has been used already. | Redeem an unused coupon code or create one using the settings. |
0029 Maxtimeout under 60 seconds | The maximum timeout has been set to a value lower than the minimum of 60 seconds. | Set the timeout to 60 seconds or higher. |
0030 User not found | The user hasn't been found in the system. | Check whether the given user or API key actually exist. |
0031 An account is not yet 24 hours in our system | The desired function can only be used after 24 hours after signing up for security reasons. | Try again after 24 hours. |
0032 An account does not have the full rights | The affected user doesn't have the full rights either temporarily or permanently. | Try again the next day if there is no message from support. If the problem persists contact the support using the ticket system. |
0033 Plugin needed a update | The software or the plugin used isn't up to date. | Update the software or plugin to the current version. |
0034 No HTTPS allowed | The user prohibited encrypted connections using HTTPS. | Check and adjust the HTTPS setting using the API settings. |
0035 No HTTP allowed | The user prohibited unencrypted connections using HTTP. | Check and adjust the HTTP setting using the API settings. |
0036 Source not allowed | The indication of source has been prohibited by the user. | Check the settings under API settings and adjust them as necessary. |
0037 Transfer denied | Transfer of credits has been prohibited by the user. | Check the permissions using the API settings and allow the transfer of credits. |
0038 Incorrect answer without space | The submitted solution didn't include spaces. In this case the answer usually consists of multiple words. | Submit the solution inlcuding spaces. In this case several words are usually necessary. |
0039 Incorrect answer with space | The submitted solution included spaces. | Submit the solution without any spaces. |
0040 Incorrect answer with not only numbers | The submitted solution included more than just numbers. | Submit the solution using only numbers. |
0041 Incorrect answer with not only A-Z, a-z | The submitted solution included more than just A-Z, a-z. | Submit a solution using only the proper characters. |
0042 Incorrect answer with not only 0-9, A-Z, a-z | The submitted solution included more than just 0-9, A-Z, a-z. | Submit a solution using only the proper characters. |
0043 Incorrect answer with not only [0-9,- ] | The submitted solution included more than just 0-9, -. | Submit a solution using only the proper characters. |
0044 Incorrect answer with not only [0-9A-Za-z,- ] | The submitted solution included more than just 0-9, A-Z, a-z, -. | Submit a solution using only the proper characters. |
0045 Incorrect answer with not only coordinates | The submitted solution included more than just coordinates. | Submit a solution using only coordinates. |
0046 Incorrect answer with not only multiple coordinates | The submitted solution included more than one or more coordinates. | Submit a solution using only coordinates. |
0047 Incorrect answer with not only data | The submitted solution included more than just data. | Submit a solution using only the correct data. |
0048 Incorrect answer with not only rotate number | The submitted answer didn't include a valid solution. | Submit a valid solution. |
0049 Incorrect answer with not only text | The submitted solution included more than just text. | Submit a solution including only text. |
0050 Incorrect answer with not only text and too short | The submitted solution included more than just text and was too short. | Submit a solution of sufficient length including only text. |
0051 Incorrect answer with not enough chars | The submitted solution does not satisfy the required character length. | Submit a solution with sufficient character length and appropriate characters. |
0052 Incorrect answer with too many chars | The submitted solution contained too many characters. | Submit a shorter solution. |
0053 Incorrect answer without no or yes | The submitted solution included more than just "no" or "yes". | Only submit the appropriate solution. |
0054 Assignment was not found. | The assignment hasn't been found. | Check for the correct values of submitted data and comply with the set time frames. |
0055 IP not allowed. | The IP used or transmitted hasn't been allowed. | Look up the IP used in the list of permitted IPs. Contact the support using the ticket system if the problem persists and no IP list is used. |
0056 Limit reached | A set limit has been reached. | Don't submit requests to the server more than once every 250 ms. Check if individual functions could have stricter limitations. See also request limits for further information. |
0057 Maxtimeout under 75 seconds | The maximum timeout has been set to a value lower than the minimum of 75 seconds without registered email. | Set the timeout to 75 seconds or higher. |
Autoit
(Autoit, AutoIt Script Editor)Download (autoit_9kw.zip)
C
(ANSI C)Download (c_api.zip)
C++
Download (cpp_api.zip)C# (csharp)
Download (cs_api.zip)Delphi (XE2)
Download (delphi_api.zip)iMacros
9kweu.iim, 9kweu_confident.iim, 9kweu_recaptcha_v2.zip, 9kweu_funcaptcha.zip, 9kweu_puzzle.zip, 9kweu_media.zip, 9kweu_examples.zipJava
Download (java_api.zip)oder j9kwsolver
JavaScript
Mit Mouse-Support im BeispielDownload (js_api.zip)
Lua
Download (lua_api.zip)Perl 5
Download (perl_api.zip)PHP
Download (php_api.zip)Powershell
Download (ps_api.zip)PureBasic 5
Download (pb_api.zip)Python
Download (python_api.zip)or py9kw
Ruby
Download (ruby_api.zip)Tcl
Download (tcl_api.zip)VB .Net
Download (vbnet_api.zip)Receiving captchas
This function is used to receive valid and as of yet unsolved captchas.Usually 30 seconds are allowed to solve a normal captcha.
In special cases like interactive captchas up to 120 seconds are possible.
The system transmits the appropriate settings which can also be requested using the option.
GET REQUEST https://www.9kw.eu/index.cgi
Parameter | Type | Required | Description |
---|---|---|---|
action | String | Yes | usercaptchanew - Notifies the system that the user wants to receive captchas to solve. |
source | String | No | Indicates the tool name of the software used (e.g. 9kwclient) Max. 30 chars |
text | String | No |
yes - activated (default) no - deactivated Indicates that the user wishes to receive normal captchas (enter a text displayed as an image). Also commonly referred to as image captchas. |
mouse | Integer | No |
0 - deactivated (Default) 1 - activated Also requests mouse captchas to be solved with a single click. Also commonly referred to as mouse or click captchas. |
multimouse | Integer | No |
0 - deactivated (Default) 1 - activated Also requests mouse captchas to be solved with one or multiple clicks. Also commonly referred to as mouse or click captchas. |
rotate | Integer | No |
0 - deactivated (Default) 1 - activated Requests rotate captchas, i.e. captchas that are solved by being rotated by a certain angle or have to be displayed that way. |
puzzle | Integer | No |
0 - deactivated (Default) 1 - activated Requests puzzle captchas from the system. A larger image to be completed by dragging smaller images using the mouse. The appropriate coordinates will be transmitted as the result. |
audio | Integer | No |
0 - deactivated (Default) 1 - activated Enables audio captchas using audible sounds. (e.g. OGG, MP3, WAV) |
interactive | Integer, String | No |
0 - deactivated (Default) 1 - activated (or use a string) Also requests interactive captchas. Optionally you may also only request certain types of interactive captchas. Multiple inputs have to be separated by commas without any spaces inbetween. Variants: recaptchav2, recaptchav3, funcaptcha, keycaptcha, geetest, hcaptcha, cutcaptcha As a developer of a software you must follow very specific guidelines. Usually a local client/server environment or similar is needed for the implementation. That means that the display of a process (e.g. a captcha) has to be implemented using HTML code. The respective domain has to be retrieved by the browser engine used in an internal process, emulated if necessary, to hold up to a JavaScript verification of the domain. If a proxy is specified all requests (except captcha and captcha service) have to be routed over it. The following is an example for the HTML code for ReCaptcha v2: The solution is now being sent to the local server (127.0.0.1) and port 12345. "SITEKEY" has to be replaced by the particular code transmitted by the system. When sending the form data the server environment has to receive the desired solution. Several methods are described in the support section which simply have to be used reversed. This is implemented comparably for the so called Funcaptcha but with an interval using Javascript. For Keycaptcha the value received has to be separated with the divider ";" as shown in the Javascript/iMacros example. ReCaptcha v3 generates a value between 0.1 and 0.9 according to the detected degree of "human" interaction. For values below 0.5 there is a high probability of it being a bot. The final decision lies with the site operator alone. For this reason potential incorrect solutions will only be refunded under certain circumstances by the support. |
textonly | Integer | No |
0 - deactivated (Default) 1 - activated Also requests captchas with text only but no other pictures or interactive elements. |
extended | Integer | No |
0 - deactivated (Default) 1 - activated Additional data will be transmitted, especially when not using JSON. These settings might be necessary without JSON to receive ideal input from the solver or verify it. |
withok | Integer | No |
0 - deactivated (Default) 1 - activated The receival of data has to be reported. Otherwise the data will remain unchanged until it either times out or the report is sent and will also remain like that for new requests. |
speed | Integer | No |
0 - deactivated (Default) 1 - activated This option may be used to receive captchas faster. This way the system assigns new processes shortly after fetching the data if possible. If there are too many timeouts, the requested number should be reduced. |
speedlevel | Integer | No |
0 - Level 0 1 - Level 1 2 - Level 2 3 - Level 3 4 - Level 4 5 - Level 5 For each level one additional process is provided, if possible. If there are too many timeouts, the requested number should be reduced. |
filedata | Integer | No |
0 - deactivated (Default) 1 - activated The files will be integrated as Base64 with JSON. Reduces the overhead and the requests to the server as additional requests for the captcha data are no longer needed. |
moretimes | Integer | No |
0 - Max. 30 seconds (Default) 1 - Max. 60 seconds 2 - Max. 90 seconds 3 - Max. 120 seconds Extends the maximum timeout by multiples of 30 seconds up to a maximum of 120 second starting from the default value of 30 seconds. (1=60s,2=90s,3=120s) In return it has to be checked whether a user interaction takes place within 10 seconds, otherwise a stop or skip is to be initiated to immediately clear the process again. If processes regularly take more than 30 seconds without submitting a solution one will be excluded from using this function temporarily or permanently. |
confirm | Integer | No |
0 - deactivated (Default) 1 - activated Also requests captchas where the solution is to be reviewed by a human. |
selfsolve | Integer | No |
0 - deactivated (Default) 1 - activated Use this option to also receive captchas submitted by yourself. |
selfonly | Integer | No |
0 - deactivated (Default) 1 - activated Use this option to only receive captchas submitted by yourself. Supposed to be used in combination with "selfsolve". Usable as a short-term sandbox this way. |
nocaptcha | String | No |
0 - deactivated (Default) 1 - activated Generates an empty return instead of "NO CAPTCHA" if there is currently no captcha available to solve |
debug | Integer | No |
0 - deactivated (Default) 1 - activated Enables a testing environment to check the system without using a sandbox. It's limited. |
json | Integer | No | 0 - deactivates the output format JSON, only plain text as response (default) 1 - activates the output format JSON when returning data (response). |
apikey | String | Yes |
The access key necessary to be identified by the system. min. length: 5, max. length: 50, characters allowed: a-z, A-Z, 0-9 Available under API settings in your account. |
1. Response (string) in standard with Extended as an example:
- Mouse-/Click-Captcha:
- Confirm-Captcha:
2. Request with Extended as an example:
2. Response (string) in standard with Extended as an example:
3. Request with JSON as an example:
3. Response in JSON as an example
Confirm receipt of captchas
Only if the option "withok" was used.GET REQUEST https://www.9kw.eu/index.cgi
Parameter | Type | Required | Description |
---|---|---|---|
action | String | Yes | usercaptchanewok - Only usable in combination with usercaptchanew and withok set to 1. |
speed | Integer | No |
0 - deactivated (Default)
1 - activated Dient zum korrekten Abgleich in der Datenbank. |
speedlevel | Integer | No |
0 - Level 0 1 - Level 1 2 - Level 2 3 - Level 3 4 - Level 4 5 - Level 5 Dient zum korrekten Abgleich in der Datenbank. |
source | String | No | Indicates the tool name of the software used. Max. 30 chars |
json | Integer | No | 0 - deactivates the output format JSON, only plain text as response (default) 1 - activates the output format JSON when returning data (response). |
apikey | String | Yes |
The access key necessary to be identified by the system. min. length: 5, max. length: 50, characters allowed: a-z, A-Z, 0-9 Available under API settings in your account. |
Rückgabe (String) in Standard als Beispiel:
Rückgabe in JSON als Beispiel
Get captcha feedback
To get the status of the (self) solved captcha.GET REQUEST https://www.9kw.eu/index.cgi
Parameter | Type | Required | Description |
---|---|---|---|
action | String | Yes | usercaptchacorrectcheck - Defines that the option should be used. |
source | String | No | Indicates the tool name of the software used. Max. 30 chars |
id | Integer | Yes | CaptchaID This is the ID of the desired captcha to be given by your own account. |
archiv | Integer | No |
0 - deactivated (Default) 1 - activated After two hours a captcha will be moved to the archive. This option continues to be usable for a while in the archive. |
textonly | Integer | No |
0 - deactivated (Default) 1 - activated The status is only returned as text OK, NotOK or ?. |
notext | Integer | No |
0 - deactivated (Default) 1 - activated The status is only returned 1, 0 or ?. The variant "notext" is ignored with the active option "textonly". |
json | Integer | No | 0 - deactivates the output format JSON, only plain text as response (default) 1 - activates the output format JSON when returning data (response). |
apikey | String | Yes |
The access key necessary to be identified by the system. min. length: 5, max. length: 50, characters allowed: a-z, A-Z, 0-9 Available under API settings in your account. |
Response (String) in standard as an example:
Response in JSON as an example:
Show captcha
Receiving captcha data if not already transmitted. Usable with or without Base64 encoding.GET REQUEST https://www.9kw.eu/index.cgi
Parameter | Type | Required | Description |
---|---|---|---|
action | String | Yes | usercaptchashow - Defines that the option should be used. |
source | String | No | Indicates the tool name of the software used. Max. 30 chars |
id | Integer | Yes | CaptchaID This is the ID of the desired captcha to be given by your own account. |
nodraw | Integer | No |
0 - deactivated (Default) 1 - activated Submits the captcha including the solution drawn onto the image using a big red dot an guiding line. May only be used for so called click captchas with single or multiple mouse clicks. |
base64 | Integer | No |
0 - deactivated (default) 1 - activated The return will be encoded using Base64. |
debug | Integer | No |
0 - deactivated (Default) 1 - activated Enables a testing environment to check the system without using a sandbox. It's limited. |
json | Integer | No | 0 - deactivates the output format JSON, only plain text as response (default) 1 - activates the output format JSON when returning data (response). |
apikey | String | Yes |
The access key necessary to be identified by the system. min. length: 5, max. length: 50, characters allowed: a-z, A-Z, 0-9 Available under API settings in your account. |
https://www.9kw.eu/grafik/captchas/CaptchaID.txt
GET REQUEST without "Speed" with base64
https://www.9kw.eu/grafik/captchas/CaptchaID_base64.txt
Response: (without base64)
Image (Binary - Format gif, jpg oder png)
Response: (with base64)
File as Base64 (Binary in base64 - Format gif, jpg or png)
Skip captcha (Captcha skip)
Occasionally a captcha might be unsolvable because the time limit is too short for the interactive challenge or because an image is unreadable. This function is to be used only for actually unsolvable captchas. Misuse leads to a temporary or permanent exclusion of the user from this function.GET REQUEST https://www.9kw.eu/index.cgi
Parameter | Type | Required | Description |
---|---|---|---|
action | String | Yes | usercaptchaskip - Tells the system which function is to be used. |
source | String | No | Indicates the tool name of the software used. Max. 30 chars |
id | Integer | Yes | CaptchaID This is the ID of the desired captcha to be given by your own account. |
end | Integer | No |
0 - deactivated (default) 1 - activated Should be sent if the captcha is supposed to be the last process at the moment. |
speed | Integer | No |
0 - deactivated (default) 1 - activated Used for correct matching in our database. |
speedlevel | Integer | No |
0 - Level 0 1 - Level 1 2 - Level 2 3 - Level 3 4 - Level 4 5 - Level 5 Used for correct matching in our database. |
debug | Integer | No |
0 - deactivated (Default) 1 - activated Enables a testing environment to check the system without using a sandbox. It's limited. |
json | Integer | No | 0 - deactivates the output format JSON, only plain text as response (default) 1 - activates the output format JSON when returning data (response). |
apikey | String | Yes |
The access key necessary to be identified by the system. min. length: 5, max. length: 50, characters allowed: a-z, A-Z, 0-9 Available under API settings in your account. |
Request as an example with "Stop":
Response (String) in standard as an example:
Response in JSON as an example:
Submitting a solution for a captcha (captcha answer)
When a captcha has been solved the solution is supposed to be submitted to the captcha service. GET REQUEST https://www.9kw.eu/index.cgiParameter | Type | Required | Description |
---|---|---|---|
action | String | Yes | usercaptchacorrect - Defines that the option should be used. |
source | String | No | Indicates the tool name of the software used (e.g. 9kwclient) Max. 30 chars |
id | Integer | Yes | CaptchaID This is the ID of the desired captcha to be given by your own account. |
confirm | Integer | No | To be set when the captcha is a confirm captcha. |
captcha | String | Yes | ANSWER from captcha (solution) This field should contain the solution. Examples: - Text: 9xj3o1 - Mouse: 324x184 (Coordinates) - Multimouse: 68x149;81x192 - Puzzle: 301.05.165.11 - Rotate: 40 für Plus oder -40 für Minus - Interactive: Feld g-recaptcha-response als Beispiel für reCaptcha v2 - Confirm: "yes" for correct, "no" for incorrect. |
extended | Integer | No |
0 - deactivated (default) 1 - activated Returns the credits received as an information instead of a simple OK. |
speed | Integer | No |
0 - deactivated (default) 1 - activated Used for correct matching in our database. |
speedlevel | Integer | No |
0 - Level 0 1 - Level 1 2 - Level 2 3 - Level 3 4 - Level 4 5 - Level 5 Used for correct matching in the database. |
debug | Integer | No |
0 - deactivated (Default) 1 - activated Enables a testing environment to check the system without using a sandbox. It's limited. |
json | Integer | No | 0 - deactivates the output format JSON, only plain text as response (default) 1 - activates the output format JSON when returning data (response). |
apikey | String | Yes |
The access key necessary to be identified by the system. min. length: 5, max. length: 50, characters allowed: a-z, A-Z, 0-9 Available under API settings in your account. |
Response (String) in standard as an example:
Response (String) in standard with "Extended" as an example:
Request as an example with JSON:
Response in JSON as an example:
Submit captcha
Having a captcha solved by other users and receiving a solution in the optimal case.Note only as method POST and with the content type multipart/form-data!
POST REQUEST
Content-Type: multipart/form-data
https://www.9kw.eu/index.cgi
Parameter | Type | Required | Description |
---|---|---|---|
action | String | Yes | usercaptchaupload - Defines that the option should be used. |
file-upload-01 | String, Binary | Yes |
Data (contents) of the particular captcha. Sent as a file, base64 (without line breaks!) or simple string (e.g. interactive). For puzzles file-upload-02 to file-upload-08 are used additionally as needed. Animated images have to be submitted using the GIF format. For other images JPEG (JPG) or PNG are recommended. |
file-upload-02 | String, Binary | No | Only for the puzzle captcha for file 2. |
file-upload-03 | String, Binary | No | Only for the puzzle captcha for file 3. |
file-upload-04 | String, Binary | No | Only for the puzzle captcha for file 4. |
file-upload-05 | String, Binary | No | Only for the puzzle captcha for file 5. |
file-upload-06 | String, Binary | No | Only for the puzzle captcha for file 6. |
file-upload-07 | String, Binary | No | Only for the puzzle captcha for file 7. |
file-upload-08 | String, Binary | No | Only for the puzzle captcha for file 8. |
base64 | Integer | No |
0 - deactivated (Default) 1 - activated To be set if data is to be submitted using base64. |
math | Integer | No |
0 - deactivated (Default) 1 - activated To be used for captchas with maths problems. Ideally used in combination with "numeric" or "nospace" (see below). |
mouse | Integer | No |
0 - deactivated (Default) 1 - activated To be used for captchas requiring one click to be solved. |
multimouse | Integer | No |
0 - deactivated (Default) 1 - activated To be used for captchas requiring multiple clicks to be solved. |
rotate | Integer | No |
0 - deactivated (Default) 1 - activated To be used for captchas solved by rotating. "angle" may be used to specify the appropriate angle. |
angle | Integer | No | Can be used to specify an angle to speed up and improve the process of solving. If the value is highly inaccurate the captcha might be rendered unsolvable. |
puzzle | Integer | No |
0 - deactivated (Default) 1 - activated To be used for puzzle captchas, i.e. a larger image to be completed by dragging smaller images using the mouse. The appropriate coordinates will be transmitted as the solution. |
textonly | Integer | No |
0 - deactivated (Default) 1 - activated To be used for captchas consisting only of text without any images or interactive elements. |
interactive | Integer | No |
0 - deactivated (default) 1 - activated To be used when submitting interactive captchas. (e.g. reCaptcha v2/v3, keyCaptcha, FunCaptcha, hCaptcha, Geetest, cutcaptcha) |
case-sensitive | Integer | No |
0 - deactivated (Default) 1 - case sensitive 2 = case sensitive including symbols The captcha may be case sensitive and might contain symbols. This is to be considered. |
case-sensitive-pic | Integer | No |
0 - deactivated (Default) 1 - activated Information from case-sensitive is visually integrated. For images without animation only. |
textinstructions | String | No | Additional information regarding the captcha, preferably several sentences written in English and if necessary multilingual. E.g. that you are supposed to only click on the single open circle for a specific mouse captcha. |
rows | Integer | No | Specifies the number of rows for a captcha with tiles or images to be selected. Currently no longer in use. |
cols | Integer | No | Specifies the number of columns for a captcha with tiles or images to be selected. Currently no longer in use. |
previousid | Integer | No | To be used in case a captcha is linked to a previous captcha. |
confirm | Integer | No |
0 - deactivated (default) 1 - activated (costs +6 credits) The solution will be double checked by another human. This option will be ignored for interactive processes and when using a maximum timeout of less than 150s. |
checkanswer | String | No | Only with option "confirm" usable. Serves to check only one existing solution. Thus 10 points less are calculated. |
prio | Integer | No |
0 - deactivated (Default) 1 - activated (cost +1 credit) 1-20 - activated (costs +1-20 credits) 20 - activated in der maximalen Form (costs +20 credits) Increases the priority of the captcha in the system. This significantly increases the odds for a faster solution but it can't be guaranteed. Unsolved processes will be refunded later or not be charged. |
captchaperhour | Integer | No |
0 - deactivated (default) 1-9999 - activated Limits the maximum amount of captchas solved per hour temporarily. This value can be changed with every submission if needed. |
captchapermin | Integer | No |
0 - deactivated (default) 1-9999 - activated Limits the maximum amount of captchas solved per minute temporarily. This value can be changed with every submission if needed. |
nomd5 | Integer | No |
0 - deactivated 1 - activated (Default) Disables or enables the check for duplicate captchas for open processes. By default duplicate captchas are prevented if possible. Useful for testing purposes and in case many identical image captchas might occur. |
maxtimeout | Integer | No |
600 - default (60 to 3999 seconds usable) Maximum life span of a process (captcha) in the system. A process will be regarded as ultimately unsolved after its expiration and will be either not charged or refunded afterwards. Note: The value must be over 75 seconds without registered email. |
selfsolve | Integer | No |
0 - deactivated (default) 1 - activated Activates the sandbox for a single process. This enables the user to solve the captcha himself. |
ocr | Integer | No |
0 - deactivated (default) 1 - activated Intended for future automatic recognition. This option is currently not supported and will be ignored. |
source | String | No | Indicates the tool name of the software used. Max. 30 chars |
oldsource | String | No |
Specifies additional information like the source (e.g. domain.tld). Max. 30 characters. In conjunction with interactive captchas, the field should be filled in with the captcha type. (e.g. recaptchav2, recaptchav3, funcaptcha, geetest, hcaptcha, keycaptcha) |
pageurl | String | No | Sometimes required for interactive captchas. Usually the source URL is stated as domain.tld, if necessary with http/https and path/filename. Max. 200 characters. |
cookies | String | No | Specification of the cookies if needed. |
useragent | String | No | Indicates the browser identification if needed. This should ideally match the user agent of the browser or software used. Only sensible if used with interactive captchas. Max. 200 characters. |
proxy | String | No | Useful if the IP needs to be identical for the captcha. There will be a function check so the [IPv4] or [IPv6] has to be open or the process is going to be refused or executed without the proxy. Currently only proxies with socks5 or http(s) are accepted. Syntax: host:port. |
proxytype | String | No |
socks5 (default) https The type of the proxy should be specified if the option "proxy" is to be used. |
nospace | Integer | No |
0 - deactivated (default) 1 - activated The solution must not include any spaces. |
phrase | Integer | No |
0 - deactivated (default) 1 - activated The solution has to include two or more words or strings. The option "nospace" will be ignored if used simultaneously. |
numeric | Integer | No |
0 - deactivated (default) 1 - 0-9 2 - A-Z+a-z 3 - 0-9+A-Z+a-z 4 - 0-9 and comma/space/hyphen 5 - 0-9+A-Z+a-z and comma/space/hyphen Only captchas with specific characters |
min_len | Integer | No | Minimum length of the solution from 1 to 20. |
max_len | Integer | No | Maximum length of the solution from 1 to 99. |
debug | Integer | No |
0 - deactivated (default) 1 - activated Enables a testing environment to check the system without using a sandbox. It's limited. |
json | Integer | No | 0 - deactivates the output format JSON, only plain text as response (default) 1 - activates the output format JSON when returning data (response). |
apikey | String | Yes |
The access key necessary to be identified by the system. min. length: 5, max. length: 50, characters allowed: a-z, A-Z, 0-9 Available under API settings in your account. |
Einfaches HTML-Musterformular mit Base64:
Einfaches HTML-Musterformular mit Sitekey (e.g. reCaptcha v2):
Rückgabe in Standard als Beispiel:
Rückgabe in JSON als Beispiel
Receive captcha data (solution)
The first request should take place after at least 5-10 seconds. If no sufficient data is available at this time further requests should be made every few seconds.GET REQUEST https://www.9kw.eu/index.cgi
Parameter | Type | Required | Description |
---|---|---|---|
action | String | Yes | usercaptchacorrectdata - Defines that the option should be used. |
source | String | No | Indicates the tool name of the software used. Max. 30 chars |
id | Integer | Yes | NewCaptchaID Specification of the captcha ID regarding the data. |
info | Integer | No |
0 - deactivated (Default) 1 - activated "NO DATA" is returned instead of an empty return. Not applicable with the "json" option. |
entities | Integer | No |
0 - deactivated (Default) 1 - activated For HTML entities in the return. Not applicable with the "json" option. |
archiv | Integer | No |
0 - deactivated (Default) 1 - activated After two hours a captcha will be moved to the archive. This option continues to be usable for a while in the archive. |
debug | Integer | No |
0 - deactivated (Default) 1 - activated Enables a testing environment to check the system without using a sandbox. It's limited. |
json | Integer | No | 0 - deactivates the output format JSON, only plain text as response (default) 1 - activates the output format JSON when returning data (response). |
apikey | String | Yes |
The access key necessary to be identified by the system. min. length: 5, max. length: 50, characters allowed: a-z, A-Z, 0-9 Available under API settings in your account. |
Response (String) in standard as an example:
Request as an example with JSON:
Response in JSON as an example:
Captcha correct (Captcha Feedback)
Send captcha feedback. Ideally feedback is sent in case of success or failure.GET REQUEST https://www.9kw.eu/index.cgi
Parameter | Type | Required | Description |
---|---|---|---|
action | String | Yes | usercaptchacorrectback - Defines that feedback is to be set for the respective captcha. |
source | String | No | Indicates the tool name of the software used. Max. 30 chars |
correct | Integer | Yes |
1 - OK for a working solution 2 - NotOK for an incorrect solution 3 - Unused Determines the feedback from the captcha Important: try not to report correctly solved captchas as incorrect. Reverse from NotOK to OK can be reported later! |
id | Integer | Yes | NewCaptchaID Specification of the captcha ID regarding the feedback. |
archiv | Integer | No |
0 - deactivated (Default) 1 - activated After two hours a captcha will be moved to the archive. This option continues to be usable for a while in the archive. |
debug | Integer | No |
0 - deactivated (Default) 1 - activated Enables a testing environment to check the system without using a sandbox. It's limited. |
json | Integer | No | 0 - deactivates the output format JSON, only plain text as response (default) 1 - activates the output format JSON when returning data (response). |
apikey | String | Yes |
The access key necessary to be identified by the system. min. length: 5, max. length: 50, characters allowed: a-z, A-Z, 0-9 Available under API settings in your account. |
Response (String) in standard as an example:
Request as an example with JSON:
Response in JSON as an example:
Captcha history (submitted)
Captchas submitted by the user to the captcha service.GET REQUEST https://www.9kw.eu/index.cgi
Parameter | Type | Required | Description |
---|---|---|---|
action | String | Yes | userhistory - Defines that the option should be used. |
source | String | No | Indicates the tool name of the software used (e.g. phpapi) from the submitter. Max. 30 chars |
correctsource | String | No | Indicates the tool name of the software used (e.g. 9kwclient) from the solver. Max. 30 chars |
archiv | Integer | No | 0 - deactivated (Default) 1 - activated Grants access to your captcha archive. |
filter | String | No | ok - Only entries with OK notok - Only entries with NotOK both - Only entries with OK or NotOK other - Only entries without OK or NotOK Activates automatically when in use. |
short | Integer | No | Generates a result with little data. Without line 3+ |
page | Integer | No | Desired page number |
onlyapikey | Integer | No | 0 - deactivated (Default) 1 - activated Searches the result only for the API key used. |
json | Integer | No | 0 - deactivates the output format JSON, only plain text as response (default) 1 - activates the output format JSON when returning data (response). |
apikey | String | Yes |
The access key necessary to be identified by the system. min. length: 5, max. length: 50, characters allowed: a-z, A-Z, 0-9 Available under API settings in your account. |
Response (String) in standard as an example:
Separator: Pipe => |
Line 1: count
Line 2: columns names
Line 3+: columns data
Request as an example with JSON:
Response in JSON as an example:
Captcha history (solved)
Captchas solved by the user via the captcha service.GET REQUEST https://www.9kw.eu/index.cgi
Parameter | Type | Required | Description |
---|---|---|---|
action | String | Yes | userhistory2 - Defines that the option should be used. |
source | String | No | Indicates the tool name of the software used (e.g. phpapi) from the submitter. Max. 30 chars |
correctsource | String | No | Indicates the tool name of the software used (e.g. 9kwclient) from the solver. Max. 30 chars |
archiv | Integer | No | 0 - deactivated (Default) 1 - activated Grants access to your captcha archive. |
filter | String | No | ok - Only entries with OK notok - Only entries with NotOK both - Only entries with OK or NotOK other - Only entries without OK or NotOK Activates automatically when in use. |
confirm | Integer | No | 0 - deactivated (Default) 1 - activated Only confirm captchas. |
short | Integer | No | Generates a result with little data. Without line 3+ |
page | Integer | No | Desired page number |
onlyapikey | Integer | No | 0 - deactivated (Default) 1 - activated Searches the result only for the API key used. |
json | Integer | No | 0 - deactivates the output format JSON, only plain text as response (default) 1 - activates the output format JSON when returning data (response). |
apikey | String | Yes |
The access key necessary to be identified by the system. min. length: 5, max. length: 50, characters allowed: a-z, A-Z, 0-9 Available under API settings in your account. |
Response (String) in standard as an example:
Separator: Pipe => |
Line 1: count
Line 2: columns names
Line 3+: columns data
Request as an example with JSON:
Response in JSON as an example:
Captcha history (falsch)
A list of wrong or incorrect captchas in association with your own account.GET REQUEST https://www.9kw.eu/index.cgi
Parameter | Type | Required | Description |
---|---|---|---|
action | String | Yes | userhistory3 - Defines that the option should be used. |
archiv | Integer | No | 0 - deactivated (Default) 1 - activated Grants access to your captcha archive. |
short | Integer | No | Generates a result with little data. Without line 3+ |
page | Integer | No | Desired page number |
onlyapikey | Integer | No | 0 - deactivated (Default) 1 - activated Searches the result only for the API key used. |
json | Integer | No | 0 - deactivates the output format JSON, only plain text as response (default) 1 - activates the output format JSON when returning data (response). |
apikey | String | Yes |
The access key necessary to be identified by the system. min. length: 5, max. length: 50, characters allowed: a-z, A-Z, 0-9 Available under API settings in your account. |
Response (String) in standard as an example:
Separator: Pipe => |
Line 1: count
Line 2: columns names
Line 3+: columns data
Request as an example with JSON:
Response in JSON as an example:
Captcha history detail
Get details about a submitted captcha.GET REQUEST https://www.9kw.eu/index.cgi
Parameter | Type | Required | Description |
---|---|---|---|
action | String | Yes | userhistorydetail - Defines that the option should be used. |
id | Integer | Yes | CaptchaID - The ID number of the desired Captcha data submitted. |
archiv | Integer | No | 0 - deactivated (Default) 1 - activated Grants access to your captcha archive. |
source | String | No | Indicates the tool name of the software used (e.g. 9kwclient) Max. 30 chars |
short | Integer | No | Generates a result with little data. Without line 3+ |
json | Integer | No | 0 - deactivates the output format JSON, only plain text as response (default) 1 - activates the output format JSON when returning data (response). |
apikey | String | Yes |
The access key necessary to be identified by the system. min. length: 5, max. length: 50, characters allowed: a-z, A-Z, 0-9 Available under API settings in your account. |
Response (String) in standard as an example:
Separator: Pipe => |
Line 1: columns names
Line 2: columns data
Line 3+
<-- NEXT1 -->Allocation of system<-- NEXT1 -->
<-- NEXT2 -->Allocation to users<-- NEXT2 -->
<-- NEXT3 -->Skip<-- NEXT3 -->
<-- NEXT4 -->Answers<-- NEXT4 -->
<-- NEXT5 -->Confirm<-- NEXT5 -->
structure:
Blockbegin
COLUMNS NAMES (1 Line)
COLUMNS DATA
Blockend
Request as an example with JSON:
Response in JSON as an example:
Balance query
Returns the number of available credits as information.GET REQUEST https://www.9kw.eu/index.cgi
Parameter | Type | Required | Description |
---|---|---|---|
action | String | Yes | usercaptchaguthaben - Defines that the option should be used. |
json | Integer | No | 0 - deactivates the output format JSON, only plain text as response (default) 1 - activates the output format JSON when returning data (response). |
apikey | String | Yes |
The access key necessary to be identified by the system. min. length: 5, max. length: 50, characters allowed: a-z, A-Z, 0-9 Available under API settings in your account. |
Response in standard as an example:
Request as an example with JSON:
Response in JSON as an example:
Query the settings (Userconfig)
GET REQUEST https://www.9kw.eu/index.cgiParameter | Type | Required | Description |
---|---|---|---|
action | String | Yes | userconfig - Defines that the option should be used. |
json | Integer | No | 0 - deactivates the output format JSON, only plain text as response (default) 1 - activates the output format JSON when returning data (response). |
apikey | String | Yes |
The access key necessary to be identified by the system. min. length: 5, max. length: 50, characters allowed: a-z, A-Z, 0-9 Available under API settings in your account. |
Response (String) in standard as an example:
Request as an example with JSON:
Response in JSON as an example:
Userconfig "selfsolve"
GET REQUEST https://www.9kw.eu/index.cgiParameter | Type | Required | Description |
---|---|---|---|
action | String | Yes | userconfigselfsolve - Defines that the option should be used. |
selfsolve | Integer | Yes | 0 - deactivated 1 - activated |
json | Integer | No | 0 - deactivates the output format JSON, only plain text as response (default) 1 - activates the output format JSON when returning data (response). |
apikey | String | Yes |
The access key necessary to be identified by the system. min. length: 5, max. length: 50, characters allowed: a-z, A-Z, 0-9 Available under API settings in your account. |
Response (String) in standard as an example:
Request as an example with JSON:
Response in JSON as an example:
Userconfig "selfonly"
GET REQUEST https://www.9kw.eu/index.cgiParameter | Type | Required | Description |
---|---|---|---|
action | String | Yes | userconfigselfonly - Defines that the option should be used. |
selfonly | Integer | Yes | 0 - deactivated 1 - activated |
json | Integer | No | 0 - deactivates the output format JSON, only plain text as response (default) 1 - activates the output format JSON when returning data (response). |
apikey | String | Yes |
The access key necessary to be identified by the system. min. length: 5, max. length: 50, characters allowed: a-z, A-Z, 0-9 Available under API settings in your account. |
Response (String) in standard as an example:
Request as an example with JSON:
Response in JSON as an example:
Userconfig "selfsend"
GET REQUEST https://www.9kw.eu/index.cgiParameter | Type | Required | Description |
---|---|---|---|
action | String | Yes | userconfigselfsend - Defines that the option should be used. |
selfsend | Integer | Yes | 0 - deactivated 1 - activated |
json | Integer | No | 0 - deactivates the output format JSON, only plain text as response (default) 1 - activates the output format JSON when returning data (response). |
apikey | String | Yes |
The access key necessary to be identified by the system. min. length: 5, max. length: 50, characters allowed: a-z, A-Z, 0-9 Available under API settings in your account. |
Response (String) in standard as an example:
Request as an example with JSON:
Response in JSON as an example:
Reflist
GET REQUEST https://www.9kw.eu/index.cgiParameter | Type | Required | Description |
---|---|---|---|
action | String | Yes | userconfigref - Defines that the option should be used. |
archiv | Integer | No | 0 - deactivated (Default) 1 - activated Grants access to your captcha archive. |
source | String | No | Indicates the tool name of the software used (e.g. 9kwclient) Max. 30 chars |
json | Integer | No | 0 - deactivates the output format JSON, only plain text as response (default) 1 - activates the output format JSON when returning data (response). |
apikey | String | Yes |
The access key necessary to be identified by the system. min. length: 5, max. length: 50, characters allowed: a-z, A-Z, 0-9 Available under API settings in your account. |
Response (String) in standard as an example:
Separator: Pipe => |
Line 1: columns names
Line 2: columns data
Line 3+
structure:
Blockbegin
COLUMNS NAMES (1 Line)
COLUMNS DATA
Blockend
Request as an example with JSON:
Response in JSON as an example:
Transfer credits
A transfer is used to transfer your balance to another user.GET REQUEST https://www.9kw.eu/index.cgi
Parameter | Type | Required | Description |
---|---|---|---|
action | String | Yes | usertransfer - Defines that the option should be used. |
guthaben | Integer | Yes | The transmission value as a numerical number of the balance. (Min. 1000) |
userid | Integer | Yes | The desired user as target of the balance. |
transferart | Integer | Yes | 1 - Normal (default) 2 - All options (Necessary for the transfer of values from the bonus program) |
source | String | No | Indicates the tool name of the software used (e.g. 9kwclient) Max. 30 chars |
json | Integer | No | 0 - deactivates the output format JSON, only plain text as response (default) 1 - activates the output format JSON when returning data (response). |
apikey | String | Yes |
The access key necessary to be identified by the system. min. length: 5, max. length: 50, characters allowed: a-z, A-Z, 0-9 Available under API settings in your account. |
Response (String) in Standard als Beispiel:
Trennzeichen: Pipe => |
Request as an example with JSON:
Response in JSON as an example
Create coupon
GET REQUEST https://www.9kw.eu/index.cgiParameter | Type | Required | Description |
---|---|---|---|
action | String | Yes | usergutscheincreate - Defines that the option should be used. |
guthaben | Integer | Yes | The transmission value as a numerical number of the balance. (Min. 1000) |
source | String | No | Indicates the tool name of the software used (e.g. 9kwclient) Max. 30 chars |
json | Integer | No | 0 - deactivates the output format JSON, only plain text as response (default) 1 - activates the output format JSON when returning data (response). |
apikey | String | Yes |
The access key necessary to be identified by the system. min. length: 5, max. length: 50, characters allowed: a-z, A-Z, 0-9 Available under API settings in your account. |
Response (String) in standard as an example:
Separator: Pipe => |
OK|Code|Value
Request as an example with JSON:
Response in JSON as an example:
Create account
GET REQUEST https://www.9kw.eu/index.cgiParameter | Type | Required | Description |
---|---|---|---|
action | String | Yes | anmelden2_create - Defines that the option should be used. |
code | Integer | Yes | The transfer value as a numerical number of the balance or a voucher code. (Min. 40000) |
ref | String | No | Enter the (own) user as ID if you want it to automatically be a referred user. |
source | String | No | Indicates the tool name of the software used (e.g. 9kwclient) Max. 30 chars |
json | Integer | No | 0 - deactivates the output format JSON, only plain text as response (default) 1 - activates the output format JSON when returning data (response). |
apikey | String | Yes |
The access key necessary to be identified by the system. min. length: 5, max. length: 50, characters allowed: a-z, A-Z, 0-9 Available under API settings in your account. |
Response (String) in standard as an example:
Separator: Pipe => |
OK|user|password
Request as an example with JSON:
Response in JSON as an example: