Qordinate acts as your intelligent layer between apps like Cursor and your life. We handle the messy API connections and coordination so you can focus on what actually matters.
401 UnauthorizedHTTP 401 Unauthorized
{
"error": "unauthorized",
"message": "Invalid API key provided"
}
403 ForbiddenHTTP 403 Forbidden
{
"error": "forbidden",
"message": "API key does not have required permissions"
}
429 Too Many RequestsHTTP 429 Too Many Requests
{
"error": "rate_limit_exceeded",
"message": "Rate limit exceeded. Please try again later.",
"retry_after": 60
}
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1640995200
400 Bad RequestHTTP 400 Bad Request
{
"error": "invalid_request",
"message": "Invalid request parameters",
"details": {
"model": "Model not found or not available"
}
}
500 Internal Server ErrorHTTP 500 Internal Server Error
{
"error": "internal_error",
"message": "An internal error occurred"
}
cursor.APIErrorTraceback (most recent call last):
File "cursor_script.py", line 10, in <module>
client = Cursor(api_key='invalid_key')
File "/usr/local/lib/python3.9/site-packages/cursor/client.py", line 45, in __init__
client.authenticate()
File "/usr/local/lib/python3.9/site-packages/cursor/client.py", line 78, in authenticate
raise APIError('unauthorized', 'Invalid API key provided')
cursor.APIError: unauthorized: Invalid API key provided
CursorAPIErrorCursorAPIError: Rate limit exceeded. Please try again later.
at CursorClient._request (/node_modules/cursor-sdk/dist/client.js:234:19)
at processTicksAndRejections (internal/process/task_queues.js:95:5)
at async CursorClient.generateCode (/node_modules/cursor-sdk/dist/api.js:123:12)
at async main (/app/index.js:23:18)
{
statusCode: 429,
body: {
error: 'rate_limit_exceeded',
message: 'Rate limit exceeded. Please try again later.',
retry_after: 60
},
headers: {
'x-ratelimit-limit': '100',
'x-ratelimit-remaining': '0',
'x-ratelimit-reset': '1640995200'
}
}
model_not_foundHTTP 400 Bad Request
{
"error": "model_not_found",
"message": "The model 'gpt-5-turbo' does not exist or you do not have access to it"
}
context_length_exceededHTTP 400 Bad Request
{
"error": "context_length_exceeded",
"message": "The context length exceeds the maximum allowed length for this model"
}
invalid_promptHTTP 400 Bad Request
{
"error": "invalid_prompt",
"message": "The prompt contains content that violates our usage policy"
}
tool_execution_failedHTTP 500 Internal Server Error
{
"error": "tool_execution_failed",
"message": "Failed to execute tool: terminal_command",
"details": "Command not found: nonexistent_command"
}
file_not_foundHTTP 404 Not Found
{
"error": "file_not_found",
"message": "File not found: /path/to/nonexistent/file.txt"
}
insufficient_creditsHTTP 402 Payment Required
{
"error": "insufficient_credits",
"message": "Your account has insufficient credits to complete this request"
}
billing_requiredHTTP 402 Payment Required
{
"error": "billing_required",
"message": "This feature requires a paid plan"
}
connection_timeoutError: connect ETIMEDOUT 104.18.10.207:443
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1146:16)
ssl_errorError: certificate verify failed: certificate has expired
at TLSSocket.onConnectSecure (_tls_wrap.js:1504:34)
at TLSSocket.emit (events.js:314:20)
at TLSSocket._finishInit (_tls_wrap.js:945:8)
at TLSWrap.ssl.onhandshakedone (_tls_wrap.js:719:12)
invalid_syntaxSyntaxError: invalid syntax
File "script.py", line 1
def function(
^
SyntaxError: invalid syntax
import_errorTraceback (most recent call last):
File "script.py", line 1, in <module>
import nonexistent_module
ModuleNotFoundError: No module named 'nonexistent_module'