Qordinate acts as your intelligent layer between apps like Reddit and your life. We handle the messy API connections and coordination so you can focus on what actually matters.
401 UnauthorizedHTTP 401 Unauthorized
{
"error": "401",
"message": "Unauthorized"
}
invalid_grantHTTP 400 Bad Request
{
"error": "invalid_grant",
"error_description": "Invalid refresh token"
}
unsupported_grant_typeHTTP 400 Bad Request
{
"error": "unsupported_grant_type",
"error_description": "grant type not supported"
}
403 ForbiddenHTTP 403 Forbidden
{
"error": 403,
"message": "Forbidden",
"reason": "private subreddit"
}
404 Not FoundHTTP 404 Not Found
{
"error": 404,
"message": "Not Found",
"reason": "subreddit not found"
}
429 Too Many RequestsHTTP 429 Too Many Requests
{
"error": 429,
"message": "Too Many Requests",
"reason": "rate limit exceeded"
}
X-Ratelimit-Used: 600
X-Ratelimit-Remaining: 0
X-Ratelimit-Reset: 1640995200
prawcore.exceptions.OAuthExceptionTraceback (most recent call last):
File "reddit_script.py", line 10, in <module>
reddit = praw.Reddit(client_id='invalid', client_secret='invalid', user_agent='test')
File "/usr/local/lib/python3.9/site-packages/praw/reddit.py", line 201, in __init__
reddit._prepare_prawcore()
File "/usr/local/lib/python3.9/site-packages/praw/reddit.py", line 247, in _prepare_prawcore
raise OAuthException('invalid_grant', 'Bad Request')
prawcore.exceptions.OAuthException: invalid_grant: Bad Request
prawcore.exceptions.ResponseExceptionTraceback (most recent call last):
File "reddit_script.py", line 15, in <module>
subreddit = reddit.subreddit('nonexistent_subreddit_12345')
File "/usr/local/lib/python3.9/site-packages/praw/models/subreddit.py", line 123, in __init__
self._fetch()
File "/usr/local/lib/python3.9/site-packages/praw/models/redditbase.py", line 645, in _fetch
raise ResponseException(response)
prawcore.exceptions.ResponseException: received 404 HTTP response
SnoowrapErrorSnoowrapError: invalid_grant: Bad Request
at Snoowrap._get (/node_modules/snoowrap/dist/snoowrap.js:234:19)
at processTicksAndRejections (internal/process/task_queues.js:95:5)
at async Snoowrap.getAccessToken (/node_modules/snoowrap/dist/snoowrap.js:345:12)
at async main (/app/index.js:23:18)
{
name: 'StatusCodeError',
statusCode: 400,
error: {
error: 'invalid_grant',
error_description: 'Bad Request'
}
}
USER_DOESNT_EXISTHTTP 400 Bad Request
{
"error": 400,
"message": "Bad Request",
"reason": "USER_DOESNT_EXIST"
}
SUBREDDIT_DOESNT_EXISTHTTP 400 Bad Request
{
"error": 400,
"message": "Bad Request",
"reason": "SUBREDDIT_DOESNT_EXIST"
}
QUOTA_FILLEDHTTP 400 Bad Request
{
"error": 400,
"message": "Bad Request",
"reason": "QUOTA_FILLED"
}
TOO_LONGHTTP 400 Bad Request
{
"error": 400,
"message": "Bad Request",
"reason": "TOO_LONG",
"explanation": "we only support links up to 2048 characters long"
}
INVALID_OPTIONHTTP 400 Bad Request
{
"error": 400,
"message": "Bad Request",
"reason": "INVALID_OPTION",
"explanation": "that option is not valid"
}
RATELIMITHTTP 429 Too Many Requests
{
"error": 429,
"message": "Too Many Requests",
"reason": "RATELIMIT"
}
X-Ratelimit-Used: 600
X-Ratelimit-Remaining: 0
X-Ratelimit-Reset: 1640995200
Connection timeoutError: connect ETIMEDOUT 151.101.193.140:443
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1146:16)
SSL ErrorError: 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)