Initial commit: URL Redirect Tracker application with comprehensive documentation
This commit is contained in:
168
public/api-readme.md
Normal file
168
public/api-readme.md
Normal 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)
|
||||
```
|
||||
Reference in New Issue
Block a user