API Management

API Usage

Request Log

Timestamp Job ID Status Dork Engines

DorkMe API Wrapper Documentation

The DorkMe Python API Wrapper simplifies the process of integrating with the DorkMe API. Below, you'll find the basic usage instructions and available methods for interacting with the API programmatically. This is great for integrating in your current automation, or just use from the CLI.

Requirements

  • Python 3.x
  • Requests library (can be installed with pip install requests)

How to use?

The python tool takes 3 arguments:

  • api-key
  • dork
  • engines
  • The following is an example usage:

    python3 dorkme.py --api-key 66e04fd0-9632-466f-b93a-26e9bf58b8b9 --dork "site:fisglobal.com idp" --engines google,aol,duck,baidu,bing

    Code

    Save the following code to use in CLI:

    
    import requests
    import time
    import argparse
    
    # Command line argument parsing
    parser = argparse.ArgumentParser(description='DorkMe API Tool')
    parser.add_argument('--api-key', type=str, help='Your DorkMe API key', required=True)
    parser.add_argument('--dork', type=str, help='Dork query', required=True)
    parser.add_argument('--engines', type=str, help='Comma-separated list of search engines', required=True)
    parser.add_argument('--output', type=str, help='Output file to save the results', required=False)  # Optional output file argument
    args = parser.parse_args()
    
    api_key = args.api_key
    dork = args.dork
    engines = args.engines.split(',')
    output_file = args.output  # Capture the output file argument
    
    # Endpoint configuration
    host = 'https://www.dorkme.com'
    run_dork_endpoint = f'{host}/api/run-dork'
    results_endpoint = f'{host}/api/results/'
    
    # Headers
    headers = {
        'X-API-Key': api_key,
        'Content-Type': 'application/json',
    }
    
    # Payload
    payload = {
        'dork': dork,
        'engines': engines
    }
    
    # Start the dork scan
    response = requests.post(run_dork_endpoint, json=payload, headers=headers)
    
    if response.status_code == 200:
        job_id = response.json().get('jobId')
        print(f'Dork scan initiated. Job ID: {job_id}')
    
        # Polling the job status
        while True:
            result_response = requests.get(results_endpoint + job_id, headers=headers)
            if result_response.status_code == 200:
                result_data = result_response.json()
    
                # Check if the job is done
                if result_data.get('status') == 'done':
                    print('Dork scan completed. URLs found:')
                    urls = result_data.get('urls', [])
                    for url in urls:
                        print(url)
                    
                    # If output file is specified, write the results to the file
                    if output_file:
                        with open(output_file, 'w') as f:
                            for url in urls:
                                f.write(url + '\n')
                        print(f'Results saved to {output_file}')
    
                    break
                else:
                    print('Dork scan in progress. Waiting for completion...')
                    time.sleep(20)  # Wait before polling again
            else:
                print('Error fetching results. Please check the job ID and API key.')
                break
    else:
        print('Error initiating dork scan. Please check your payload and API key.')
    
        

    Access

    • Credits Based 100 searches plan: Up to to 3 concurent searches
    • API Plan 120 searches Up to 10 concurent searches.

    Additional Notes

    Remember to replace 'api-key' with your actual API key. Your API requests log will be available on this same page.