Files
url_tracker_tool/public/api-readme.md

4.2 KiB

URL Redirect Tracker API Documentation

This API allows you to programmatically track and analyze URL redirect chains, providing detailed information about each redirect, including HTTP status codes, headers, and response data.

Rate Limiting

The API is limited to 100 requests per hour per IP address.

API Endpoints

POST /api/v1/track

Track a URL and get the full redirect chain using a POST request.

Request Parameters (JSON Body)

Parameter Type Required Description
url string Yes The URL to track (e.g., "example.com" or "https://example.com")
method string No HTTP method to use (GET, HEAD, POST). Default: "GET"
userAgent string No Custom User-Agent header to send with the request

Example Request

curl -X POST https://urltrackertool.com/api/v1/track \
  -H "Content-Type: application/json" \
  -d '{
    "url": "github.com",
    "method": "GET",
    "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) Chrome"
  }'

GET /api/v1/track

Track a URL and get the full redirect chain using a GET request with query parameters.

Request Parameters (Query String)

Parameter Type Required Description
url string Yes The URL to track (e.g., "example.com" or "https://example.com")
method string No HTTP method to use (GET, HEAD, POST). Default: "GET"
userAgent string No Custom User-Agent header to send with the request

Example Request

curl "https://urltrackertool.com/api/v1/track?url=github.com&method=GET&userAgent=Mozilla%2F5.0%20Chrome"

Response Format

Both endpoints return the same JSON structure:

{
  "success": true,
  "status": 200,
  "data": {
    "url": "http://github.com",
    "method": "GET",
    "redirectCount": 1,
    "finalUrl": "https://github.com/",
    "finalStatusCode": 200,
    "redirects": [
      {
        "url": "http://github.com",
        "timestamp": 1684320000000,
        "isSSL": false,
        "duration": 220,
        "statusCode": 301,
        "statusText": "Moved Permanently",
        "metadata": {
          "status": 301,
          "statusText": "Moved Permanently",
          "headers": {
            "location": "https://github.com/",
            "content-length": "0",
            "server": "GitHub.com"
          },
          "contentType": "text/html",
          "contentLength": "0",
          "server": "GitHub.com",
          "date": "Wed, 17 May 2023 12:00:00 GMT",
          "protocol": "http:",
          "method": "GET"
        }
      },
      {
        "url": "https://github.com/",
        "timestamp": 1684320000220,
        "isSSL": true,
        "duration": 350,
        "statusCode": 200,
        "statusText": "OK",
        "metadata": {
          "status": 200,
          "statusText": "OK",
          "headers": {
            "content-type": "text/html; charset=utf-8",
            "server": "GitHub.com"
          },
          "contentType": "text/html; charset=utf-8",
          "server": "GitHub.com",
          "date": "Wed, 17 May 2023 12:00:00 GMT",
          "protocol": "https:",
          "method": "GET"
        },
        "final": true
      }
    ]
  }
}

Error Codes

Status Code Description
400 Bad Request - Required parameters are missing or invalid
429 Too Many Requests - Rate limit exceeded
500 Server Error - An error occurred while processing the request

JavaScript Example

const trackUrl = async (url) => {
  const response = await fetch('https://urltrackertool.com/api/v1/track', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      url,
      method: 'GET'
    })
  });
  
  return await response.json();
};

// Usage
trackUrl('github.com')
  .then(data => console.log(data))
  .catch(err => console.error(err));

Python Example

import requests

def track_url(url):
    response = requests.post(
        'https://urltrackertool.com/api/v1/track',
        json={
            'url': url,
            'method': 'GET'
        }
    )
    return response.json()

# Usage
result = track_url('github.com')
print(result)