Commit badb2d

2026-01-16 20:48:40 DonovanDMC: -/-
/dev/null .. yiffyapi/shared responses.md
@@ 0,0 1,134 @@
+ # Shared Responses
+
+ <p>These may show up on any given route in any service.</p>
+ <p>The contents of <code>error</code> &amp; <code>message</code> are unreliable, use <code>code</code> instead. See <a href="/YiffyAPI/Error Codes">Error Codes</a> for a full list.</p>
+
+
+ ::: danger
+ # 401 Unauthorized: Invalid API Key
+ ```json
+ {
+ "success": false,
+ "code": 1010,
+ "error": "Invalid API key."
+ }
+ ```
+ :::
+
+ ::: danger
+ # 401 Unauthorized: API Key Inactive
+ ```json
+ {
+ "success": false,
+ "code": 1011,
+ "error": "API key is inactive."
+ }
+ ```
+ :::
+
+ ::: danger
+ # 401 Unauthorized: API Key Required
+ ```json
+ {
+ "success": false,
+ "code": 1013,
+ "error": "An API key is required to access this service."
+ }
+ ```
+ :::
+
+ ::: danger
+ # 403 Forbidden: API Key Disabled
+ ```json
+ {
+ "success": false,
+ "code": 1012,
+ "error": "Your API key has been disabled by an administrator. See \"extra.reason\" for the reasoning.",
+ "extra": {
+ "reason": "",
+ "support": "https://yiff.rest/support"
+ }
+ }
+ ```
+ :::
+
+ ::: danger
+ # 403 Forbidden: No Access To Service
+ ```json
+ {
+ "success": false,
+ "code": 1022,
+ "error": "You do not have access to this service."
+ }
+ ```
+ :::
+
+ ::: danger
+ # 403 Forbidden: IP Blocked
+ ```json
+ {
+ "success": false,
+ "code": 1002,
+ "error": "You have been blocked from accessing this service.",
+ "extra": {
+ "reason": "",
+ "support": "https://yiff.rest/support"
+ }
+ }
+ ```
+ :::
+
+ ::: danger
+ # 429 Too Many Requests: Rate Limited
+ ```json
+ // global headers will also be present
+ {
+ "success": false,
+ "error": "Request Limit Exceeded",
+ "code": 1000,
+ "info": {
+ "limit": 0, // X-RateLimit-Limit
+ "remaining": 0, // X-RateLimit-Remaining
+ "reset": 0, // X-RateLimit-Reset
+ "resetAfter": 0, // X-RateLimit-Reset-After
+ "retryAfter": 0, // Retry-After
+ "bucket": "", // X-RateLimit-Bucket
+ "precision": "millisecond", // X-RateLimit-Precision
+ "global": false
+ }
+ }
+ ```
+ :::
+ :::
+
+ ::: danger
+ # 429 Too Many Requests: Globally Rate Limited
+ ```json
+ // route specific headers will also be present
+ {
+ "success": false,
+ "error": "Request Limit Exceeded",
+ "code": 1001,
+ "info": {
+ "limit": 0, // X-RateLimit-Global-Limit
+ "remaining": 0, // X-RateLimit-Global-Remaining
+ "reset": 0, // X-RateLimit-Global-Reset
+ "resetAfter": 0, // X-RateLimit-Global-Reset-After
+ "retryAfter": 0, // Retry-After
+ "precision": "millisecond", // X-RateLimit-Global-Precision
+ "global": true
+ }
+ }
+ ```
+ :::
+
+ ::: danger
+ # 503 Service Unavailable: Read Only
+ ```json
+ {
+ "success": false,
+ "code": 2,
+ "error": "This service is currently in read only mode. Try again later."
+ }
+ ```
+ :::
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9