FormulaAIGenie REST API
REST API for FormulaAIGenie formula generation and fixing.
Authentication
All API requests require an API key. Include it in one of these ways:
- Header: <code class="bg-gray-100 px-1 py-0.5 rounded text-sm">X-API-Key: your-api-key</code>
- Header: <code class="bg-gray-100 px-1 py-0.5 rounded text-sm">Authorization: Bearer your-api-key</code>
Rate Limiting
Rate limits are enforced per API key tier:
- <strong>Free</strong>: 10 requests/hour
- <strong>Starter</strong>: 100 requests/hour
- <strong>Professional</strong>: 1000 requests/hour
- <strong>Enterprise</strong>: 10,000 requests/hour
Rate limit information is included in response headers:
- <code class="bg-gray-100 px-1 py-0.5 rounded text-sm">X-RateLimit-Limit</code>: Maximum requests per hour
- <code class="bg-gray-100 px-1 py-0.5 rounded text-sm">X-RateLimit-Remaining</code>: Remaining requests in current window
- <code class="bg-gray-100 px-1 py-0.5 rounded text-sm">X-RateLimit-Reset</code>: Unix timestamp when limit resets
Endpoints
POST /api/generate-formula
Generate formulas from natural language descriptions.
Request:
{
"input": "Sum column B where column A is Completed"
}
Response:
{
"excel": "=SUMIF(A:A,\"Completed\",B:B)",
"googleSheets": "=SUMIF(A:A,\"Completed\",B:B)",
"explanation": "Conditional sum formula",
"warnings": []
}
Error Responses:
- <code class="bg-gray-100 px-1 py-0.5 rounded text-sm">401</code>: Invalid or missing API key
- <code class="bg-gray-100 px-1 py-0.5 rounded text-sm">400</code>: Input is a formula (use /api/fix-formula instead)
- <code class="bg-gray-100 px-1 py-0.5 rounded text-sm">429</code>: Rate limit exceeded
- <code class="bg-gray-100 px-1 py-0.5 rounded text-sm">500</code>: Internal server error
POST /api/fix-formula
Fix and translate existing formulas between Excel and Google Sheets.
Request:
{
"input": "=SUMIF(A:A,\"Done\",B:B"
}
Response:
{
"excel": "=SUMIF(A:A,\"Done\",B:B)",
"googleSheets": "=SUMIF(A:A,\"Done\",B:B)",
"explanation": "Fixed formula syntax errors",
"warnings": []
}
Error Responses:
- <code class="bg-gray-100 px-1 py-0.5 rounded text-sm">401</code>: Invalid or missing API key
- <code class="bg-gray-100 px-1 py-0.5 rounded text-sm">400</code>: Input is not a formula (use /api/generate-formula instead)
- <code class="bg-gray-100 px-1 py-0.5 rounded text-sm">429</code>: Rate limit exceeded
- <code class="bg-gray-100 px-1 py-0.5 rounded text-sm">500</code>: Internal server error
API Key Tiers
Free Tier
- 10 requests/hour
- Basic formula generation and fixing
- No payment required
Starter Tier ($10/month)
- 100 requests/hour
- All features
- Priority support
Professional Tier ($50/month)
- 1,000 requests/hour
- All features
- Priority support
- Custom integrations
Enterprise Tier (Custom)
- 10,000+ requests/hour
- All features
- Dedicated support
- SLA guarantees
Getting an API Key
Contact us at kokilavijayakumar2@gmail.com to request an API key.
Example Usage
cURL
# Generate formula
curl -X POST https://your-domain.com/api/generate-formula \
-H "X-API-Key: your-api-key" \
-H "Content-Type: application/json" \
-d '{"input": "Sum column B where column A is Completed"}'
# Fix formula
curl -X POST https://your-domain.com/api/fix-formula \
-H "X-API-Key: your-api-key" \
-H "Content-Type: application/json" \
-d '{"input": "=SUMIF(A:A,\"Done\",B:B"}'
JavaScript
const response = await fetch('https://your-domain.com/api/generate-formula', {
method: 'POST',
headers: {
'X-API-Key': 'your-api-key',
'Content-Type': 'application/json',
},
body: JSON.stringify({
input: 'Sum column B where column A is Completed'
})
});
const data = await response.json();
console.log(data.excel); // =SUMIF(A:A,"Completed",B:B)
Python
import requests
response = requests.post(
'https://your-domain.com/api/generate-formula',
headers={
'X-API-Key': 'your-api-key',
'Content-Type': 'application/json',
},
json={
'input': 'Sum column B where column A is Completed'
}
)
data = response.json()
print(data['excel']) # =SUMIF(A:A,"Completed",B:B)
Notes
- All endpoints require paid API keys (except free tier for testing)
- Rate limits reset every hour
- Warnings array contains platform-specific differences or limitations
- Internal prompts are not exposed in API responses