@deeprelay/sdk 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (514) hide show
  1. package/.openapi-generator/FILES +66 -0
  2. package/README.md +47 -11
  3. package/dist/apis/AlertsApi.d.ts +50 -0
  4. package/dist/apis/AlertsApi.js +127 -0
  5. package/dist/apis/ApiKeysApi.d.ts +107 -0
  6. package/dist/apis/ApiKeysApi.js +284 -0
  7. package/dist/apis/BillingApi.d.ts +25 -7
  8. package/dist/apis/BillingApi.js +57 -7
  9. package/dist/apis/InferenceApi.d.ts +12 -1
  10. package/dist/apis/InferenceApi.js +22 -1
  11. package/dist/apis/MetaApi.d.ts +1 -1
  12. package/dist/apis/MetaApi.js +1 -1
  13. package/dist/apis/RequestsApi.d.ts +130 -0
  14. package/dist/apis/RequestsApi.js +269 -0
  15. package/dist/apis/UsageApi.d.ts +15 -1
  16. package/dist/apis/UsageApi.js +19 -2
  17. package/dist/apis/WebhooksApi.d.ts +1 -1
  18. package/dist/apis/WebhooksApi.js +1 -1
  19. package/dist/apis/index.d.ts +3 -0
  20. package/dist/apis/index.js +3 -0
  21. package/dist/esm/apis/AlertsApi.d.ts +50 -0
  22. package/dist/esm/apis/AlertsApi.js +123 -0
  23. package/dist/esm/apis/ApiKeysApi.d.ts +107 -0
  24. package/dist/esm/apis/ApiKeysApi.js +280 -0
  25. package/dist/esm/apis/BillingApi.d.ts +25 -7
  26. package/dist/esm/apis/BillingApi.js +57 -7
  27. package/dist/esm/apis/InferenceApi.d.ts +12 -1
  28. package/dist/esm/apis/InferenceApi.js +22 -1
  29. package/dist/esm/apis/MetaApi.d.ts +1 -1
  30. package/dist/esm/apis/MetaApi.js +1 -1
  31. package/dist/esm/apis/RequestsApi.d.ts +130 -0
  32. package/dist/esm/apis/RequestsApi.js +265 -0
  33. package/dist/esm/apis/UsageApi.d.ts +15 -1
  34. package/dist/esm/apis/UsageApi.js +18 -1
  35. package/dist/esm/apis/WebhooksApi.d.ts +1 -1
  36. package/dist/esm/apis/WebhooksApi.js +1 -1
  37. package/dist/esm/apis/index.d.ts +3 -0
  38. package/dist/esm/apis/index.js +3 -0
  39. package/dist/esm/models/AlertEmailToggles.d.ts +50 -0
  40. package/dist/esm/models/AlertEmailToggles.js +55 -0
  41. package/dist/esm/models/AlertSettings.d.ts +51 -0
  42. package/dist/esm/models/AlertSettings.js +56 -0
  43. package/dist/esm/models/AlertSettingsUpdate.d.ts +39 -0
  44. package/dist/esm/models/AlertSettingsUpdate.js +48 -0
  45. package/dist/esm/models/ApiKey.d.ts +123 -0
  46. package/dist/esm/models/ApiKey.js +96 -0
  47. package/dist/esm/models/ApiKeyCreate.d.ts +70 -0
  48. package/dist/esm/models/ApiKeyCreate.js +57 -0
  49. package/dist/esm/models/ApiKeyCreated.d.ts +129 -0
  50. package/dist/esm/models/ApiKeyCreated.js +100 -0
  51. package/dist/esm/models/ApiKeyList.d.ts +33 -0
  52. package/dist/esm/models/ApiKeyList.js +44 -0
  53. package/dist/esm/models/ApiKeyScopes.d.ts +65 -0
  54. package/dist/esm/models/ApiKeyScopes.js +66 -0
  55. package/dist/esm/models/ApiKeyUpdate.d.ts +62 -0
  56. package/dist/esm/models/ApiKeyUpdate.js +51 -0
  57. package/dist/esm/models/Balance.d.ts +1 -1
  58. package/dist/esm/models/Balance.js +1 -1
  59. package/dist/esm/models/ChatChoice.d.ts +11 -1
  60. package/dist/esm/models/ChatChoice.js +3 -1
  61. package/dist/esm/models/ChatCompletionRequest.d.ts +78 -2
  62. package/dist/esm/models/ChatCompletionRequest.js +26 -1
  63. package/dist/esm/models/ChatCompletionRequestResponseFormat.d.ts +31 -0
  64. package/dist/esm/models/ChatCompletionRequestResponseFormat.js +52 -0
  65. package/dist/esm/models/ChatCompletionRequestToolChoice.d.ts +23 -0
  66. package/dist/esm/models/ChatCompletionRequestToolChoice.js +50 -0
  67. package/dist/esm/models/ChatCompletionResponse.d.ts +1 -1
  68. package/dist/esm/models/ChatCompletionResponse.js +1 -1
  69. package/dist/esm/models/ChatMessage.d.ts +22 -2
  70. package/dist/esm/models/ChatMessage.js +10 -5
  71. package/dist/esm/models/CostDetails.d.ts +59 -0
  72. package/dist/esm/models/CostDetails.js +59 -0
  73. package/dist/esm/models/CreateCryptoDepositRequest.d.ts +4 -1
  74. package/dist/esm/models/CreateCryptoDepositRequest.js +4 -2
  75. package/dist/esm/models/CreateWebhookEndpointRequest.d.ts +5 -1
  76. package/dist/esm/models/CreateWebhookEndpointRequest.js +6 -2
  77. package/dist/esm/models/CryptoDeposit.d.ts +3 -1
  78. package/dist/esm/models/CryptoDeposit.js +4 -2
  79. package/dist/esm/models/Embedding.d.ts +1 -1
  80. package/dist/esm/models/Embedding.js +1 -1
  81. package/dist/esm/models/EmbeddingsRequest.d.ts +1 -1
  82. package/dist/esm/models/EmbeddingsRequest.js +1 -1
  83. package/dist/esm/models/EmbeddingsRequestInput.d.ts +1 -1
  84. package/dist/esm/models/EmbeddingsRequestInput.js +1 -1
  85. package/dist/esm/models/EmbeddingsResponse.d.ts +1 -1
  86. package/dist/esm/models/EmbeddingsResponse.js +1 -1
  87. package/dist/esm/models/EmbeddingsUsage.d.ts +1 -1
  88. package/dist/esm/models/EmbeddingsUsage.js +1 -1
  89. package/dist/esm/models/GetHealth200Response.d.ts +1 -1
  90. package/dist/esm/models/GetHealth200Response.js +1 -1
  91. package/dist/esm/models/ImagesGenerationsRequest.d.ts +2 -2
  92. package/dist/esm/models/ImagesGenerationsRequest.js +1 -1
  93. package/dist/esm/models/ImagesResponse.d.ts +1 -1
  94. package/dist/esm/models/ImagesResponse.js +1 -1
  95. package/dist/esm/models/ImagesResponseDataInner.d.ts +1 -1
  96. package/dist/esm/models/ImagesResponseDataInner.js +1 -1
  97. package/dist/esm/models/ImagesResponseUsage.d.ts +1 -1
  98. package/dist/esm/models/ImagesResponseUsage.js +1 -1
  99. package/dist/esm/models/InferencePreflight.d.ts +5 -2
  100. package/dist/esm/models/InferencePreflight.js +4 -1
  101. package/dist/esm/models/JSONSchemaFormat.d.ts +54 -0
  102. package/dist/esm/models/JSONSchemaFormat.js +49 -0
  103. package/dist/esm/models/ListDeposits200Response.d.ts +1 -1
  104. package/dist/esm/models/ListDeposits200Response.js +1 -1
  105. package/dist/esm/models/Model.d.ts +54 -5
  106. package/dist/esm/models/Model.js +21 -2
  107. package/dist/esm/models/ModelList.d.ts +1 -1
  108. package/dist/esm/models/ModelList.js +1 -1
  109. package/dist/esm/models/ModelMetrics.d.ts +101 -0
  110. package/dist/esm/models/ModelMetrics.js +85 -0
  111. package/dist/esm/models/ModelParametersInner.d.ts +1 -1
  112. package/dist/esm/models/ModelParametersInner.js +1 -1
  113. package/dist/esm/models/ModelPricing.d.ts +1 -1
  114. package/dist/esm/models/ModelPricing.js +1 -1
  115. package/dist/esm/models/ModelRate.d.ts +1 -1
  116. package/dist/esm/models/ModelRate.js +1 -1
  117. package/dist/esm/models/OpenAIErrorEnvelope.d.ts +1 -1
  118. package/dist/esm/models/OpenAIErrorEnvelope.js +1 -1
  119. package/dist/esm/models/OpenAIErrorEnvelopeError.d.ts +8 -2
  120. package/dist/esm/models/OpenAIErrorEnvelopeError.js +3 -1
  121. package/dist/esm/models/PeakWindow.d.ts +1 -1
  122. package/dist/esm/models/PeakWindow.js +1 -1
  123. package/dist/esm/models/Problem.d.ts +22 -1
  124. package/dist/esm/models/Problem.js +14 -1
  125. package/dist/esm/models/RefereeStatus.d.ts +1 -1
  126. package/dist/esm/models/RefereeStatus.js +1 -1
  127. package/dist/esm/models/Referral.d.ts +14 -2
  128. package/dist/esm/models/Referral.js +9 -1
  129. package/dist/esm/models/RequestLogEntry.d.ts +210 -0
  130. package/dist/esm/models/RequestLogEntry.js +129 -0
  131. package/dist/esm/models/RequestLogPage.d.ts +45 -0
  132. package/dist/esm/models/RequestLogPage.js +52 -0
  133. package/dist/esm/models/ResponseFormatJSONObject.d.ts +39 -0
  134. package/dist/esm/models/ResponseFormatJSONObject.js +51 -0
  135. package/dist/esm/models/ResponseFormatJSONSchema.d.ts +46 -0
  136. package/dist/esm/models/ResponseFormatJSONSchema.js +56 -0
  137. package/dist/esm/models/ResponseFormatText.d.ts +39 -0
  138. package/dist/esm/models/ResponseFormatText.js +51 -0
  139. package/dist/esm/models/SpendingLimit.d.ts +1 -1
  140. package/dist/esm/models/SpendingLimit.js +1 -1
  141. package/dist/esm/models/StreamOptions.d.ts +1 -1
  142. package/dist/esm/models/StreamOptions.js +1 -1
  143. package/dist/esm/models/Subscription.d.ts +9 -2
  144. package/dist/esm/models/Subscription.js +6 -1
  145. package/dist/esm/models/SubscriptionCheckoutRequest.d.ts +18 -4
  146. package/dist/esm/models/SubscriptionCheckoutRequest.js +10 -1
  147. package/dist/esm/models/SubscriptionCheckoutSession.d.ts +21 -1
  148. package/dist/esm/models/SubscriptionCheckoutSession.js +12 -1
  149. package/dist/esm/models/SubscriptionModelUsage.d.ts +68 -0
  150. package/dist/esm/models/SubscriptionModelUsage.js +67 -0
  151. package/dist/esm/models/SubscriptionPlan.d.ts +4 -4
  152. package/dist/esm/models/SubscriptionPlan.js +1 -1
  153. package/dist/esm/models/SubscriptionPortalRequest.d.ts +1 -1
  154. package/dist/esm/models/SubscriptionPortalRequest.js +1 -1
  155. package/dist/esm/models/SubscriptionPortalSession.d.ts +1 -1
  156. package/dist/esm/models/SubscriptionPortalSession.js +1 -1
  157. package/dist/esm/models/SubscriptionPrice.d.ts +1 -1
  158. package/dist/esm/models/SubscriptionPrice.js +1 -1
  159. package/dist/esm/models/SubscriptionQuota.d.ts +10 -4
  160. package/dist/esm/models/SubscriptionQuota.js +8 -4
  161. package/dist/esm/models/SubscriptionTier.d.ts +53 -0
  162. package/dist/esm/models/SubscriptionTier.js +55 -0
  163. package/dist/esm/models/SubscriptionUpgradeRequest.d.ts +32 -0
  164. package/dist/esm/models/SubscriptionUpgradeRequest.js +43 -0
  165. package/dist/esm/models/SubscriptionUsage.d.ts +28 -3
  166. package/dist/esm/models/SubscriptionUsage.js +15 -4
  167. package/dist/esm/models/Tool.d.ts +46 -0
  168. package/dist/esm/models/Tool.js +56 -0
  169. package/dist/esm/models/ToolCall.d.ts +60 -0
  170. package/dist/esm/models/ToolCall.js +56 -0
  171. package/dist/esm/models/ToolCallFunction.d.ts +39 -0
  172. package/dist/esm/models/ToolCallFunction.js +47 -0
  173. package/dist/esm/models/ToolChoiceFunction.d.ts +46 -0
  174. package/dist/esm/models/ToolChoiceFunction.js +56 -0
  175. package/dist/esm/models/ToolChoiceFunctionFunction.d.ts +32 -0
  176. package/dist/esm/models/ToolChoiceFunctionFunction.js +43 -0
  177. package/dist/esm/models/ToolFunction.d.ts +47 -0
  178. package/dist/esm/models/ToolFunction.js +47 -0
  179. package/dist/esm/models/UpdateSpendingLimitRequest.d.ts +1 -1
  180. package/dist/esm/models/UpdateSpendingLimitRequest.js +1 -1
  181. package/dist/esm/models/Usage.d.ts +29 -1
  182. package/dist/esm/models/Usage.js +12 -1
  183. package/dist/esm/models/UsageBucket.d.ts +39 -6
  184. package/dist/esm/models/UsageBucket.js +11 -1
  185. package/dist/esm/models/UsageCompletionTokensDetails.d.ts +32 -0
  186. package/dist/esm/models/UsageCompletionTokensDetails.js +41 -0
  187. package/dist/esm/models/UsagePage.d.ts +2 -1
  188. package/dist/esm/models/UsagePage.js +1 -1
  189. package/dist/esm/models/UsagePromptTokensDetails.d.ts +33 -0
  190. package/dist/esm/models/UsagePromptTokensDetails.js +41 -0
  191. package/dist/esm/models/VideoCreateRequest.d.ts +1 -1
  192. package/dist/esm/models/VideoCreateRequest.js +1 -1
  193. package/dist/esm/models/VideoJob.d.ts +1 -1
  194. package/dist/esm/models/VideoJob.js +1 -1
  195. package/dist/esm/models/VideoList.d.ts +1 -1
  196. package/dist/esm/models/VideoList.js +1 -1
  197. package/dist/esm/models/WebhookEndpoint.d.ts +5 -1
  198. package/dist/esm/models/WebhookEndpoint.js +6 -2
  199. package/dist/esm/models/WebhookEndpointPage.d.ts +1 -1
  200. package/dist/esm/models/WebhookEndpointPage.js +1 -1
  201. package/dist/esm/models/index.d.ts +30 -0
  202. package/dist/esm/models/index.js +30 -0
  203. package/dist/esm/runtime.d.ts +1 -1
  204. package/dist/esm/runtime.js +2 -2
  205. package/dist/models/AlertEmailToggles.d.ts +50 -0
  206. package/dist/models/AlertEmailToggles.js +62 -0
  207. package/dist/models/AlertSettings.d.ts +51 -0
  208. package/dist/models/AlertSettings.js +63 -0
  209. package/dist/models/AlertSettingsUpdate.d.ts +39 -0
  210. package/dist/models/AlertSettingsUpdate.js +55 -0
  211. package/dist/models/ApiKey.d.ts +123 -0
  212. package/dist/models/ApiKey.js +103 -0
  213. package/dist/models/ApiKeyCreate.d.ts +70 -0
  214. package/dist/models/ApiKeyCreate.js +64 -0
  215. package/dist/models/ApiKeyCreated.d.ts +129 -0
  216. package/dist/models/ApiKeyCreated.js +107 -0
  217. package/dist/models/ApiKeyList.d.ts +33 -0
  218. package/dist/models/ApiKeyList.js +51 -0
  219. package/dist/models/ApiKeyScopes.d.ts +65 -0
  220. package/dist/models/ApiKeyScopes.js +74 -0
  221. package/dist/models/ApiKeyUpdate.d.ts +62 -0
  222. package/dist/models/ApiKeyUpdate.js +58 -0
  223. package/dist/models/Balance.d.ts +1 -1
  224. package/dist/models/Balance.js +1 -1
  225. package/dist/models/ChatChoice.d.ts +11 -1
  226. package/dist/models/ChatChoice.js +3 -1
  227. package/dist/models/ChatCompletionRequest.d.ts +78 -2
  228. package/dist/models/ChatCompletionRequest.js +26 -1
  229. package/dist/models/ChatCompletionRequestResponseFormat.d.ts +31 -0
  230. package/dist/models/ChatCompletionRequestResponseFormat.js +58 -0
  231. package/dist/models/ChatCompletionRequestToolChoice.d.ts +23 -0
  232. package/dist/models/ChatCompletionRequestToolChoice.js +56 -0
  233. package/dist/models/ChatCompletionResponse.d.ts +1 -1
  234. package/dist/models/ChatCompletionResponse.js +1 -1
  235. package/dist/models/ChatMessage.d.ts +22 -2
  236. package/dist/models/ChatMessage.js +10 -5
  237. package/dist/models/CostDetails.d.ts +59 -0
  238. package/dist/models/CostDetails.js +66 -0
  239. package/dist/models/CreateCryptoDepositRequest.d.ts +4 -1
  240. package/dist/models/CreateCryptoDepositRequest.js +4 -2
  241. package/dist/models/CreateWebhookEndpointRequest.d.ts +5 -1
  242. package/dist/models/CreateWebhookEndpointRequest.js +6 -2
  243. package/dist/models/CryptoDeposit.d.ts +3 -1
  244. package/dist/models/CryptoDeposit.js +4 -2
  245. package/dist/models/Embedding.d.ts +1 -1
  246. package/dist/models/Embedding.js +1 -1
  247. package/dist/models/EmbeddingsRequest.d.ts +1 -1
  248. package/dist/models/EmbeddingsRequest.js +1 -1
  249. package/dist/models/EmbeddingsRequestInput.d.ts +1 -1
  250. package/dist/models/EmbeddingsRequestInput.js +1 -1
  251. package/dist/models/EmbeddingsResponse.d.ts +1 -1
  252. package/dist/models/EmbeddingsResponse.js +1 -1
  253. package/dist/models/EmbeddingsUsage.d.ts +1 -1
  254. package/dist/models/EmbeddingsUsage.js +1 -1
  255. package/dist/models/GetHealth200Response.d.ts +1 -1
  256. package/dist/models/GetHealth200Response.js +1 -1
  257. package/dist/models/ImagesGenerationsRequest.d.ts +2 -2
  258. package/dist/models/ImagesGenerationsRequest.js +1 -1
  259. package/dist/models/ImagesResponse.d.ts +1 -1
  260. package/dist/models/ImagesResponse.js +1 -1
  261. package/dist/models/ImagesResponseDataInner.d.ts +1 -1
  262. package/dist/models/ImagesResponseDataInner.js +1 -1
  263. package/dist/models/ImagesResponseUsage.d.ts +1 -1
  264. package/dist/models/ImagesResponseUsage.js +1 -1
  265. package/dist/models/InferencePreflight.d.ts +5 -2
  266. package/dist/models/InferencePreflight.js +4 -1
  267. package/dist/models/JSONSchemaFormat.d.ts +54 -0
  268. package/dist/models/JSONSchemaFormat.js +56 -0
  269. package/dist/models/ListDeposits200Response.d.ts +1 -1
  270. package/dist/models/ListDeposits200Response.js +1 -1
  271. package/dist/models/Model.d.ts +54 -5
  272. package/dist/models/Model.js +21 -2
  273. package/dist/models/ModelList.d.ts +1 -1
  274. package/dist/models/ModelList.js +1 -1
  275. package/dist/models/ModelMetrics.d.ts +101 -0
  276. package/dist/models/ModelMetrics.js +93 -0
  277. package/dist/models/ModelParametersInner.d.ts +1 -1
  278. package/dist/models/ModelParametersInner.js +1 -1
  279. package/dist/models/ModelPricing.d.ts +1 -1
  280. package/dist/models/ModelPricing.js +1 -1
  281. package/dist/models/ModelRate.d.ts +1 -1
  282. package/dist/models/ModelRate.js +1 -1
  283. package/dist/models/OpenAIErrorEnvelope.d.ts +1 -1
  284. package/dist/models/OpenAIErrorEnvelope.js +1 -1
  285. package/dist/models/OpenAIErrorEnvelopeError.d.ts +8 -2
  286. package/dist/models/OpenAIErrorEnvelopeError.js +3 -1
  287. package/dist/models/PeakWindow.d.ts +1 -1
  288. package/dist/models/PeakWindow.js +1 -1
  289. package/dist/models/Problem.d.ts +22 -1
  290. package/dist/models/Problem.js +14 -1
  291. package/dist/models/RefereeStatus.d.ts +1 -1
  292. package/dist/models/RefereeStatus.js +1 -1
  293. package/dist/models/Referral.d.ts +14 -2
  294. package/dist/models/Referral.js +9 -1
  295. package/dist/models/RequestLogEntry.d.ts +210 -0
  296. package/dist/models/RequestLogEntry.js +137 -0
  297. package/dist/models/RequestLogPage.d.ts +45 -0
  298. package/dist/models/RequestLogPage.js +59 -0
  299. package/dist/models/ResponseFormatJSONObject.d.ts +39 -0
  300. package/dist/models/ResponseFormatJSONObject.js +59 -0
  301. package/dist/models/ResponseFormatJSONSchema.d.ts +46 -0
  302. package/dist/models/ResponseFormatJSONSchema.js +64 -0
  303. package/dist/models/ResponseFormatText.d.ts +39 -0
  304. package/dist/models/ResponseFormatText.js +59 -0
  305. package/dist/models/SpendingLimit.d.ts +1 -1
  306. package/dist/models/SpendingLimit.js +1 -1
  307. package/dist/models/StreamOptions.d.ts +1 -1
  308. package/dist/models/StreamOptions.js +1 -1
  309. package/dist/models/Subscription.d.ts +9 -2
  310. package/dist/models/Subscription.js +6 -1
  311. package/dist/models/SubscriptionCheckoutRequest.d.ts +18 -4
  312. package/dist/models/SubscriptionCheckoutRequest.js +11 -1
  313. package/dist/models/SubscriptionCheckoutSession.d.ts +21 -1
  314. package/dist/models/SubscriptionCheckoutSession.js +13 -1
  315. package/dist/models/SubscriptionModelUsage.d.ts +68 -0
  316. package/dist/models/SubscriptionModelUsage.js +74 -0
  317. package/dist/models/SubscriptionPlan.d.ts +4 -4
  318. package/dist/models/SubscriptionPlan.js +1 -1
  319. package/dist/models/SubscriptionPortalRequest.d.ts +1 -1
  320. package/dist/models/SubscriptionPortalRequest.js +1 -1
  321. package/dist/models/SubscriptionPortalSession.d.ts +1 -1
  322. package/dist/models/SubscriptionPortalSession.js +1 -1
  323. package/dist/models/SubscriptionPrice.d.ts +1 -1
  324. package/dist/models/SubscriptionPrice.js +1 -1
  325. package/dist/models/SubscriptionQuota.d.ts +10 -4
  326. package/dist/models/SubscriptionQuota.js +8 -4
  327. package/dist/models/SubscriptionTier.d.ts +53 -0
  328. package/dist/models/SubscriptionTier.js +62 -0
  329. package/dist/models/SubscriptionUpgradeRequest.d.ts +32 -0
  330. package/dist/models/SubscriptionUpgradeRequest.js +50 -0
  331. package/dist/models/SubscriptionUsage.d.ts +28 -3
  332. package/dist/models/SubscriptionUsage.js +15 -4
  333. package/dist/models/Tool.d.ts +46 -0
  334. package/dist/models/Tool.js +64 -0
  335. package/dist/models/ToolCall.d.ts +60 -0
  336. package/dist/models/ToolCall.js +64 -0
  337. package/dist/models/ToolCallFunction.d.ts +39 -0
  338. package/dist/models/ToolCallFunction.js +54 -0
  339. package/dist/models/ToolChoiceFunction.d.ts +46 -0
  340. package/dist/models/ToolChoiceFunction.js +64 -0
  341. package/dist/models/ToolChoiceFunctionFunction.d.ts +32 -0
  342. package/dist/models/ToolChoiceFunctionFunction.js +50 -0
  343. package/dist/models/ToolFunction.d.ts +47 -0
  344. package/dist/models/ToolFunction.js +54 -0
  345. package/dist/models/UpdateSpendingLimitRequest.d.ts +1 -1
  346. package/dist/models/UpdateSpendingLimitRequest.js +1 -1
  347. package/dist/models/Usage.d.ts +29 -1
  348. package/dist/models/Usage.js +12 -1
  349. package/dist/models/UsageBucket.d.ts +39 -6
  350. package/dist/models/UsageBucket.js +11 -1
  351. package/dist/models/UsageCompletionTokensDetails.d.ts +32 -0
  352. package/dist/models/UsageCompletionTokensDetails.js +48 -0
  353. package/dist/models/UsagePage.d.ts +2 -1
  354. package/dist/models/UsagePage.js +1 -1
  355. package/dist/models/UsagePromptTokensDetails.d.ts +33 -0
  356. package/dist/models/UsagePromptTokensDetails.js +48 -0
  357. package/dist/models/VideoCreateRequest.d.ts +1 -1
  358. package/dist/models/VideoCreateRequest.js +1 -1
  359. package/dist/models/VideoJob.d.ts +1 -1
  360. package/dist/models/VideoJob.js +1 -1
  361. package/dist/models/VideoList.d.ts +1 -1
  362. package/dist/models/VideoList.js +1 -1
  363. package/dist/models/WebhookEndpoint.d.ts +5 -1
  364. package/dist/models/WebhookEndpoint.js +6 -2
  365. package/dist/models/WebhookEndpointPage.d.ts +1 -1
  366. package/dist/models/WebhookEndpointPage.js +1 -1
  367. package/dist/models/index.d.ts +30 -0
  368. package/dist/models/index.js +30 -0
  369. package/dist/runtime.d.ts +1 -1
  370. package/dist/runtime.js +2 -2
  371. package/docs/AlertEmailToggles.md +40 -0
  372. package/docs/AlertSettings.md +40 -0
  373. package/docs/AlertSettingsUpdate.md +36 -0
  374. package/docs/AlertsApi.md +151 -0
  375. package/docs/ApiKey.md +65 -0
  376. package/docs/ApiKeyCreate.md +46 -0
  377. package/docs/ApiKeyCreated.md +67 -0
  378. package/docs/ApiKeyList.md +34 -0
  379. package/docs/ApiKeyScopes.md +38 -0
  380. package/docs/ApiKeyUpdate.md +45 -0
  381. package/docs/ApiKeysApi.md +389 -0
  382. package/docs/BillingApi.md +83 -3
  383. package/docs/ChatChoice.md +2 -0
  384. package/docs/ChatCompletionRequest.md +22 -0
  385. package/docs/ChatCompletionRequestResponseFormat.md +37 -0
  386. package/docs/ChatCompletionRequestToolChoice.md +37 -0
  387. package/docs/ChatMessage.md +4 -0
  388. package/docs/CostDetails.md +43 -0
  389. package/docs/InferenceApi.md +94 -71
  390. package/docs/JSONSchemaFormat.md +41 -0
  391. package/docs/Model.md +16 -0
  392. package/docs/ModelMetrics.md +55 -0
  393. package/docs/OpenAIErrorEnvelopeError.md +2 -0
  394. package/docs/Problem.md +4 -0
  395. package/docs/Referral.md +6 -2
  396. package/docs/RequestLogEntry.md +87 -0
  397. package/docs/RequestLogPage.md +38 -0
  398. package/docs/RequestsApi.md +282 -0
  399. package/docs/ResponseFormatJSONObject.md +35 -0
  400. package/docs/ResponseFormatJSONSchema.md +36 -0
  401. package/docs/ResponseFormatText.md +34 -0
  402. package/docs/Subscription.md +3 -1
  403. package/docs/SubscriptionCheckoutRequest.md +2 -0
  404. package/docs/SubscriptionCheckoutSession.md +4 -0
  405. package/docs/SubscriptionModelUsage.md +47 -0
  406. package/docs/SubscriptionPlan.md +1 -1
  407. package/docs/SubscriptionQuota.md +5 -3
  408. package/docs/SubscriptionTier.md +41 -0
  409. package/docs/SubscriptionUpgradeRequest.md +34 -0
  410. package/docs/SubscriptionUsage.md +10 -2
  411. package/docs/Tool.md +36 -0
  412. package/docs/ToolCall.md +41 -0
  413. package/docs/ToolCallFunction.md +36 -0
  414. package/docs/ToolChoiceFunction.md +36 -0
  415. package/docs/ToolChoiceFunctionFunction.md +34 -0
  416. package/docs/ToolFunction.md +38 -0
  417. package/docs/Usage.md +8 -0
  418. package/docs/UsageApi.md +17 -9
  419. package/docs/UsageBucket.md +11 -0
  420. package/docs/UsageCompletionTokensDetails.md +34 -0
  421. package/docs/UsagePromptTokensDetails.md +35 -0
  422. package/package.json +1 -1
  423. package/src/apis/AlertsApi.ts +145 -0
  424. package/src/apis/ApiKeysApi.ts +357 -0
  425. package/src/apis/BillingApi.ts +73 -7
  426. package/src/apis/InferenceApi.ts +32 -1
  427. package/src/apis/MetaApi.ts +1 -1
  428. package/src/apis/RequestsApi.ts +335 -0
  429. package/src/apis/UsageApi.ts +23 -1
  430. package/src/apis/WebhooksApi.ts +1 -1
  431. package/src/apis/index.ts +3 -0
  432. package/src/models/AlertEmailToggles.ts +93 -0
  433. package/src/models/AlertSettings.ts +101 -0
  434. package/src/models/AlertSettingsUpdate.ts +83 -0
  435. package/src/models/ApiKey.ts +205 -0
  436. package/src/models/ApiKeyCreate.ts +115 -0
  437. package/src/models/ApiKeyCreated.ts +214 -0
  438. package/src/models/ApiKeyList.ts +74 -0
  439. package/src/models/ApiKeyScopes.ts +106 -0
  440. package/src/models/ApiKeyUpdate.ts +105 -0
  441. package/src/models/Balance.ts +1 -1
  442. package/src/models/ChatChoice.ts +11 -1
  443. package/src/models/ChatCompletionRequest.ts +118 -2
  444. package/src/models/ChatCompletionRequestResponseFormat.ts +84 -0
  445. package/src/models/ChatCompletionRequestToolChoice.ts +70 -0
  446. package/src/models/ChatCompletionResponse.ts +1 -1
  447. package/src/models/ChatMessage.ts +35 -5
  448. package/src/models/CostDetails.ts +105 -0
  449. package/src/models/CreateCryptoDepositRequest.ts +5 -2
  450. package/src/models/CreateWebhookEndpointRequest.ts +6 -2
  451. package/src/models/CryptoDeposit.ts +4 -2
  452. package/src/models/Embedding.ts +1 -1
  453. package/src/models/EmbeddingsRequest.ts +1 -1
  454. package/src/models/EmbeddingsRequestInput.ts +1 -1
  455. package/src/models/EmbeddingsResponse.ts +1 -1
  456. package/src/models/EmbeddingsUsage.ts +1 -1
  457. package/src/models/GetHealth200Response.ts +1 -1
  458. package/src/models/ImagesGenerationsRequest.ts +2 -2
  459. package/src/models/ImagesResponse.ts +1 -1
  460. package/src/models/ImagesResponseDataInner.ts +1 -1
  461. package/src/models/ImagesResponseUsage.ts +1 -1
  462. package/src/models/InferencePreflight.ts +5 -2
  463. package/src/models/JSONSchemaFormat.ts +92 -0
  464. package/src/models/ListDeposits200Response.ts +1 -1
  465. package/src/models/Model.ts +78 -6
  466. package/src/models/ModelList.ts +1 -1
  467. package/src/models/ModelMetrics.ts +165 -0
  468. package/src/models/ModelParametersInner.ts +1 -1
  469. package/src/models/ModelPricing.ts +1 -1
  470. package/src/models/ModelRate.ts +1 -1
  471. package/src/models/OpenAIErrorEnvelope.ts +1 -1
  472. package/src/models/OpenAIErrorEnvelopeError.ts +10 -2
  473. package/src/models/PeakWindow.ts +1 -1
  474. package/src/models/Problem.ts +26 -1
  475. package/src/models/RefereeStatus.ts +1 -1
  476. package/src/models/Referral.ts +20 -2
  477. package/src/models/RequestLogEntry.ts +307 -0
  478. package/src/models/RequestLogPage.ts +92 -0
  479. package/src/models/ResponseFormatJSONObject.ts +78 -0
  480. package/src/models/ResponseFormatJSONSchema.ts +95 -0
  481. package/src/models/ResponseFormatText.ts +78 -0
  482. package/src/models/SpendingLimit.ts +1 -1
  483. package/src/models/StreamOptions.ts +1 -1
  484. package/src/models/Subscription.ts +18 -2
  485. package/src/models/SubscriptionCheckoutRequest.ts +23 -4
  486. package/src/models/SubscriptionCheckoutSession.ts +28 -1
  487. package/src/models/SubscriptionModelUsage.ts +120 -0
  488. package/src/models/SubscriptionPlan.ts +4 -4
  489. package/src/models/SubscriptionPortalRequest.ts +1 -1
  490. package/src/models/SubscriptionPortalSession.ts +1 -1
  491. package/src/models/SubscriptionPrice.ts +1 -1
  492. package/src/models/SubscriptionQuota.ts +16 -7
  493. package/src/models/SubscriptionTier.ts +108 -0
  494. package/src/models/SubscriptionUpgradeRequest.ts +66 -0
  495. package/src/models/SubscriptionUsage.ts +47 -6
  496. package/src/models/Tool.ts +95 -0
  497. package/src/models/ToolCall.ts +110 -0
  498. package/src/models/ToolCallFunction.ts +76 -0
  499. package/src/models/ToolChoiceFunction.ts +95 -0
  500. package/src/models/ToolChoiceFunctionFunction.ts +66 -0
  501. package/src/models/ToolFunction.ts +83 -0
  502. package/src/models/UpdateSpendingLimitRequest.ts +1 -1
  503. package/src/models/Usage.ts +56 -1
  504. package/src/models/UsageBucket.ts +49 -6
  505. package/src/models/UsageCompletionTokensDetails.ts +65 -0
  506. package/src/models/UsagePage.ts +2 -1
  507. package/src/models/UsagePromptTokensDetails.ts +66 -0
  508. package/src/models/VideoCreateRequest.ts +1 -1
  509. package/src/models/VideoJob.ts +1 -1
  510. package/src/models/VideoList.ts +1 -1
  511. package/src/models/WebhookEndpoint.ts +6 -2
  512. package/src/models/WebhookEndpointPage.ts +1 -1
  513. package/src/models/index.ts +30 -0
  514. package/src/runtime.ts +2 -2
@@ -0,0 +1,37 @@
1
+
2
+ # ChatCompletionRequestResponseFormat
3
+
4
+ Constrain the reply format. Gated per model: `json_object` needs \"response_format\" in the model\'s supported_parameters, and a strict `json_schema` needs \"structured_outputs\". A model without the capability returns 400 unsupported_parameter naming the models that have it. A non-strict json_schema on a model with only \"response_format\" is served as json_object and reported as `response_format:downgraded` in x-deeprelay-ignored-params. The relay never emulates JSON mode by prompting.
5
+
6
+ ## Properties
7
+
8
+ Name | Type
9
+ ------------ | -------------
10
+ `type` | string
11
+ `jsonSchema` | [JSONSchemaFormat](JSONSchemaFormat.md)
12
+
13
+ ## Example
14
+
15
+ ```typescript
16
+ import type { ChatCompletionRequestResponseFormat } from '@deeprelay/sdk'
17
+
18
+ // TODO: Update the object below with actual values
19
+ const example = {
20
+ "type": null,
21
+ "jsonSchema": null,
22
+ } satisfies ChatCompletionRequestResponseFormat
23
+
24
+ console.log(example)
25
+
26
+ // Convert the instance to a JSON string
27
+ const exampleJSON: string = JSON.stringify(example)
28
+ console.log(exampleJSON)
29
+
30
+ // Parse the JSON string back to an object
31
+ const exampleParsed = JSON.parse(exampleJSON) as ChatCompletionRequestResponseFormat
32
+ console.log(exampleParsed)
33
+ ```
34
+
35
+ [[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
36
+
37
+
@@ -0,0 +1,37 @@
1
+
2
+ # ChatCompletionRequestToolChoice
3
+
4
+ How the model should pick a tool: the strings \"none\", \"auto\" or \"required\", or an object naming one function. Requires a non-empty tools array unless it is \"none\".
5
+
6
+ ## Properties
7
+
8
+ Name | Type
9
+ ------------ | -------------
10
+ `type` | string
11
+ `_function` | [ToolChoiceFunctionFunction](ToolChoiceFunctionFunction.md)
12
+
13
+ ## Example
14
+
15
+ ```typescript
16
+ import type { ChatCompletionRequestToolChoice } from '@deeprelay/sdk'
17
+
18
+ // TODO: Update the object below with actual values
19
+ const example = {
20
+ "type": null,
21
+ "_function": null,
22
+ } satisfies ChatCompletionRequestToolChoice
23
+
24
+ console.log(example)
25
+
26
+ // Convert the instance to a JSON string
27
+ const exampleJSON: string = JSON.stringify(example)
28
+ console.log(exampleJSON)
29
+
30
+ // Parse the JSON string back to an object
31
+ const exampleParsed = JSON.parse(exampleJSON) as ChatCompletionRequestToolChoice
32
+ console.log(exampleParsed)
33
+ ```
34
+
35
+ [[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
36
+
37
+
@@ -8,6 +8,8 @@ Name | Type
8
8
  ------------ | -------------
9
9
  `role` | string
10
10
  `content` | string
11
+ `toolCalls` | [Array<ToolCall>](ToolCall.md)
12
+ `toolCallId` | string
11
13
 
12
14
  ## Example
13
15
 
@@ -18,6 +20,8 @@ import type { ChatMessage } from '@deeprelay/sdk'
18
20
  const example = {
19
21
  "role": null,
20
22
  "content": null,
23
+ "toolCalls": null,
24
+ "toolCallId": null,
21
25
  } satisfies ChatMessage
22
26
 
23
27
  console.log(example)
@@ -0,0 +1,43 @@
1
+
2
+ # CostDetails
3
+
4
+ How this call was priced, in USD (exact decimals, up to 8 places). list_price_equivalent = plan_covered_amount + charged_amount. A call is either fully covered by the subscription or fully charged: there is no partial coverage.
5
+
6
+ ## Properties
7
+
8
+ Name | Type
9
+ ------------ | -------------
10
+ `listPriceEquivalent` | number
11
+ `planCoveredAmount` | number
12
+ `chargedAmount` | number
13
+ `quotaUnitsUsed` | number
14
+ `cacheSavings` | number
15
+
16
+ ## Example
17
+
18
+ ```typescript
19
+ import type { CostDetails } from '@deeprelay/sdk'
20
+
21
+ // TODO: Update the object below with actual values
22
+ const example = {
23
+ "listPriceEquivalent": null,
24
+ "planCoveredAmount": null,
25
+ "chargedAmount": null,
26
+ "quotaUnitsUsed": null,
27
+ "cacheSavings": null,
28
+ } satisfies CostDetails
29
+
30
+ console.log(example)
31
+
32
+ // Convert the instance to a JSON string
33
+ const exampleJSON: string = JSON.stringify(example)
34
+ console.log(exampleJSON)
35
+
36
+ // Parse the JSON string back to an object
37
+ const exampleParsed = JSON.parse(exampleJSON) as CostDetails
38
+ console.log(exampleParsed)
39
+ ```
40
+
41
+ [[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
42
+
43
+
@@ -83,21 +83,23 @@ example().catch(console.error);
83
83
  | Status code | Description | Response headers |
84
84
  |-------------|-------------|------------------|
85
85
  | **200** | A video generation job object. | - |
86
- | **401** | Missing or invalid API key (OpenAI error envelope). | - |
87
- | **403** | API key lacks the required scope (OpenAI error envelope). | - |
88
- | **404** | Model or resource not found (OpenAI error envelope). | - |
89
- | **409** | Invalid request (OpenAI error envelope). | - |
90
- | **429** | Rate limit exceeded (OpenAI error envelope). Retry-After header indicates seconds to wait. | * Retry-After - Seconds the client should wait before retrying. <br> |
86
+ | **401** | Missing or invalid API key (OpenAI error envelope). | * X-Deeprelay-Error-Code - <br> |
87
+ | **403** | API key lacks the required scope (&#x60;insufficient_scope&#x60;), or the key has a model allowlist that does not include the requested model (&#x60;model_not_allowed_for_key&#x60;; also the answer for a model that does not exist, so a restricted key cannot probe the catalog). OpenAI error envelope. | * X-Deeprelay-Error-Code - <br> |
88
+ | **404** | Model or resource not found (OpenAI error envelope). | * X-Deeprelay-Error-Code - <br> |
89
+ | **409** | Invalid request (OpenAI error envelope). | * X-Deeprelay-Error-Code - <br> |
90
+ | **429** | Rate limit or subscription quota exceeded (OpenAI error envelope). A per-key or per-IP rate limit (&#x60;rate_limit_exceeded&#x60;) carries Retry-After, the whole seconds to wait, rounded up (minimum 1), and retry-after-ms, the exact wait; both are the time until one request is allowed, not a full refill. A per-key denial also carries the x-ratelimit-*-requests headers. A subscription quota denial (&#x60;subscription_quota_exhausted&#x60;, raised only when the wallet cannot cover the pay-as-you-go fallback) carries &#x60;x-should-retry: false&#x60; and no Retry-After. When the tripped gate is a rolling 7-day cap (&#x60;param: weekly_input_tokens&#x60; or &#x60;param: weekly_output_tokens&#x60;), the error object also carries &#x60;quota_frees_at&#x60;, the RFC 3339 time the window frees enough capacity — the earlier of the two windows. &#x60;param&#x60; names the tripped gate: monthly_input_tokens, monthly_output_tokens, weekly_input_tokens, weekly_output_tokens, max_usage, input_overshoot (this request\&#39;s estimated input alone exceeds what is left in the tighter of the monthly and rolling 7-day input allowances), or output_overshoot (the same for the estimated output — the completion bound). On an overshoot the quota is not exhausted — send a smaller request (or a smaller max_tokens) or add credits. | * Retry-After - Seconds the client should wait before retrying. <br> * retry-after-ms - <br> * x-ratelimit-limit-requests - <br> * x-ratelimit-remaining-requests - <br> * x-ratelimit-reset-requests - <br> * x-should-retry - <br> * X-Deeprelay-Error-Code - <br> |
91
91
 
92
92
  [[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
93
93
 
94
94
 
95
95
  ## createChatCompletion
96
96
 
97
- > ChatCompletionResponse createChatCompletion(chatCompletionRequest)
97
+ > ChatCompletionResponse createChatCompletion(chatCompletionRequest, xClientRequestId)
98
98
 
99
99
  Create a chat completion (OpenAI-compatible)
100
100
 
101
+ OpenAI-compatible chat completion. Parameters fall into three groups: - **Semantic parameters are gated per model.** &#x60;response_format&#x60;, &#x60;tools&#x60;/&#x60;tool_choice&#x60;, &#x60;logprobs&#x60;/&#x60;top_logprobs&#x60; and &#x60;image_url&#x60; content parts are sent only to a model whose &#x60;/v1/models&#x60; entry lists the capability in &#x60;supported_parameters&#x60; (&#x60;vision&#x60; for images). A model without it returns 400 &#x60;unsupported_parameter&#x60; whose message names the models that do support it. When the model supports the parameter but none of its currently routable upstreams does, the request fails with 503 &#x60;upstream_unavailable&#x60; rather than being silently degraded. - **Hints are forwarded or dropped, never rejected.** &#x60;reasoning_effort&#x60;, &#x60;presence_penalty&#x60;, &#x60;frequency_penalty&#x60;, &#x60;seed&#x60; and &#x60;parallel_tool_calls&#x60; are forwarded to an upstream that accepts them and otherwise dropped. Every drop is reported in the &#x60;x-deeprelay-ignored-params&#x60; response header. - **Rejected everywhere.** &#x60;logit_bias&#x60; and &#x60;function_call&#x60; return 400 &#x60;unsupported_parameter&#x60;; &#x60;input_audio&#x60; and &#x60;file&#x60; content parts return 400 &#x60;unsupported_content_part&#x60;. A non-strict &#x60;json_schema&#x60; sent to a model that can only guarantee JSON is served as &#x60;json_object&#x60; and reported as &#x60;response_format:downgraded&#x60;; a strict one is rejected. A &#x60;json_schema&#x60; over 64 KiB or nested deeper than 32 levels returns 400 &#x60;unsupported_parameter&#x60; (param &#x60;response_format&#x60;). An upstream rejection of a request the relay accepted returns 400 &#x60;upstream_rejected_request&#x60;. A non-chat model id returns 404 &#x60;model_not_found&#x60;. The request body is capped at 32 MiB (413 &#x60;request_too_large&#x60;). Every successful response carries &#x60;usage.cost&#x60; and &#x60;usage.cost_details&#x60; (on a stream, only in the final usage chunk). See https://deeprelay.ai/docs/api/inference#openai-compatibility.
102
+
101
103
  ### Example
102
104
 
103
105
  ```ts
@@ -118,6 +120,8 @@ async function example() {
118
120
  const body = {
119
121
  // ChatCompletionRequest
120
122
  chatCompletionRequest: ...,
123
+ // string | Your own correlation id for this call, up to 128 characters. It is stored on the request-log row as `client_request_id` and can be filtered on with `GET /requests?client_request_id=`. When it is absent, an inbound `X-Request-Id` is kept in its place; the response\'s own `X-Request-Id` is always minted by deeprelay. Surrounding whitespace and control characters are removed; a longer value is dropped, never truncated. It is never used as a lookup key, so it does not need to be unique. (optional)
124
+ xClientRequestId: xClientRequestId_example,
121
125
  } satisfies CreateChatCompletionRequest;
122
126
 
123
127
  try {
@@ -138,6 +142,7 @@ example().catch(console.error);
138
142
  | Name | Type | Description | Notes |
139
143
  |------------- | ------------- | ------------- | -------------|
140
144
  | **chatCompletionRequest** | [ChatCompletionRequest](ChatCompletionRequest.md) | | |
145
+ | **xClientRequestId** | `string` | Your own correlation id for this call, up to 128 characters. It is stored on the request-log row as &#x60;client_request_id&#x60; and can be filtered on with &#x60;GET /requests?client_request_id&#x3D;&#x60;. When it is absent, an inbound &#x60;X-Request-Id&#x60; is kept in its place; the response\&#39;s own &#x60;X-Request-Id&#x60; is always minted by deeprelay. Surrounding whitespace and control characters are removed; a longer value is dropped, never truncated. It is never used as a lookup key, so it does not need to be unique. | [Optional] [Defaults to `undefined`] |
141
146
 
142
147
  ### Return type
143
148
 
@@ -156,23 +161,24 @@ example().catch(console.error);
156
161
  ### HTTP response details
157
162
  | Status code | Description | Response headers |
158
163
  |-------------|-------------|------------------|
159
- | **200** | Successful response. application/json for non-streaming requests; text/event-stream for streaming requests (stream&#x3D;true). | - |
160
- | **400** | Invalid request (OpenAI error envelope). | - |
161
- | **401** | Missing or invalid API key (OpenAI error envelope). | - |
162
- | **402** | Insufficient balance (OpenAI error envelope, SERV-06). | - |
163
- | **403** | API key lacks the required scope (OpenAI error envelope). | - |
164
- | **404** | Model or resource not found (OpenAI error envelope). | - |
165
- | **422** | Request validation failed (OpenAI error envelope). | - |
166
- | **429** | Rate limit exceeded (OpenAI error envelope). Retry-After header indicates seconds to wait. | * Retry-After - Seconds the client should wait before retrying. <br> |
167
- | **500** | Internal server error (OpenAI error envelope). | - |
168
- | **503** | Upstream provider unavailable (OpenAI error envelope). Retry-After header may indicate seconds to wait. | * Retry-After - Seconds the client should wait before retrying. <br> |
164
+ | **200** | Successful response. application/json for non-streaming requests; text/event-stream for streaming requests (stream&#x3D;true). | * x-deeprelay-ignored-params - <br> * x-deeprelay-cost - <br> * x-deeprelay-quota-input-remaining - <br> * x-deeprelay-quota-output-remaining - <br> * x-deeprelay-quota-reset - <br> * x-deeprelay-quota-weekly-input-remaining - <br> * x-deeprelay-quota-weekly-input-limit - <br> * x-deeprelay-quota-weekly-output-remaining - <br> * x-deeprelay-quota-weekly-output-limit - <br> * x-ratelimit-limit-requests - <br> * x-ratelimit-remaining-requests - <br> * x-ratelimit-reset-requests - <br> |
165
+ | **400** | Invalid request (OpenAI error envelope). | * X-Deeprelay-Error-Code - <br> |
166
+ | **401** | Missing or invalid API key (OpenAI error envelope). | * X-Deeprelay-Error-Code - <br> |
167
+ | **402** | Insufficient balance or a spend limit reached (OpenAI error envelope, SERV-06): &#x60;insufficient_balance&#x60;, &#x60;daily_limit_reached&#x60;, &#x60;spending_limit_reached&#x60;, &#x60;api_key_budget_exceeded&#x60; (this API key\&#39;s monthly budget) or &#x60;member_spend_limit_reached&#x60; (the member\&#39;s monthly spend limit). Carries &#x60;x-should-retry: false&#x60;: the same request will not succeed until the wallet or the limit changes. | * x-should-retry - <br> * X-Deeprelay-Error-Code - <br> |
168
+ | **403** | API key lacks the required scope (&#x60;insufficient_scope&#x60;), or the key has a model allowlist that does not include the requested model (&#x60;model_not_allowed_for_key&#x60;; also the answer for a model that does not exist, so a restricted key cannot probe the catalog). OpenAI error envelope. | * X-Deeprelay-Error-Code - <br> |
169
+ | **404** | Model or resource not found (OpenAI error envelope). | * X-Deeprelay-Error-Code - <br> |
170
+ | **413** | Request body too large (OpenAI error envelope, code request_too_large). | * X-Deeprelay-Error-Code - <br> |
171
+ | **422** | Request validation failed (OpenAI error envelope). | * X-Deeprelay-Error-Code - <br> |
172
+ | **429** | Rate limit or subscription quota exceeded (OpenAI error envelope). A per-key or per-IP rate limit (&#x60;rate_limit_exceeded&#x60;) carries Retry-After, the whole seconds to wait, rounded up (minimum 1), and retry-after-ms, the exact wait; both are the time until one request is allowed, not a full refill. A per-key denial also carries the x-ratelimit-*-requests headers. A subscription quota denial (&#x60;subscription_quota_exhausted&#x60;, raised only when the wallet cannot cover the pay-as-you-go fallback) carries &#x60;x-should-retry: false&#x60; and no Retry-After. When the tripped gate is a rolling 7-day cap (&#x60;param: weekly_input_tokens&#x60; or &#x60;param: weekly_output_tokens&#x60;), the error object also carries &#x60;quota_frees_at&#x60;, the RFC 3339 time the window frees enough capacity — the earlier of the two windows. &#x60;param&#x60; names the tripped gate: monthly_input_tokens, monthly_output_tokens, weekly_input_tokens, weekly_output_tokens, max_usage, input_overshoot (this request\&#39;s estimated input alone exceeds what is left in the tighter of the monthly and rolling 7-day input allowances), or output_overshoot (the same for the estimated output — the completion bound). On an overshoot the quota is not exhausted — send a smaller request (or a smaller max_tokens) or add credits. | * Retry-After - Seconds the client should wait before retrying. <br> * retry-after-ms - <br> * x-ratelimit-limit-requests - <br> * x-ratelimit-remaining-requests - <br> * x-ratelimit-reset-requests - <br> * x-should-retry - <br> * X-Deeprelay-Error-Code - <br> |
173
+ | **500** | Internal server error (OpenAI error envelope). | * X-Deeprelay-Error-Code - <br> |
174
+ | **503** | No upstream could serve the request (OpenAI error envelope, &#x60;upstream_unavailable&#x60;): every capable upstream is down, shedding load, or none of the model\&#39;s routable upstreams supports a capability the request needs. Always carries Retry-After (whole seconds, rounded up) and retry-after-ms; on an overload the wait is jittered between 2 and 2.5 seconds. | * Retry-After - Seconds the client should wait before retrying. <br> * retry-after-ms - <br> * X-Deeprelay-Error-Code - <br> |
169
175
 
170
176
  [[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
171
177
 
172
178
 
173
179
  ## createEmbeddings
174
180
 
175
- > EmbeddingsResponse createEmbeddings(embeddingsRequest)
181
+ > EmbeddingsResponse createEmbeddings(embeddingsRequest, xClientRequestId)
176
182
 
177
183
  Create embeddings (OpenAI-compatible)
178
184
 
@@ -198,6 +204,8 @@ async function example() {
198
204
  const body = {
199
205
  // EmbeddingsRequest
200
206
  embeddingsRequest: ...,
207
+ // string | Your own correlation id for this call, up to 128 characters. It is stored on the request-log row as `client_request_id` and can be filtered on with `GET /requests?client_request_id=`. When it is absent, an inbound `X-Request-Id` is kept in its place; the response\'s own `X-Request-Id` is always minted by deeprelay. Surrounding whitespace and control characters are removed; a longer value is dropped, never truncated. It is never used as a lookup key, so it does not need to be unique. (optional)
208
+ xClientRequestId: xClientRequestId_example,
201
209
  } satisfies CreateEmbeddingsRequest;
202
210
 
203
211
  try {
@@ -218,6 +226,7 @@ example().catch(console.error);
218
226
  | Name | Type | Description | Notes |
219
227
  |------------- | ------------- | ------------- | -------------|
220
228
  | **embeddingsRequest** | [EmbeddingsRequest](EmbeddingsRequest.md) | | |
229
+ | **xClientRequestId** | `string` | Your own correlation id for this call, up to 128 characters. It is stored on the request-log row as &#x60;client_request_id&#x60; and can be filtered on with &#x60;GET /requests?client_request_id&#x3D;&#x60;. When it is absent, an inbound &#x60;X-Request-Id&#x60; is kept in its place; the response\&#39;s own &#x60;X-Request-Id&#x60; is always minted by deeprelay. Surrounding whitespace and control characters are removed; a longer value is dropped, never truncated. It is never used as a lookup key, so it does not need to be unique. | [Optional] [Defaults to `undefined`] |
221
230
 
222
231
  ### Return type
223
232
 
@@ -237,24 +246,24 @@ example().catch(console.error);
237
246
  | Status code | Description | Response headers |
238
247
  |-------------|-------------|------------------|
239
248
  | **200** | One embedding vector per input, in request order. | - |
240
- | **400** | Invalid request (OpenAI error envelope). | - |
241
- | **401** | Missing or invalid API key (OpenAI error envelope). | - |
242
- | **402** | Insufficient balance (OpenAI error envelope, SERV-06). | - |
243
- | **403** | API key lacks the required scope (OpenAI error envelope). | - |
244
- | **404** | Model or resource not found (OpenAI error envelope). | - |
245
- | **413** | Request body too large (OpenAI error envelope, code request_too_large). | - |
246
- | **429** | Rate limit exceeded (OpenAI error envelope). Retry-After header indicates seconds to wait. | * Retry-After - Seconds the client should wait before retrying. <br> |
247
- | **500** | Internal server error (OpenAI error envelope). | - |
248
- | **502** | The upstream answered but its response could not be used (OpenAI error envelope): code upstream_response_too_large when the vector payload exceeded the per-request size limit, or upstream_error for a malformed / misaligned response. Not retryable as-is for upstream_response_too_large — send fewer inputs. | - |
249
- | **503** | Upstream provider unavailable (OpenAI error envelope). Retry-After header may indicate seconds to wait. | * Retry-After - Seconds the client should wait before retrying. <br> |
250
- | **504** | Upstream provider exceeded the synchronous per-attempt deadline (OpenAI error envelope). 504 semantic — distinct from 503 OpenAIUpstreamUnavailable which signals a connection or routing failure rather than a timeout. | - |
249
+ | **400** | Invalid request (OpenAI error envelope). | * X-Deeprelay-Error-Code - <br> |
250
+ | **401** | Missing or invalid API key (OpenAI error envelope). | * X-Deeprelay-Error-Code - <br> |
251
+ | **402** | Insufficient balance or a spend limit reached (OpenAI error envelope, SERV-06): &#x60;insufficient_balance&#x60;, &#x60;daily_limit_reached&#x60;, &#x60;spending_limit_reached&#x60;, &#x60;api_key_budget_exceeded&#x60; (this API key\&#39;s monthly budget) or &#x60;member_spend_limit_reached&#x60; (the member\&#39;s monthly spend limit). Carries &#x60;x-should-retry: false&#x60;: the same request will not succeed until the wallet or the limit changes. | * x-should-retry - <br> * X-Deeprelay-Error-Code - <br> |
252
+ | **403** | API key lacks the required scope (&#x60;insufficient_scope&#x60;), or the key has a model allowlist that does not include the requested model (&#x60;model_not_allowed_for_key&#x60;; also the answer for a model that does not exist, so a restricted key cannot probe the catalog). OpenAI error envelope. | * X-Deeprelay-Error-Code - <br> |
253
+ | **404** | Model or resource not found (OpenAI error envelope). | * X-Deeprelay-Error-Code - <br> |
254
+ | **413** | Request body too large (OpenAI error envelope, code request_too_large). | * X-Deeprelay-Error-Code - <br> |
255
+ | **429** | Rate limit or subscription quota exceeded (OpenAI error envelope). A per-key or per-IP rate limit (&#x60;rate_limit_exceeded&#x60;) carries Retry-After, the whole seconds to wait, rounded up (minimum 1), and retry-after-ms, the exact wait; both are the time until one request is allowed, not a full refill. A per-key denial also carries the x-ratelimit-*-requests headers. A subscription quota denial (&#x60;subscription_quota_exhausted&#x60;, raised only when the wallet cannot cover the pay-as-you-go fallback) carries &#x60;x-should-retry: false&#x60; and no Retry-After. When the tripped gate is a rolling 7-day cap (&#x60;param: weekly_input_tokens&#x60; or &#x60;param: weekly_output_tokens&#x60;), the error object also carries &#x60;quota_frees_at&#x60;, the RFC 3339 time the window frees enough capacity — the earlier of the two windows. &#x60;param&#x60; names the tripped gate: monthly_input_tokens, monthly_output_tokens, weekly_input_tokens, weekly_output_tokens, max_usage, input_overshoot (this request\&#39;s estimated input alone exceeds what is left in the tighter of the monthly and rolling 7-day input allowances), or output_overshoot (the same for the estimated output — the completion bound). On an overshoot the quota is not exhausted — send a smaller request (or a smaller max_tokens) or add credits. | * Retry-After - Seconds the client should wait before retrying. <br> * retry-after-ms - <br> * x-ratelimit-limit-requests - <br> * x-ratelimit-remaining-requests - <br> * x-ratelimit-reset-requests - <br> * x-should-retry - <br> * X-Deeprelay-Error-Code - <br> |
256
+ | **500** | Internal server error (OpenAI error envelope). | * X-Deeprelay-Error-Code - <br> |
257
+ | **502** | The upstream answered but its response could not be used (OpenAI error envelope): code upstream_response_too_large when the vector payload exceeded the per-request size limit, or upstream_error for a malformed / misaligned response. Not retryable as-is for upstream_response_too_large — send fewer inputs. | * X-Deeprelay-Error-Code - <br> |
258
+ | **503** | No upstream could serve the request (OpenAI error envelope, &#x60;upstream_unavailable&#x60;): every capable upstream is down, shedding load, or none of the model\&#39;s routable upstreams supports a capability the request needs. Always carries Retry-After (whole seconds, rounded up) and retry-after-ms; on an overload the wait is jittered between 2 and 2.5 seconds. | * Retry-After - Seconds the client should wait before retrying. <br> * retry-after-ms - <br> * X-Deeprelay-Error-Code - <br> |
259
+ | **504** | Upstream provider exceeded the synchronous per-attempt deadline (OpenAI error envelope). 504 semantic — distinct from 503 OpenAIUpstreamUnavailable which signals a connection or routing failure rather than a timeout. | * X-Deeprelay-Error-Code - <br> |
251
260
 
252
261
  [[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
253
262
 
254
263
 
255
264
  ## createImage
256
265
 
257
- > ImagesResponse createImage(imagesGenerationsRequest, idempotencyKey)
266
+ > ImagesResponse createImage(imagesGenerationsRequest, idempotencyKey, xClientRequestId)
258
267
 
259
268
  Create image (OpenAI-compatible)
260
269
 
@@ -282,6 +291,8 @@ async function example() {
282
291
  imagesGenerationsRequest: ...,
283
292
  // string (optional)
284
293
  idempotencyKey: idempotencyKey_example,
294
+ // string | Your own correlation id for this call, up to 128 characters. It is stored on the request-log row as `client_request_id` and can be filtered on with `GET /requests?client_request_id=`. When it is absent, an inbound `X-Request-Id` is kept in its place; the response\'s own `X-Request-Id` is always minted by deeprelay. Surrounding whitespace and control characters are removed; a longer value is dropped, never truncated. It is never used as a lookup key, so it does not need to be unique. (optional)
295
+ xClientRequestId: xClientRequestId_example,
285
296
  } satisfies CreateImageRequest;
286
297
 
287
298
  try {
@@ -303,6 +314,7 @@ example().catch(console.error);
303
314
  |------------- | ------------- | ------------- | -------------|
304
315
  | **imagesGenerationsRequest** | [ImagesGenerationsRequest](ImagesGenerationsRequest.md) | | |
305
316
  | **idempotencyKey** | `string` | | [Optional] [Defaults to `undefined`] |
317
+ | **xClientRequestId** | `string` | Your own correlation id for this call, up to 128 characters. It is stored on the request-log row as &#x60;client_request_id&#x60; and can be filtered on with &#x60;GET /requests?client_request_id&#x3D;&#x60;. When it is absent, an inbound &#x60;X-Request-Id&#x60; is kept in its place; the response\&#39;s own &#x60;X-Request-Id&#x60; is always minted by deeprelay. Surrounding whitespace and control characters are removed; a longer value is dropped, never truncated. It is never used as a lookup key, so it does not need to be unique. | [Optional] [Defaults to `undefined`] |
306
318
 
307
319
  ### Return type
308
320
 
@@ -322,23 +334,23 @@ example().catch(console.error);
322
334
  | Status code | Description | Response headers |
323
335
  |-------------|-------------|------------------|
324
336
  | **200** | OpenAI-shaped image generation response (b64_json only). | - |
325
- | **400** | Invalid request (OpenAI error envelope). | - |
326
- | **401** | Missing or invalid API key (OpenAI error envelope). | - |
327
- | **402** | Insufficient balance (OpenAI error envelope, SERV-06). | - |
328
- | **403** | API key lacks the required scope (OpenAI error envelope). | - |
329
- | **404** | Model or resource not found (OpenAI error envelope). | - |
330
- | **422** | Request validation failed (OpenAI error envelope). | - |
331
- | **429** | Rate limit exceeded (OpenAI error envelope). Retry-After header indicates seconds to wait. | * Retry-After - Seconds the client should wait before retrying. <br> |
332
- | **500** | Internal server error (OpenAI error envelope). | - |
333
- | **503** | Upstream provider unavailable (OpenAI error envelope). Retry-After header may indicate seconds to wait. | * Retry-After - Seconds the client should wait before retrying. <br> |
334
- | **504** | Upstream provider exceeded the synchronous per-attempt deadline (OpenAI error envelope). 504 semantic — distinct from 503 OpenAIUpstreamUnavailable which signals a connection or routing failure rather than a timeout. | - |
337
+ | **400** | Invalid request (OpenAI error envelope). | * X-Deeprelay-Error-Code - <br> |
338
+ | **401** | Missing or invalid API key (OpenAI error envelope). | * X-Deeprelay-Error-Code - <br> |
339
+ | **402** | Insufficient balance or a spend limit reached (OpenAI error envelope, SERV-06): &#x60;insufficient_balance&#x60;, &#x60;daily_limit_reached&#x60;, &#x60;spending_limit_reached&#x60;, &#x60;api_key_budget_exceeded&#x60; (this API key\&#39;s monthly budget) or &#x60;member_spend_limit_reached&#x60; (the member\&#39;s monthly spend limit). Carries &#x60;x-should-retry: false&#x60;: the same request will not succeed until the wallet or the limit changes. | * x-should-retry - <br> * X-Deeprelay-Error-Code - <br> |
340
+ | **403** | API key lacks the required scope (&#x60;insufficient_scope&#x60;), or the key has a model allowlist that does not include the requested model (&#x60;model_not_allowed_for_key&#x60;; also the answer for a model that does not exist, so a restricted key cannot probe the catalog). OpenAI error envelope. | * X-Deeprelay-Error-Code - <br> |
341
+ | **404** | Model or resource not found (OpenAI error envelope). | * X-Deeprelay-Error-Code - <br> |
342
+ | **422** | Request validation failed (OpenAI error envelope). | * X-Deeprelay-Error-Code - <br> |
343
+ | **429** | Rate limit or subscription quota exceeded (OpenAI error envelope). A per-key or per-IP rate limit (&#x60;rate_limit_exceeded&#x60;) carries Retry-After, the whole seconds to wait, rounded up (minimum 1), and retry-after-ms, the exact wait; both are the time until one request is allowed, not a full refill. A per-key denial also carries the x-ratelimit-*-requests headers. A subscription quota denial (&#x60;subscription_quota_exhausted&#x60;, raised only when the wallet cannot cover the pay-as-you-go fallback) carries &#x60;x-should-retry: false&#x60; and no Retry-After. When the tripped gate is a rolling 7-day cap (&#x60;param: weekly_input_tokens&#x60; or &#x60;param: weekly_output_tokens&#x60;), the error object also carries &#x60;quota_frees_at&#x60;, the RFC 3339 time the window frees enough capacity — the earlier of the two windows. &#x60;param&#x60; names the tripped gate: monthly_input_tokens, monthly_output_tokens, weekly_input_tokens, weekly_output_tokens, max_usage, input_overshoot (this request\&#39;s estimated input alone exceeds what is left in the tighter of the monthly and rolling 7-day input allowances), or output_overshoot (the same for the estimated output — the completion bound). On an overshoot the quota is not exhausted — send a smaller request (or a smaller max_tokens) or add credits. | * Retry-After - Seconds the client should wait before retrying. <br> * retry-after-ms - <br> * x-ratelimit-limit-requests - <br> * x-ratelimit-remaining-requests - <br> * x-ratelimit-reset-requests - <br> * x-should-retry - <br> * X-Deeprelay-Error-Code - <br> |
344
+ | **500** | Internal server error (OpenAI error envelope). | * X-Deeprelay-Error-Code - <br> |
345
+ | **503** | No upstream could serve the request (OpenAI error envelope, &#x60;upstream_unavailable&#x60;): every capable upstream is down, shedding load, or none of the model\&#39;s routable upstreams supports a capability the request needs. Always carries Retry-After (whole seconds, rounded up) and retry-after-ms; on an overload the wait is jittered between 2 and 2.5 seconds. | * Retry-After - Seconds the client should wait before retrying. <br> * retry-after-ms - <br> * X-Deeprelay-Error-Code - <br> |
346
+ | **504** | Upstream provider exceeded the synchronous per-attempt deadline (OpenAI error envelope). 504 semantic — distinct from 503 OpenAIUpstreamUnavailable which signals a connection or routing failure rather than a timeout. | * X-Deeprelay-Error-Code - <br> |
335
347
 
336
348
  [[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
337
349
 
338
350
 
339
351
  ## createVideo
340
352
 
341
- > VideoJob createVideo(videoCreateRequest, idempotencyKey)
353
+ > VideoJob createVideo(videoCreateRequest, idempotencyKey, xClientRequestId)
342
354
 
343
355
  Create a video generation job (async)
344
356
 
@@ -366,6 +378,8 @@ async function example() {
366
378
  videoCreateRequest: ...,
367
379
  // string (optional)
368
380
  idempotencyKey: idempotencyKey_example,
381
+ // string | Your own correlation id for this call, up to 128 characters. It is stored on the request-log row as `client_request_id` and can be filtered on with `GET /requests?client_request_id=`. When it is absent, an inbound `X-Request-Id` is kept in its place; the response\'s own `X-Request-Id` is always minted by deeprelay. Surrounding whitespace and control characters are removed; a longer value is dropped, never truncated. It is never used as a lookup key, so it does not need to be unique. (optional)
382
+ xClientRequestId: xClientRequestId_example,
369
383
  } satisfies CreateVideoRequest;
370
384
 
371
385
  try {
@@ -387,6 +401,7 @@ example().catch(console.error);
387
401
  |------------- | ------------- | ------------- | -------------|
388
402
  | **videoCreateRequest** | [VideoCreateRequest](VideoCreateRequest.md) | | |
389
403
  | **idempotencyKey** | `string` | | [Optional] [Defaults to `undefined`] |
404
+ | **xClientRequestId** | `string` | Your own correlation id for this call, up to 128 characters. It is stored on the request-log row as &#x60;client_request_id&#x60; and can be filtered on with &#x60;GET /requests?client_request_id&#x3D;&#x60;. When it is absent, an inbound &#x60;X-Request-Id&#x60; is kept in its place; the response\&#39;s own &#x60;X-Request-Id&#x60; is always minted by deeprelay. Surrounding whitespace and control characters are removed; a longer value is dropped, never truncated. It is never used as a lookup key, so it does not need to be unique. | [Optional] [Defaults to `undefined`] |
390
405
 
391
406
  ### Return type
392
407
 
@@ -406,13 +421,13 @@ example().catch(console.error);
406
421
  | Status code | Description | Response headers |
407
422
  |-------------|-------------|------------------|
408
423
  | **200** | A video generation job object. | - |
409
- | **400** | Invalid request (OpenAI error envelope). | - |
410
- | **401** | Missing or invalid API key (OpenAI error envelope). | - |
411
- | **402** | Insufficient balance (OpenAI error envelope, SERV-06). | - |
412
- | **403** | API key lacks the required scope (OpenAI error envelope). | - |
413
- | **404** | Model or resource not found (OpenAI error envelope). | - |
414
- | **429** | Rate limit exceeded (OpenAI error envelope). Retry-After header indicates seconds to wait. | * Retry-After - Seconds the client should wait before retrying. <br> |
415
- | **500** | Internal server error (OpenAI error envelope). | - |
424
+ | **400** | Invalid request (OpenAI error envelope). | * X-Deeprelay-Error-Code - <br> |
425
+ | **401** | Missing or invalid API key (OpenAI error envelope). | * X-Deeprelay-Error-Code - <br> |
426
+ | **402** | Insufficient balance or a spend limit reached (OpenAI error envelope, SERV-06): &#x60;insufficient_balance&#x60;, &#x60;daily_limit_reached&#x60;, &#x60;spending_limit_reached&#x60;, &#x60;api_key_budget_exceeded&#x60; (this API key\&#39;s monthly budget) or &#x60;member_spend_limit_reached&#x60; (the member\&#39;s monthly spend limit). Carries &#x60;x-should-retry: false&#x60;: the same request will not succeed until the wallet or the limit changes. | * x-should-retry - <br> * X-Deeprelay-Error-Code - <br> |
427
+ | **403** | API key lacks the required scope (&#x60;insufficient_scope&#x60;), or the key has a model allowlist that does not include the requested model (&#x60;model_not_allowed_for_key&#x60;; also the answer for a model that does not exist, so a restricted key cannot probe the catalog). OpenAI error envelope. | * X-Deeprelay-Error-Code - <br> |
428
+ | **404** | Model or resource not found (OpenAI error envelope). | * X-Deeprelay-Error-Code - <br> |
429
+ | **429** | Rate limit or subscription quota exceeded (OpenAI error envelope). A per-key or per-IP rate limit (&#x60;rate_limit_exceeded&#x60;) carries Retry-After, the whole seconds to wait, rounded up (minimum 1), and retry-after-ms, the exact wait; both are the time until one request is allowed, not a full refill. A per-key denial also carries the x-ratelimit-*-requests headers. A subscription quota denial (&#x60;subscription_quota_exhausted&#x60;, raised only when the wallet cannot cover the pay-as-you-go fallback) carries &#x60;x-should-retry: false&#x60; and no Retry-After. When the tripped gate is a rolling 7-day cap (&#x60;param: weekly_input_tokens&#x60; or &#x60;param: weekly_output_tokens&#x60;), the error object also carries &#x60;quota_frees_at&#x60;, the RFC 3339 time the window frees enough capacity — the earlier of the two windows. &#x60;param&#x60; names the tripped gate: monthly_input_tokens, monthly_output_tokens, weekly_input_tokens, weekly_output_tokens, max_usage, input_overshoot (this request\&#39;s estimated input alone exceeds what is left in the tighter of the monthly and rolling 7-day input allowances), or output_overshoot (the same for the estimated output — the completion bound). On an overshoot the quota is not exhausted — send a smaller request (or a smaller max_tokens) or add credits. | * Retry-After - Seconds the client should wait before retrying. <br> * retry-after-ms - <br> * x-ratelimit-limit-requests - <br> * x-ratelimit-remaining-requests - <br> * x-ratelimit-reset-requests - <br> * x-should-retry - <br> * X-Deeprelay-Error-Code - <br> |
430
+ | **500** | Internal server error (OpenAI error envelope). | * X-Deeprelay-Error-Code - <br> |
416
431
 
417
432
  [[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
418
433
 
@@ -423,6 +438,8 @@ example().catch(console.error);
423
438
 
424
439
  Get a specific model (OpenAI-compatible)
425
440
 
441
+ A key with a model allowlist gets 403 &#x60;model_not_allowed_for_key&#x60; for a model off its list, and the same 403 for an id that does not exist.
442
+
426
443
  ### Example
427
444
 
428
445
  ```ts
@@ -482,10 +499,10 @@ example().catch(console.error);
482
499
  | Status code | Description | Response headers |
483
500
  |-------------|-------------|------------------|
484
501
  | **200** | OpenAI-shaped single model. | - |
485
- | **401** | Missing or invalid API key (OpenAI error envelope). | - |
486
- | **403** | API key lacks the required scope (OpenAI error envelope). | - |
487
- | **404** | Model or resource not found (OpenAI error envelope). | - |
488
- | **429** | Rate limit exceeded (OpenAI error envelope). Retry-After header indicates seconds to wait. | * Retry-After - Seconds the client should wait before retrying. <br> |
502
+ | **401** | Missing or invalid API key (OpenAI error envelope). | * X-Deeprelay-Error-Code - <br> |
503
+ | **403** | API key lacks the required scope (&#x60;insufficient_scope&#x60;), or the key has a model allowlist that does not include the requested model (&#x60;model_not_allowed_for_key&#x60;; also the answer for a model that does not exist, so a restricted key cannot probe the catalog). OpenAI error envelope. | * X-Deeprelay-Error-Code - <br> |
504
+ | **404** | Model or resource not found (OpenAI error envelope). | * X-Deeprelay-Error-Code - <br> |
505
+ | **429** | Rate limit or subscription quota exceeded (OpenAI error envelope). A per-key or per-IP rate limit (&#x60;rate_limit_exceeded&#x60;) carries Retry-After, the whole seconds to wait, rounded up (minimum 1), and retry-after-ms, the exact wait; both are the time until one request is allowed, not a full refill. A per-key denial also carries the x-ratelimit-*-requests headers. A subscription quota denial (&#x60;subscription_quota_exhausted&#x60;, raised only when the wallet cannot cover the pay-as-you-go fallback) carries &#x60;x-should-retry: false&#x60; and no Retry-After. When the tripped gate is a rolling 7-day cap (&#x60;param: weekly_input_tokens&#x60; or &#x60;param: weekly_output_tokens&#x60;), the error object also carries &#x60;quota_frees_at&#x60;, the RFC 3339 time the window frees enough capacity — the earlier of the two windows. &#x60;param&#x60; names the tripped gate: monthly_input_tokens, monthly_output_tokens, weekly_input_tokens, weekly_output_tokens, max_usage, input_overshoot (this request\&#39;s estimated input alone exceeds what is left in the tighter of the monthly and rolling 7-day input allowances), or output_overshoot (the same for the estimated output — the completion bound). On an overshoot the quota is not exhausted — send a smaller request (or a smaller max_tokens) or add credits. | * Retry-After - Seconds the client should wait before retrying. <br> * retry-after-ms - <br> * x-ratelimit-limit-requests - <br> * x-ratelimit-remaining-requests - <br> * x-ratelimit-reset-requests - <br> * x-should-retry - <br> * X-Deeprelay-Error-Code - <br> |
489
506
 
490
507
  [[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
491
508
 
@@ -555,10 +572,10 @@ example().catch(console.error);
555
572
  | Status code | Description | Response headers |
556
573
  |-------------|-------------|------------------|
557
574
  | **200** | A video generation job object. | - |
558
- | **401** | Missing or invalid API key (OpenAI error envelope). | - |
559
- | **403** | API key lacks the required scope (OpenAI error envelope). | - |
560
- | **404** | Model or resource not found (OpenAI error envelope). | - |
561
- | **429** | Rate limit exceeded (OpenAI error envelope). Retry-After header indicates seconds to wait. | * Retry-After - Seconds the client should wait before retrying. <br> |
575
+ | **401** | Missing or invalid API key (OpenAI error envelope). | * X-Deeprelay-Error-Code - <br> |
576
+ | **403** | API key lacks the required scope (&#x60;insufficient_scope&#x60;), or the key has a model allowlist that does not include the requested model (&#x60;model_not_allowed_for_key&#x60;; also the answer for a model that does not exist, so a restricted key cannot probe the catalog). OpenAI error envelope. | * X-Deeprelay-Error-Code - <br> |
577
+ | **404** | Model or resource not found (OpenAI error envelope). | * X-Deeprelay-Error-Code - <br> |
578
+ | **429** | Rate limit or subscription quota exceeded (OpenAI error envelope). A per-key or per-IP rate limit (&#x60;rate_limit_exceeded&#x60;) carries Retry-After, the whole seconds to wait, rounded up (minimum 1), and retry-after-ms, the exact wait; both are the time until one request is allowed, not a full refill. A per-key denial also carries the x-ratelimit-*-requests headers. A subscription quota denial (&#x60;subscription_quota_exhausted&#x60;, raised only when the wallet cannot cover the pay-as-you-go fallback) carries &#x60;x-should-retry: false&#x60; and no Retry-After. When the tripped gate is a rolling 7-day cap (&#x60;param: weekly_input_tokens&#x60; or &#x60;param: weekly_output_tokens&#x60;), the error object also carries &#x60;quota_frees_at&#x60;, the RFC 3339 time the window frees enough capacity — the earlier of the two windows. &#x60;param&#x60; names the tripped gate: monthly_input_tokens, monthly_output_tokens, weekly_input_tokens, weekly_output_tokens, max_usage, input_overshoot (this request\&#39;s estimated input alone exceeds what is left in the tighter of the monthly and rolling 7-day input allowances), or output_overshoot (the same for the estimated output — the completion bound). On an overshoot the quota is not exhausted — send a smaller request (or a smaller max_tokens) or add credits. | * Retry-After - Seconds the client should wait before retrying. <br> * retry-after-ms - <br> * x-ratelimit-limit-requests - <br> * x-ratelimit-remaining-requests - <br> * x-ratelimit-reset-requests - <br> * x-should-retry - <br> * X-Deeprelay-Error-Code - <br> |
562
579
 
563
580
  [[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
564
581
 
@@ -630,11 +647,11 @@ example().catch(console.error);
630
647
  | Status code | Description | Response headers |
631
648
  |-------------|-------------|------------------|
632
649
  | **200** | The generated video stream. | - |
633
- | **401** | Missing or invalid API key (OpenAI error envelope). | - |
634
- | **403** | API key lacks the required scope (OpenAI error envelope). | - |
635
- | **404** | Model or resource not found (OpenAI error envelope). | - |
636
- | **410** | The requested artifact has expired and is no longer available (OpenAI error envelope). | - |
637
- | **429** | Rate limit exceeded (OpenAI error envelope). Retry-After header indicates seconds to wait. | * Retry-After - Seconds the client should wait before retrying. <br> |
650
+ | **401** | Missing or invalid API key (OpenAI error envelope). | * X-Deeprelay-Error-Code - <br> |
651
+ | **403** | API key lacks the required scope (&#x60;insufficient_scope&#x60;), or the key has a model allowlist that does not include the requested model (&#x60;model_not_allowed_for_key&#x60;; also the answer for a model that does not exist, so a restricted key cannot probe the catalog). OpenAI error envelope. | * X-Deeprelay-Error-Code - <br> |
652
+ | **404** | Model or resource not found (OpenAI error envelope). | * X-Deeprelay-Error-Code - <br> |
653
+ | **410** | The requested artifact has expired and is no longer available (OpenAI error envelope). | * X-Deeprelay-Error-Code - <br> |
654
+ | **429** | Rate limit or subscription quota exceeded (OpenAI error envelope). A per-key or per-IP rate limit (&#x60;rate_limit_exceeded&#x60;) carries Retry-After, the whole seconds to wait, rounded up (minimum 1), and retry-after-ms, the exact wait; both are the time until one request is allowed, not a full refill. A per-key denial also carries the x-ratelimit-*-requests headers. A subscription quota denial (&#x60;subscription_quota_exhausted&#x60;, raised only when the wallet cannot cover the pay-as-you-go fallback) carries &#x60;x-should-retry: false&#x60; and no Retry-After. When the tripped gate is a rolling 7-day cap (&#x60;param: weekly_input_tokens&#x60; or &#x60;param: weekly_output_tokens&#x60;), the error object also carries &#x60;quota_frees_at&#x60;, the RFC 3339 time the window frees enough capacity — the earlier of the two windows. &#x60;param&#x60; names the tripped gate: monthly_input_tokens, monthly_output_tokens, weekly_input_tokens, weekly_output_tokens, max_usage, input_overshoot (this request\&#39;s estimated input alone exceeds what is left in the tighter of the monthly and rolling 7-day input allowances), or output_overshoot (the same for the estimated output — the completion bound). On an overshoot the quota is not exhausted — send a smaller request (or a smaller max_tokens) or add credits. | * Retry-After - Seconds the client should wait before retrying. <br> * retry-after-ms - <br> * x-ratelimit-limit-requests - <br> * x-ratelimit-remaining-requests - <br> * x-ratelimit-reset-requests - <br> * x-should-retry - <br> * X-Deeprelay-Error-Code - <br> |
638
655
 
639
656
  [[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
640
657
 
@@ -706,18 +723,20 @@ example().catch(console.error);
706
723
  | Status code | Description | Response headers |
707
724
  |-------------|-------------|------------------|
708
725
  | **200** | OK | - |
709
- | **404** | Model or resource not found (OpenAI error envelope). | - |
710
- | **429** | Rate limit exceeded (OpenAI error envelope). Retry-After header indicates seconds to wait. | * Retry-After - Seconds the client should wait before retrying. <br> |
726
+ | **404** | Model or resource not found (OpenAI error envelope). | * X-Deeprelay-Error-Code - <br> |
727
+ | **429** | Rate limit or subscription quota exceeded (OpenAI error envelope). A per-key or per-IP rate limit (&#x60;rate_limit_exceeded&#x60;) carries Retry-After, the whole seconds to wait, rounded up (minimum 1), and retry-after-ms, the exact wait; both are the time until one request is allowed, not a full refill. A per-key denial also carries the x-ratelimit-*-requests headers. A subscription quota denial (&#x60;subscription_quota_exhausted&#x60;, raised only when the wallet cannot cover the pay-as-you-go fallback) carries &#x60;x-should-retry: false&#x60; and no Retry-After. When the tripped gate is a rolling 7-day cap (&#x60;param: weekly_input_tokens&#x60; or &#x60;param: weekly_output_tokens&#x60;), the error object also carries &#x60;quota_frees_at&#x60;, the RFC 3339 time the window frees enough capacity — the earlier of the two windows. &#x60;param&#x60; names the tripped gate: monthly_input_tokens, monthly_output_tokens, weekly_input_tokens, weekly_output_tokens, max_usage, input_overshoot (this request\&#39;s estimated input alone exceeds what is left in the tighter of the monthly and rolling 7-day input allowances), or output_overshoot (the same for the estimated output — the completion bound). On an overshoot the quota is not exhausted — send a smaller request (or a smaller max_tokens) or add credits. | * Retry-After - Seconds the client should wait before retrying. <br> * retry-after-ms - <br> * x-ratelimit-limit-requests - <br> * x-ratelimit-remaining-requests - <br> * x-ratelimit-reset-requests - <br> * x-should-retry - <br> * X-Deeprelay-Error-Code - <br> |
711
728
 
712
729
  [[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
713
730
 
714
731
 
715
732
  ## listModels
716
733
 
717
- > ModelList listModels(modality)
734
+ > ModelList listModels(modality, ifNoneMatch)
718
735
 
719
736
  List available models (OpenAI-compatible)
720
737
 
738
+ Works with or without an API key, and returns the same body either way. Without a key the response is publicly cacheable (&#x60;Cache-Control: public, max-age&#x3D;60&#x60;), carries a strong &#x60;ETag&#x60; (send &#x60;If-None-Match&#x60; to get a 304), and is rate-limited per client IP (429 &#x60;rate_limit_exceeded&#x60; with Retry-After). With a key it is &#x60;Cache-Control: private&#x60; and counts against the key\&#39;s rate limit; an invalid key returns 401, it does not fall back to anonymous access. Error responses are &#x60;no-store&#x60;. Each entry\&#39;s &#x60;supported_parameters&#x60; is backed by live capability probes of the model\&#39;s upstreams: it is the list to check before sending a gated parameter (&#x60;response_format&#x60;, &#x60;structured_outputs&#x60;, &#x60;logprobs&#x60;, &#x60;tools&#x60;, &#x60;vision&#x60;, ...). One exception to \&quot;the same body\&quot;: a key with a model allowlist (&#x60;allowed_models&#x60;) sees only the models on its list. Each entry may carry a &#x60;metrics&#x60; object (always the last key): measured time to first token, decode rate and success rate over a rolling window of deeprelay customer traffic. Below the sample minimum &#x60;insufficient_data&#x60; is true and the figure is omitted, never zero.
739
+
721
740
  ### Example
722
741
 
723
742
  ```ts
@@ -738,6 +757,8 @@ async function example() {
738
757
  const body = {
739
758
  // 'chat' | 'image' | 'video' | 'embedding' (optional)
740
759
  modality: modality_example,
760
+ // string | An ETag from an earlier anonymous response; a match returns 304. (optional)
761
+ ifNoneMatch: ifNoneMatch_example,
741
762
  } satisfies ListModelsRequest;
742
763
 
743
764
  try {
@@ -758,6 +779,7 @@ example().catch(console.error);
758
779
  | Name | Type | Description | Notes |
759
780
  |------------- | ------------- | ------------- | -------------|
760
781
  | **modality** | `chat`, `image`, `video`, `embedding` | | [Optional] [Defaults to `undefined`] [Enum: chat, image, video, embedding] |
782
+ | **ifNoneMatch** | `string` | An ETag from an earlier anonymous response; a match returns 304. | [Optional] [Defaults to `undefined`] |
761
783
 
762
784
  ### Return type
763
785
 
@@ -776,11 +798,12 @@ example().catch(console.error);
776
798
  ### HTTP response details
777
799
  | Status code | Description | Response headers |
778
800
  |-------------|-------------|------------------|
779
- | **200** | OpenAI-shaped model list. | - |
780
- | **400** | Invalid request (OpenAI error envelope). | - |
781
- | **401** | Missing or invalid API key (OpenAI error envelope). | - |
782
- | **403** | API key lacks the required scope (OpenAI error envelope). | - |
783
- | **429** | Rate limit exceeded (OpenAI error envelope). Retry-After header indicates seconds to wait. | * Retry-After - Seconds the client should wait before retrying. <br> |
801
+ | **200** | OpenAI-shaped model list. | * Cache-Control - &#x60;public, max-age&#x3D;60&#x60; without a key; &#x60;private&#x60; with one. <br> * ETag - Strong validator for the anonymous listing. <br> |
802
+ | **304** | Not modified; the If-None-Match ETag still matches. | - |
803
+ | **400** | Invalid request (OpenAI error envelope). | * X-Deeprelay-Error-Code - <br> |
804
+ | **401** | Missing or invalid API key (OpenAI error envelope). | * X-Deeprelay-Error-Code - <br> |
805
+ | **403** | API key lacks the required scope (&#x60;insufficient_scope&#x60;), or the key has a model allowlist that does not include the requested model (&#x60;model_not_allowed_for_key&#x60;; also the answer for a model that does not exist, so a restricted key cannot probe the catalog). OpenAI error envelope. | * X-Deeprelay-Error-Code - <br> |
806
+ | **429** | Rate limit or subscription quota exceeded (OpenAI error envelope). A per-key or per-IP rate limit (&#x60;rate_limit_exceeded&#x60;) carries Retry-After, the whole seconds to wait, rounded up (minimum 1), and retry-after-ms, the exact wait; both are the time until one request is allowed, not a full refill. A per-key denial also carries the x-ratelimit-*-requests headers. A subscription quota denial (&#x60;subscription_quota_exhausted&#x60;, raised only when the wallet cannot cover the pay-as-you-go fallback) carries &#x60;x-should-retry: false&#x60; and no Retry-After. When the tripped gate is a rolling 7-day cap (&#x60;param: weekly_input_tokens&#x60; or &#x60;param: weekly_output_tokens&#x60;), the error object also carries &#x60;quota_frees_at&#x60;, the RFC 3339 time the window frees enough capacity — the earlier of the two windows. &#x60;param&#x60; names the tripped gate: monthly_input_tokens, monthly_output_tokens, weekly_input_tokens, weekly_output_tokens, max_usage, input_overshoot (this request\&#39;s estimated input alone exceeds what is left in the tighter of the monthly and rolling 7-day input allowances), or output_overshoot (the same for the estimated output — the completion bound). On an overshoot the quota is not exhausted — send a smaller request (or a smaller max_tokens) or add credits. | * Retry-After - Seconds the client should wait before retrying. <br> * retry-after-ms - <br> * x-ratelimit-limit-requests - <br> * x-ratelimit-remaining-requests - <br> * x-ratelimit-reset-requests - <br> * x-should-retry - <br> * X-Deeprelay-Error-Code - <br> |
784
807
 
785
808
  [[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
786
809
 
@@ -853,9 +876,9 @@ example().catch(console.error);
853
876
  | Status code | Description | Response headers |
854
877
  |-------------|-------------|------------------|
855
878
  | **200** | A page of video generation jobs. | - |
856
- | **401** | Missing or invalid API key (OpenAI error envelope). | - |
857
- | **403** | API key lacks the required scope (OpenAI error envelope). | - |
858
- | **429** | Rate limit exceeded (OpenAI error envelope). Retry-After header indicates seconds to wait. | * Retry-After - Seconds the client should wait before retrying. <br> |
879
+ | **401** | Missing or invalid API key (OpenAI error envelope). | * X-Deeprelay-Error-Code - <br> |
880
+ | **403** | API key lacks the required scope (&#x60;insufficient_scope&#x60;), or the key has a model allowlist that does not include the requested model (&#x60;model_not_allowed_for_key&#x60;; also the answer for a model that does not exist, so a restricted key cannot probe the catalog). OpenAI error envelope. | * X-Deeprelay-Error-Code - <br> |
881
+ | **429** | Rate limit or subscription quota exceeded (OpenAI error envelope). A per-key or per-IP rate limit (&#x60;rate_limit_exceeded&#x60;) carries Retry-After, the whole seconds to wait, rounded up (minimum 1), and retry-after-ms, the exact wait; both are the time until one request is allowed, not a full refill. A per-key denial also carries the x-ratelimit-*-requests headers. A subscription quota denial (&#x60;subscription_quota_exhausted&#x60;, raised only when the wallet cannot cover the pay-as-you-go fallback) carries &#x60;x-should-retry: false&#x60; and no Retry-After. When the tripped gate is a rolling 7-day cap (&#x60;param: weekly_input_tokens&#x60; or &#x60;param: weekly_output_tokens&#x60;), the error object also carries &#x60;quota_frees_at&#x60;, the RFC 3339 time the window frees enough capacity — the earlier of the two windows. &#x60;param&#x60; names the tripped gate: monthly_input_tokens, monthly_output_tokens, weekly_input_tokens, weekly_output_tokens, max_usage, input_overshoot (this request\&#39;s estimated input alone exceeds what is left in the tighter of the monthly and rolling 7-day input allowances), or output_overshoot (the same for the estimated output — the completion bound). On an overshoot the quota is not exhausted — send a smaller request (or a smaller max_tokens) or add credits. | * Retry-After - Seconds the client should wait before retrying. <br> * retry-after-ms - <br> * x-ratelimit-limit-requests - <br> * x-ratelimit-remaining-requests - <br> * x-ratelimit-reset-requests - <br> * x-should-retry - <br> * X-Deeprelay-Error-Code - <br> |
859
882
 
860
883
  [[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
861
884
 
@@ -0,0 +1,41 @@
1
+
2
+ # JSONSchemaFormat
3
+
4
+ The schema is forwarded byte-for-byte. It may be at most 64 KiB and nested at most 32 levels deep; larger or deeper schemas return 400 unsupported_parameter (param response_format).
5
+
6
+ ## Properties
7
+
8
+ Name | Type
9
+ ------------ | -------------
10
+ `name` | string
11
+ `description` | string
12
+ `schema` | { [key: string]: any; }
13
+ `strict` | boolean
14
+
15
+ ## Example
16
+
17
+ ```typescript
18
+ import type { JSONSchemaFormat } from '@deeprelay/sdk'
19
+
20
+ // TODO: Update the object below with actual values
21
+ const example = {
22
+ "name": null,
23
+ "description": null,
24
+ "schema": null,
25
+ "strict": null,
26
+ } satisfies JSONSchemaFormat
27
+
28
+ console.log(example)
29
+
30
+ // Convert the instance to a JSON string
31
+ const exampleJSON: string = JSON.stringify(example)
32
+ console.log(exampleJSON)
33
+
34
+ // Parse the JSON string back to an object
35
+ const exampleParsed = JSON.parse(exampleJSON) as JSONSchemaFormat
36
+ console.log(exampleParsed)
37
+ ```
38
+
39
+ [[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
40
+
41
+