Retrieve a solve
curl --request GET \
--url https://api.ninetile.io/v1/solves/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.ninetile.io/v1/solves/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.ninetile.io/v1/solves/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.ninetile.io/v1/solves/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.ninetile.io/v1/solves/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.ninetile.io/v1/solves/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.ninetile.io/v1/solves/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "<string>",
"object": "solve",
"type": "hcaptcha",
"status": "pending",
"sitekey": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"url": "<string>",
"token": "<string>",
"user_agent": "<string>",
"error": {
"code": "<string>",
"message": "<string>",
"reason": "<string>",
"retryable": true,
"docs_url": "<string>"
},
"charged_usd": 123,
"proxy_bytes": null,
"created_at": "2023-11-07T05:31:56Z",
"started_at": "2023-11-07T05:31:56Z",
"finished_at": "2023-11-07T05:31:56Z",
"queue_ms": 123,
"resolve_ms": 123,
"warnings": [
{
"code": "user_agent_not_applied",
"message": "<string>"
}
]
}{
"id": "<string>",
"object": "solve",
"type": "hcaptcha",
"status": "pending",
"sitekey": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"url": "<string>",
"token": "<string>",
"user_agent": "<string>",
"error": {
"code": "<string>",
"message": "<string>",
"reason": "<string>",
"retryable": true,
"docs_url": "<string>"
},
"charged_usd": 123,
"proxy_bytes": null,
"created_at": "2023-11-07T05:31:56Z",
"started_at": "2023-11-07T05:31:56Z",
"finished_at": "2023-11-07T05:31:56Z",
"queue_ms": 123,
"resolve_ms": 123,
"warnings": [
{
"code": "user_agent_not_applied",
"message": "<string>"
}
]
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"param": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"param": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"param": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"param": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"param": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}API Reference
Retrieve a solve
Returns 202 while the solve is pending or solving, and 200 once it is final. Solve IDs are private to the account that created them. wait optionally waits 1–90 seconds before returning.
GET
/
solves
/
{id}
Retrieve a solve
curl --request GET \
--url https://api.ninetile.io/v1/solves/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.ninetile.io/v1/solves/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.ninetile.io/v1/solves/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.ninetile.io/v1/solves/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.ninetile.io/v1/solves/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.ninetile.io/v1/solves/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.ninetile.io/v1/solves/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "<string>",
"object": "solve",
"type": "hcaptcha",
"status": "pending",
"sitekey": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"url": "<string>",
"token": "<string>",
"user_agent": "<string>",
"error": {
"code": "<string>",
"message": "<string>",
"reason": "<string>",
"retryable": true,
"docs_url": "<string>"
},
"charged_usd": 123,
"proxy_bytes": null,
"created_at": "2023-11-07T05:31:56Z",
"started_at": "2023-11-07T05:31:56Z",
"finished_at": "2023-11-07T05:31:56Z",
"queue_ms": 123,
"resolve_ms": 123,
"warnings": [
{
"code": "user_agent_not_applied",
"message": "<string>"
}
]
}{
"id": "<string>",
"object": "solve",
"type": "hcaptcha",
"status": "pending",
"sitekey": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"url": "<string>",
"token": "<string>",
"user_agent": "<string>",
"error": {
"code": "<string>",
"message": "<string>",
"reason": "<string>",
"retryable": true,
"docs_url": "<string>"
},
"charged_usd": 123,
"proxy_bytes": null,
"created_at": "2023-11-07T05:31:56Z",
"started_at": "2023-11-07T05:31:56Z",
"finished_at": "2023-11-07T05:31:56Z",
"queue_ms": 123,
"resolve_ms": 123,
"warnings": [
{
"code": "user_agent_not_applied",
"message": "<string>"
}
]
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"param": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"param": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"param": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"param": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"param": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}Retrieve the current status and result of a solve belonging to your account.
Authorizations
BearerAuthApiKeyHeader
Ninetile API key, sent as Authorization: Bearer <key>. Keys are issued in the dashboard.
Path Parameters
ID of a solve owned by the authenticated account.
Pattern:
^solve_Query Parameters
Wait this many seconds for a final result (1–90). If omitted, return without waiting.
Required range:
1 <= x <= 90Response
Solve is final.
Pattern:
^solve_Available options:
hcaptcha, hcaptcha_enterprise Available options:
pending, solving, solved, failed, cancelled, expired hCaptcha response token when the solve succeeds; otherwise null. Token is cleared after 7 days.
Show child attributes
Show child attributes
Final charge; null until the solve is final.
Currently always null.
Show child attributes
Show child attributes