dragonbane

v2 API Details

May 7th, 2020 (edited)
234
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.83 KB | None | 0 0
  1. Rate Limits:
  2. Not more than 20 requests in 10 seconds, else restricted for 1 minute
  3.  
  4. API Key:
  5. xx
  6.  
  7. API Scopes:
  8. locked_spoiler_access
  9. locked_encrypt_spoiler_access
  10. can_unlock_spoiler
  11. can_unlock_encrypt_spoiler
  12. can_create_encrypt
  13.  
  14. Generic error return codes:
  15. 503 (API not ready)
  16. 403 (invalid API key or insufficient API scope)
  17. 429 (rate limit exceeded)
  18.  
  19.  
  20. Endpoints (https://ootrandomizer.com):
  21.  
  22. *Create Seed*
  23. Request:
  24. URL: "/api/v2/seed/create"
  25. Method: POST
  26. Required query parameters: key (API key)
  27. Optional query parameters: version (SemVer format, e.g. 5.2.0 for release or dev_x.x.x for dev), locked (if present spoiler log will be hidden by default, otherwise shown), encrypt (creates an encrypted seed, requires "can_create_encrypt" scope)
  28. Optional API scope: can_create_encrypt
  29. Body: JSON settings map (a seed field can be included to force a specific seed string, otherwise random)
  30.  
  31. Response:
  32. Possible error codes: 400 (invalid settings), 409 (version requested is ambiguous or not available), 423 (queue is currently full), 500 (internal database error)
  33. Return data type if success (seed queried): application/json
  34. Return data fields:
  35. -id (unique seed ID, can be attached to "https://ootrandomizer.com/seed/get?id=" to direct users to the seed page)
  36. -version (randomizer version selected, defaults to latest master version unless overridden with query parameter)
  37. -spoilers (true if a spoiler log will be generated and shown to the user by default, false otherwise)
  38.  
  39.  
  40. *Get Seed Status*
  41. Request:
  42. URL: "/api/v2/seed/status"
  43. Method: GET
  44. Required query parameters: key (API key), id (seed ID)
  45.  
  46. Response:
  47. Possible error codes: 404 (seed not found/expired)
  48. Return data type if success: application/json
  49. Return data fields:
  50. -status (0 = still generating, 1 = generated success, 2 = generated with link (not possible from API), 3 = failed to generate)
  51. -progress (generation progress, 100 if finished with success or error)
  52. Optional return data fields:
  53. -version (randomizer version in-use ; only present if status = 0)
  54. -positionQueue (position in queue, 0 if currently processing ; only present if status = 0)
  55. -maxWaitTime (ETA in seconds, 0 if currently processing ; only present if status = 0)
  56. -isMultiWorld (only present if status = 0)
  57.  
  58.  
  59. *Get Seed Details*
  60. Request:
  61. URL: "/api/v2/seed/details"
  62. Method: GET
  63. Required query parameters: key (API key), id (seed ID)
  64. Optional API scope: locked_spoiler_access, locked_encrypt_spoiler_access
  65.  
  66. Response:
  67. Possible error codes: 404 (seed not found/expired/errored), 204 (still generating)
  68. Return data type if success: application/json
  69. Return data fields:
  70. -version (randomizer version used)
  71. -seed (seed string)
  72. -settingsString
  73. -settingsLog (full JSON settings log, null if none was generated which is only possible on very old versions)
  74. -spoilerLog (full JSON spoiler log, null if none was generated or when insufficient API privileges to read a hidden log ; with correct API scope this data is present even if the log was hidden from users)
  75. -creationTimestamp (timestamp when the seed was created)
  76.  
  77.  
  78. *Get Seed Patch File*
  79. Request:
  80. URL: "/api/v2/seed/patch"
  81. Method: GET
  82. Required query parameters: key (API key), id (seed ID)
  83.  
  84. Response:
  85. Possible error codes: 404 (seed not found/expired/errored), 204 (still generating)
  86. Return data type if success: application/octet-stream
  87. Return data: raw patch file
  88.  
  89.  
  90. *Unlock Seed Spoiler Log*
  91. Request:
  92. URL: "/api/v2/seed/unlock"
  93. Method: POST
  94. Required API scope: can_unlock_spoiler
  95. Optional API scope: can_unlock_encrypt_spoiler
  96. Required query parameters: key (API key), id (seed ID)
  97. Body: N/A
  98.  
  99. Response:
  100. Possible error codes: 403 (insufficient API scope), 404 (seed not found/expired/errored), 204 (still generating), 208 (no spoiler log available or it was already unlocked)
  101. Return data type if success: text/plain
  102. Return data: "Spoiler log unlocked"
Add Comment
Please, Sign In to add comment