API Documentation

This API allows users to submit tasks containing one or more hashes for processing. Below you'll find details on how to use the API, including required parameters, accepted values, and response formats.

Endpoint

POST https://api.onlinehashcrack.com/v2

Request Parameters

All parameters should be included in the JSON body of the POST request.

Parameter Type Description Required
api_key String The free API key starts with sk_. Generated from this page. Yes
agree_terms String Confirmation that you agree to the Terms & Conditions. Allowed values are yes or no. Yes
action String Allowed values are list_tasks or add_tasks. Default to add_tasks if not provided.
list_tasks will just list current tasks in JSON format.
No
algo_mode Integer An integer specifying the algorithm mode, which can be found here. Eg: 0 for MD5. Yes if add_tasks
hashes Array of strings An array of hash strings. Maximum of 50 hashes. Yes if add_tasks
receive_email String Optional parameter to receive an email confirmation after each hash added.
Allowed values are yes or no. Default: yes.
No

Terms & Conditions Agreement

Note: By setting agree_terms to "yes", you confirm that you have read and agree to our Terms & Conditions of using this API.

Example Request

// Add new tasks
	curl -X POST "https://api.onlinehashcrack.com/v2" \
    -H "Content-Type: application/json" \
    -d '{
      "api_key": "sk_XXX",
      "agree_terms": "yes",
      "algo_mode": 0,
      "hashes": ["8124BC0A5335C27F086F24BA2C7A4810"]
    }'
	
// or List my tasks
	curl -X POST "https://api.onlinehashcrack.com/v2" \
    -H "Content-Type: application/json" \
    -d '{
      "api_key": "sk_XXX",
      "agree_terms": "yes",
      "action ":  "list_tasks"
    }'
				
import requests

url = "https://api.onlinehashcrack.com/v2"
headers = {"Content-Type": "application/json"}
data = {
    "api_key": "sk_XXX",
    "agree_terms": "yes",
    "algo_mode": 0,
    "hashes": ["8124BC0A5335C27F086F24BA2C7A4810"]
}

response = requests.post(url, json=data, headers=headers)
print(response.json())
$url = "https://api.onlinehashcrack.com/v2";
$data = [
    "api_key" => "sk_XXX",
    "agree_terms" => "yes",
    "algo_mode" => 0,
    "hashes" => ["8124BC0A5335C27F086F24BA2C7A4810"]
];

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$response = curl_exec($ch);
curl_close($ch);

echo $response;
require 'net/http'
require 'json'
require 'uri'

uri = URI.parse("https://api.onlinehashcrack.com/v2")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true

headers = { 'Content-Type' => 'application/json' }
data = {
  api_key: "sk_XXX",
  agree_terms: "yes",
  algo_mode: 0,
  hashes: ["8124BC0A5335C27F086F24BA2C7A4810"]
}

response = http.post(uri.path, data.to_json, headers)
puts response.body
package main

import (
	"bytes"
	"encoding/json"
	"fmt"
	"net/http"
)

func main() {
	url := "https://api.onlinehashcrack.com/v2"
	data := map[string]interface{}{
		"api_key":     "sk_XXX",
		"agree_terms": "yes",
		"algo_mode":    0,
		"hashes":      []string{"8124BC0A5335C27F086F24BA2C7A4810"},
	}

	jsonData, _ := json.Marshal(data)
	req, _ := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
	req.Header.Set("Content-Type", "application/json")

	client := &http.Client{}
	resp, err := client.Do(req)
	if err != nil {
		fmt.Println("Error:", err)
		return
	}
	defer resp.Body.Close()

	var result map[string]interface{}
	json.NewDecoder(resp.Body).Decode(&result)
	fmt.Println(result)
}
const axios = require('axios');

const url = 'https://api.onlinehashcrack.com/v2';
const headers = { 'Content-Type': 'application/json' };
const data = {
    api_key: 'sk_XXX',
    agree_terms: 'yes',
    algo_mode: 0,
    hashes: ['8124BC0A5335C27F086F24BA2C7A4810']
};

axios.post(url, data, { headers })
    .then(response => console.log(response.data))
    .catch(error => console.error('Error:', error));

Response Format

The API returns a JSON response with the following structure:

Success Response

{
    "success": true,
    "message": "Tasks received successfully.",
    "task_count": <number of tasks>
}

Error Response

{
    "success": false,
    "message": "Description of the error.",
}

Response Codes

HTTP Status Code Description
200 OK Request was successful.
400 Bad Request Validation errors occurred. Check your parameters and the response description.
401 Unauthorized Invalid API key provided.
405 Method Not Allowed Invalid request method. Only POST requests are allowed.
429 Too Many Requests Rate limit exceeded. Please try again later or upgrade your Profile.
500 Internal Server Error An error occurred on the server.

Rate Limiting

To prevent misuse, the API enforces rate limiting based on the verification level of your Tier profile (see your Profile)

  • Maximum of 30 requests per hour per API key for Tier 1.
  • Maximum of 100 requests per hour per API key for Tier 2.
  • Maximum of 200 requests per hour per API key for Tier 3.
  • Contact us if you need more or have specific needs.

If you exceed this limit, you will receive a 429 Too Many Requests response.

{
    "success": false,
    "message": "Rate limit exceeded. Please try again later or upgrade your Profile."
}