Integrate FOIA request submission and tracking into your applications
https://govcloudfoia.com/api/v1All API requests require an API key. Include your API key in the Authorization header:
Authorization: Bearer YOUR_API_KEYAPI keys are rate-limited to 1,000 requests per hour by default. Rate limit information is included in response headers.
API keys can be created in sandbox mode for safe testing without affecting production data.
/api/v1/requests{
"requesterName": "John Doe",
"requesterEmail": "[email protected]",
"requesterPhone": "+1-555-0123",
"requesterOrganization": "Example Corp",
"requesterAddress": "123 Main St, City, State 12345",
"requestDescription": "Records related to...",
"dateRangeStart": "2024-01-01T00:00:00Z",
"dateRangeEnd": "2024-12-31T23:59:59Z",
"expeditedProcessing": false,
"feeWaiverRequested": false
}{
"success": true,
"message": "FOIA request submitted successfully",
"data": {
"trackingNumber": "FOIA-2026-ABC123XYZ",
"status": "submitted",
"dueDate": "2026-03-15T17:00:00.000Z",
"submittedAt": "2026-02-05T02:30:00.000Z"
}
}curl -X POST https://govcloudfoia.com/api/v1/requests \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"requesterName": "John Doe",
"requesterEmail": "[email protected]",
"requestDescription": "Records related to transportation projects in 2024"
}'const response = await fetch('https://govcloudfoia.com/api/v1/requests', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
requesterName: 'John Doe',
requesterEmail: '[email protected]',
requestDescription: 'Records related to transportation projects in 2024'
})
});
const data = await response.json();
console.log(data.data.trackingNumber);import requests
response = requests.post(
'https://govcloudfoia.com/api/v1/requests',
headers={'Authorization': 'Bearer YOUR_API_KEY'},
json={
'requesterName': 'John Doe',
'requesterEmail': '[email protected]',
'requestDescription': 'Records related to transportation projects in 2024'
}
)
data = response.json()
print(data['data']['trackingNumber']){
"error": "Unauthorized",
"message": "Missing or invalid API key"
}{
"error": "Rate Limit Exceeded",
"message": "Rate limit of 1000 requests per hour exceeded",
"retryAfter": 3600
}{
"error": "Bad Request",
"message": "Missing required fields: requesterName, requesterEmail, requestDescription"
}