Status API¶
Overview¶
The Status API (/v1/status) provides a concise summary of the Wickson API's current operational state and your account's access status. This endpoint is designed for monitoring API health, authentication status, and rate limit information.
Details¶
This endpoint provides the following information:
- Overall Status: A high-level indicator of the API's health (operational, degraded, maintenance)
- API Version: The current version of the Wickson API
- Component Status: The status of individual API components (e.g., api, storage, search)
- Authentication: Confirmation of your API key's type, tier, and granted capabilities
- Rate Limits: Your current rate limit usage, including remaining requests, reset time, and burst limit
- Notices: Information about scheduled maintenance or downtime (if applicable)
Endpoint¶
Description¶
Provides comprehensive information about the API's operational status, component health, and your account's rate limit information. This endpoint is ideal for monitoring API health and diagnosing potential issues.
Request¶
Headers¶
X-Api-Key: Required. Your Wickson API key
Example Request¶
Python Example¶
import requests
# Configuration
api_key = "YOUR_API_KEY"
# Get API status
response = requests.get(
"https://api.wickson.ai/v1/status",
headers={"X-Api-Key": api_key}
)
# Process response
if response.status_code == 200:
data = response.json()["data"]
# Print system status
print(f"API Status: {data['status']} (v{data['version']})")
print(f"Timestamp: {data['timestamp']}")
# Print component status
print("\nComponent Status:")
for component, status in data["components"].items():
print(f"- {component}: {status}")
# Print account information
print(f"\nAccount Tier: {data['account']['tier']}")
rate_limits = data['account']['rate_limits']
print(f"Rate Limits: {rate_limits['remaining']}/{rate_limits['limit']} remaining")
print(f"Rate Reset: {rate_limits['reset_time']}")
# Print performance metrics
print(f"\nResponse Time: {data['performance']['response_time_ms']}ms")
# Check for maintenance notices
if "notice" in data:
print(f"\n NOTICE: {data['notice']['message']}")
print(f" Estimated completion: {data['notice']['estimated_completion']}")
elif response.status_code == 503:
print("API is currently unavailable (Service status: critical)")
else:
print(f"Error: {response.status_code} - {response.text}")
Response¶
Success Response (200 OK)¶
{
"success": true,
"message": "System status retrieved successfully",
"data": {
"status": "operational",
"version": "1.0.0",
"timestamp": "2024-12-19T12:00:00Z",
"components": {
"api": "operational",
"storage": "operational",
"search": "operational"
},
"account": {
"tier": "standard",
"rate_limits": {
"remaining": 950,
"reset_time": "2024-12-19T13:00:00Z",
"limit": 1000
}
},
"performance": {
"response_time_ms": 42
}
},
"metadata": {
"environment": "production",
"datacenter": "us-central1"
}
}
Maintenance Notice (if applicable)¶
{
"notice": {
"type": "maintenance",
"message": "Scheduled maintenance in progress",
"estimated_completion": "2024-12-19T14:00:00Z"
}
}
Error Response (500 Internal Server Error)¶
{
"success": false,
"message": "Unable to retrieve system status",
"code": "internal_error",
"status_code": 500,
"suggestion": "The API is experiencing temporary issues. Please try again in a few minutes or contact support if the problem persists."
}
Status Codes¶
- 200 OK: Status information retrieved successfully
- 503 Service Unavailable: System is in a critical state
- 500 Internal Server Error: Unable to perform status check
Response Details¶
Overall Status¶
Possible values:
operational: All systems functioning normallydegraded: Some components experiencing issuescritical: System functionality severely impaired
Component Status¶
Each component can have one of the following statuses:
operational: Component is functioning normallydegraded: Component is experiencing issues but still operationalunavailable: Component is not operational
Rate Limits¶
remaining: Number of requests remaining in the current time windowreset_time: When the rate limit counter will resetlimit: Your account's total request limit per time window