Initial commit: URL Redirect Tracker application with comprehensive documentation

This commit is contained in:
Andrei
2025-08-18 06:37:57 +00:00
commit a5d19c8549
1580 changed files with 211670 additions and 0 deletions

168
public/api-readme.md Normal file
View File

@@ -0,0 +1,168 @@
# 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
```bash
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
```bash
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:
```json
{
"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
```javascript
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
```python
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)
```