cURL Examples
cURL examples for the CuliUptime API using session-based authentication.
🔐 Authentication Prerequisites
CuliUptime uses OAuth2 social login. To use the API with cURL, you need an authenticated session from the web dashboard.
Getting Session Cookies
- Login via web dashboard: Visit your CuliUptime dashboard and sign in with Google or GitHub
- Extract session cookies: Use browser developer tools to copy session cookies
- Use cookies with cURL: Pass cookies using the
-b
parameter
# Example: Extract cookies from browser and save to file
# In browser dev tools: Application > Cookies > Copy value
echo "session_cookie=YOUR_SESSION_VALUE" > cookies.txt
📋 Monitor Management
List All Monitors
# Get all monitors with basic info
curl -X GET \
-b "session_cookie=YOUR_SESSION" \
https://uptime.culiops.net/api/v1/monitors
# Get monitors with pagination and filtering
curl -X GET \
-b "session_cookie=YOUR_SESSION" \
"https://uptime.culiops.net/api/v1/monitors?page=1&per_page=25&status=online"
# Search monitors by name or URL
curl -X GET \
-b "session_cookie=YOUR_SESSION" \
"https://uptime.culiops.net/api/v1/monitors?search=api"
Get Monitor Details
curl -X GET \
-b "session_cookie=YOUR_SESSION" \
https://uptime.culiops.net/api/v1/monitors/123
Create HTTP Monitor
curl -X POST \
-b "session_cookie=YOUR_SESSION" \
-H "Content-Type: application/json" \
-d '{
"name": "My API Endpoint",
"url": "https://api.example.com/health",
"method": "GET",
"expected_status": [200, 201],
"timeout": 30,
"check_interval": 300
}' \
https://uptime.culiops.net/api/v1/monitors
Update Monitor
curl -X PUT \
-b "session_cookie=YOUR_SESSION" \
-H "Content-Type: application/json" \
-d '{
"name": "Updated Monitor Name",
"check_interval": 600,
"timeout": 45
}' \
https://uptime.culiops.net/api/v1/monitors/123
Enable/Disable Monitor
# Enable monitor
curl -X POST \
-b "session_cookie=YOUR_SESSION" \
https://uptime.culiops.net/api/v1/monitors/123/enable
# Disable monitor
curl -X POST \
-b "session_cookie=YOUR_SESSION" \
https://uptime.culiops.net/api/v1/monitors/123/disable
Test Monitor
# Run immediate check
curl -X POST \
-b "session_cookie=YOUR_SESSION" \
https://uptime.culiops.net/api/v1/monitors/123/test
Delete Monitor
curl -X DELETE \
-b "session_cookie=YOUR_SESSION" \
https://uptime.culiops.net/api/v1/monitors/123
📊 Monitor Data
Get Monitor Results
# Get recent results
curl -X GET \
-b "session_cookie=YOUR_SESSION" \
https://uptime.culiops.net/api/v1/monitors/123/results
# Get results with date range
curl -X GET \
-b "session_cookie=YOUR_SESSION" \
"https://uptime.culiops.net/api/v1/monitors/123/results?from=2024-01-01T00:00:00Z&to=2024-01-31T23:59:59Z"
Get Monitor Statistics
curl -X GET \
-b "session_cookie=YOUR_SESSION" \
https://uptime.culiops.net/api/v1/monitors/123/stats
🌍 Agent Management
List All Agents
curl -X GET \
-b "session_cookie=YOUR_SESSION" \
https://uptime.culiops.net/api/v1/agents
Get User Accessible Agents
curl -X GET \
-b "session_cookie=YOUR_SESSION" \
https://uptime.culiops.net/api/v1/agents/accessible
Get Agent Details
curl -X GET \
-b "session_cookie=YOUR_SESSION" \
https://uptime.culiops.net/api/v1/agents/456
Assign Agents to Monitor
curl -X POST \
-b "session_cookie=YOUR_SESSION" \
-H "Content-Type: application/json" \
-d '{
"agent_ids": [456, 789]
}' \
https://uptime.culiops.net/api/v1/monitors/123/agents
🔔 Notifications
Get Active Notifications
curl -X GET \
-b "session_cookie=YOUR_SESSION" \
https://uptime.culiops.net/api/v1/notifications/active
Get Recent Notifications
curl -X GET \
-b "session_cookie=YOUR_SESSION" \
https://uptime.culiops.net/api/v1/notifications/recent
List Notification History
# Get all notifications
curl -X GET \
-b "session_cookie=YOUR_SESSION" \
https://uptime.culiops.net/api/v1/notifications
# Get notifications for specific monitor
curl -X GET \
-b "session_cookie=YOUR_SESSION" \
"https://uptime.culiops.net/api/v1/notifications?monitor_id=123"
Acknowledge Notification
curl -X POST \
-b "session_cookie=YOUR_SESSION" \
https://uptime.culiops.net/api/v1/notifications/789/acknowledge
👤 User Information
Get Current User
curl -X GET \
-b "session_cookie=YOUR_SESSION" \
https://uptime.culiops.net/api/v1/auth/user
Refresh Session
curl -X POST \
-b "session_cookie=YOUR_SESSION" \
https://uptime.culiops.net/api/v1/auth/refresh
📊 Dashboard Data
Get Dashboard Overview
curl -X GET \
-b "session_cookie=YOUR_SESSION" \
https://uptime.culiops.net/api/v1/dashboard
⚙️ User Preferences
Get User Preferences
curl -X GET \
-b "session_cookie=YOUR_SESSION" \
https://uptime.culiops.net/api/v1/preferences
Update User Preferences
curl -X PUT \
-b "session_cookie=YOUR_SESSION" \
-H "Content-Type: application/json" \
-d '{
"email_notifications": true,
"timezone": "UTC",
"theme": "dark"
}' \
https://uptime.culiops.net/api/v1/preferences
🛠️ Advanced Usage
Using Cookie Files
Save session cookies to a file for easier reuse:
# Save cookies from browser to file
echo "session_cookie=YOUR_SESSION_VALUE" > cookies.txt
# Use cookie file with all requests
curl -X GET \
-b cookies.txt \
https://uptime.culiops.net/api/v1/monitors
Error Handling
# Check HTTP status and handle errors
curl -X GET \
-b "session_cookie=YOUR_SESSION" \
-w "HTTP Status: %{http_code}\n" \
-s -o response.json \
https://uptime.culiops.net/api/v1/monitors
# Check response
if [ $? -eq 0 ]; then
echo "Request successful"
cat response.json
else
echo "Request failed"
fi
Rate Limiting
CuliUptime includes rate limiting. Handle 429 responses:
# Retry with exponential backoff
for i in {1..3}; do
response=$(curl -X GET \
-b "session_cookie=YOUR_SESSION" \
-w "%{http_code}" \
-s -o /tmp/response \
https://uptime.culiops.net/api/v1/monitors)
if [ "$response" = "200" ]; then
cat /tmp/response
break
elif [ "$response" = "429" ]; then
echo "Rate limited, waiting..."
sleep $((2**i))
else
echo "Error: HTTP $response"
break
fi
done
Note: For production integrations, consider using the web dashboard or building a proper OAuth2 client rather than extracting session cookies manually.