openapi: 3.0.3 info: title: dddice description: '' version: 1.0.0 servers: - url: 'https://dddice.com' paths: /api/1.0/theme: get: summary: 'List Themes' operationId: listThemes description: "Fetch a list of themes. Only the most recent version of each theme is returned\nwhere the \"most recent\" is determined by [SemVer 2.0.0](https://semver.org/spec/v2.0.0.html)" parameters: - in: header name: Authorization description: '' example: 'Bearer {YOUR_AUTH_KEY}' schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: type: 'theme[]' data: - meshes: d4: /mesh/d04.fbx d6: /mesh/d06.fbx d8: /mesh/d08.fbx d10: /mesh/d10.fbx d10x: /mesh/d10.fbx d12: /mesh/d12.fbx d20: /mesh/d20.fbx available_dice: - d4 - d6 - d8 - d10 - d10x - d12 - d20 physics: inertia: d4: 5 d6: 12 d8: 10 d10: 9 d10x: 9 d12: 8 d20: 6 weight: d4: 300 d6: 300 d8: 340 d10: 350 d10x: 350 d12: 350 d20: 400 sizes: d4: 1 d6: 1 d8: 1 d10: 1 d10x: 1 d12: 1 d20: 1 sounds: - src: /sounds/roll-1.mp3 'on': die.collide - src: /sounds/roll-2.mp3 'on': die.collide - src: /sounds/roll-3.mp3 'on': die.collide - src: /sounds/roll-loading-sm.mp3 'on': roll.loading value: 2 - src: /sounds/roll-loading-lg.mp3 'on': roll.loading value: '>=3' uniforms: number: type: color value: b: 0 g: 0.424 r: 0.463 diffuse: type: color value: b: 0 g: 0.929 r: 1 values: d4: - 1 - 2 - 3 - 4 d6: - 1 - 2 - 3 - 4 - 5 - 6 d8: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 d10: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 d12: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 d20: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - 15 - 16 - 17 - 18 - 19 - 20 d10x: - 10 - 20 - 30 - 40 - 50 - 60 - 70 - 80 - 90 - 0 id: ratione-id-cupiditate name: Ms. label: color: '#000000' background_color: '#e3d12d' version: 1.0.0 textures: - src: d4: u_numberMap.png d6: u_numberMap.png d8: u_numberMap.png d10: u_numberMap.png d12: u_numberMap.png d20: u_numberMap.png d10x: u_numberMap_d10x.png binding: u_numberMap api_version: '1.0' description: 'Delectus blanditiis ut et nesciunt perferendis veritatis veritatis. Dignissimos ex nihil delectus natus mollitia illum. Officiis consectetur totam nobis. Vero debitis maxime voluptas qui.' user: username: greenholt.martina uuid: 4a9afc1a-6d4c-3e35-8e02-1fd1f54641b2 name: 'Sierra Haag' created_at: '2025-05-20T23:22:59.000000Z' updated_at: '2025-05-20T23:22:59.000000Z' subscription: false is_merchant: false is_registered: false created_at: '2025-05-20T23:22:59.000000Z' updated_at: '2025-05-20T23:22:59.000000Z' - meshes: d4: /mesh/d04.fbx d6: /mesh/d06.fbx d8: /mesh/d08.fbx d10: /mesh/d10.fbx d10x: /mesh/d10.fbx d12: /mesh/d12.fbx d20: /mesh/d20.fbx available_dice: - d4 - d6 - d8 - d10 - d10x - d12 - d20 physics: inertia: d4: 5 d6: 12 d8: 10 d10: 9 d10x: 9 d12: 8 d20: 6 weight: d4: 300 d6: 300 d8: 340 d10: 350 d10x: 350 d12: 350 d20: 400 sizes: d4: 1 d6: 1 d8: 1 d10: 1 d10x: 1 d12: 1 d20: 1 sounds: - src: /sounds/roll-1.mp3 'on': die.collide - src: /sounds/roll-2.mp3 'on': die.collide - src: /sounds/roll-3.mp3 'on': die.collide - src: /sounds/roll-loading-sm.mp3 'on': roll.loading value: 2 - src: /sounds/roll-loading-lg.mp3 'on': roll.loading value: '>=3' uniforms: number: type: color value: b: 0 g: 0.424 r: 0.463 diffuse: type: color value: b: 0 g: 0.929 r: 1 values: d4: - 1 - 2 - 3 - 4 d6: - 1 - 2 - 3 - 4 - 5 - 6 d8: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 d10: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 d12: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 d20: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - 15 - 16 - 17 - 18 - 19 - 20 d10x: - 10 - 20 - 30 - 40 - 50 - 60 - 70 - 80 - 90 - 0 id: eum-facere name: Prof. label: color: '#000000' background_color: '#e3d12d' version: 1.0.0 textures: - src: d4: u_numberMap.png d6: u_numberMap.png d8: u_numberMap.png d10: u_numberMap.png d12: u_numberMap.png d20: u_numberMap.png d10x: u_numberMap_d10x.png binding: u_numberMap api_version: '1.0' description: 'Delectus eveniet voluptas cumque repudiandae in. Ducimus quia tempore ipsam velit et. Ea numquam nobis non quia omnis.' user: username: willms.lisette uuid: b42bf227-d92e-325b-95ea-26e3ab91b969 name: 'Dennis Treutel' created_at: '2025-05-20T23:22:59.000000Z' updated_at: '2025-05-20T23:22:59.000000Z' subscription: false is_merchant: false is_registered: false created_at: '2025-05-20T23:22:59.000000Z' updated_at: '2025-05-20T23:22:59.000000Z' properties: type: type: string example: 'theme[]' data: type: array example: - meshes: d4: /mesh/d04.fbx d6: /mesh/d06.fbx d8: /mesh/d08.fbx d10: /mesh/d10.fbx d10x: /mesh/d10.fbx d12: /mesh/d12.fbx d20: /mesh/d20.fbx available_dice: - d4 - d6 - d8 - d10 - d10x - d12 - d20 physics: inertia: d4: 5 d6: 12 d8: 10 d10: 9 d10x: 9 d12: 8 d20: 6 weight: d4: 300 d6: 300 d8: 340 d10: 350 d10x: 350 d12: 350 d20: 400 sizes: d4: 1 d6: 1 d8: 1 d10: 1 d10x: 1 d12: 1 d20: 1 sounds: - src: /sounds/roll-1.mp3 'on': die.collide - src: /sounds/roll-2.mp3 'on': die.collide - src: /sounds/roll-3.mp3 'on': die.collide - src: /sounds/roll-loading-sm.mp3 'on': roll.loading value: 2 - src: /sounds/roll-loading-lg.mp3 'on': roll.loading value: '>=3' uniforms: number: type: color value: b: 0 g: 0.424 r: 0.463 diffuse: type: color value: b: 0 g: 0.929 r: 1 values: d4: - 1 - 2 - 3 - 4 d6: - 1 - 2 - 3 - 4 - 5 - 6 d8: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 d10: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 d12: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 d20: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - 15 - 16 - 17 - 18 - 19 - 20 d10x: - 10 - 20 - 30 - 40 - 50 - 60 - 70 - 80 - 90 - 0 id: ratione-id-cupiditate name: Ms. label: color: '#000000' background_color: '#e3d12d' version: 1.0.0 textures: - src: d4: u_numberMap.png d6: u_numberMap.png d8: u_numberMap.png d10: u_numberMap.png d12: u_numberMap.png d20: u_numberMap.png d10x: u_numberMap_d10x.png binding: u_numberMap api_version: '1.0' description: 'Delectus blanditiis ut et nesciunt perferendis veritatis veritatis. Dignissimos ex nihil delectus natus mollitia illum. Officiis consectetur totam nobis. Vero debitis maxime voluptas qui.' user: username: greenholt.martina uuid: 4a9afc1a-6d4c-3e35-8e02-1fd1f54641b2 name: 'Sierra Haag' created_at: '2025-05-20T23:22:59.000000Z' updated_at: '2025-05-20T23:22:59.000000Z' subscription: false is_merchant: false is_registered: false created_at: '2025-05-20T23:22:59.000000Z' updated_at: '2025-05-20T23:22:59.000000Z' - meshes: d4: /mesh/d04.fbx d6: /mesh/d06.fbx d8: /mesh/d08.fbx d10: /mesh/d10.fbx d10x: /mesh/d10.fbx d12: /mesh/d12.fbx d20: /mesh/d20.fbx available_dice: - d4 - d6 - d8 - d10 - d10x - d12 - d20 physics: inertia: d4: 5 d6: 12 d8: 10 d10: 9 d10x: 9 d12: 8 d20: 6 weight: d4: 300 d6: 300 d8: 340 d10: 350 d10x: 350 d12: 350 d20: 400 sizes: d4: 1 d6: 1 d8: 1 d10: 1 d10x: 1 d12: 1 d20: 1 sounds: - src: /sounds/roll-1.mp3 'on': die.collide - src: /sounds/roll-2.mp3 'on': die.collide - src: /sounds/roll-3.mp3 'on': die.collide - src: /sounds/roll-loading-sm.mp3 'on': roll.loading value: 2 - src: /sounds/roll-loading-lg.mp3 'on': roll.loading value: '>=3' uniforms: number: type: color value: b: 0 g: 0.424 r: 0.463 diffuse: type: color value: b: 0 g: 0.929 r: 1 values: d4: - 1 - 2 - 3 - 4 d6: - 1 - 2 - 3 - 4 - 5 - 6 d8: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 d10: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 d12: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 d20: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - 15 - 16 - 17 - 18 - 19 - 20 d10x: - 10 - 20 - 30 - 40 - 50 - 60 - 70 - 80 - 90 - 0 id: eum-facere name: Prof. label: color: '#000000' background_color: '#e3d12d' version: 1.0.0 textures: - src: d4: u_numberMap.png d6: u_numberMap.png d8: u_numberMap.png d10: u_numberMap.png d12: u_numberMap.png d20: u_numberMap.png d10x: u_numberMap_d10x.png binding: u_numberMap api_version: '1.0' description: 'Delectus eveniet voluptas cumque repudiandae in. Ducimus quia tempore ipsam velit et. Ea numquam nobis non quia omnis.' user: username: willms.lisette uuid: b42bf227-d92e-325b-95ea-26e3ab91b969 name: 'Dennis Treutel' created_at: '2025-05-20T23:22:59.000000Z' updated_at: '2025-05-20T23:22:59.000000Z' subscription: false is_merchant: false is_registered: false created_at: '2025-05-20T23:22:59.000000Z' updated_at: '2025-05-20T23:22:59.000000Z' items: type: object properties: meshes: type: object properties: d4: type: string example: /mesh/d04.fbx d6: type: string example: /mesh/d06.fbx d8: type: string example: /mesh/d08.fbx d10: type: string example: /mesh/d10.fbx d10x: type: string example: /mesh/d10.fbx d12: type: string example: /mesh/d12.fbx d20: type: string example: /mesh/d20.fbx available_dice: type: array example: - d4 - d6 - d8 - d10 - d10x - d12 - d20 items: type: string physics: type: object properties: inertia: type: object properties: d4: type: integer example: 5 d6: type: integer example: 12 d8: type: integer example: 10 d10: type: integer example: 9 d10x: type: integer example: 9 d12: type: integer example: 8 d20: type: integer example: 6 weight: type: object properties: d4: type: integer example: 300 d6: type: integer example: 300 d8: type: integer example: 340 d10: type: integer example: 350 d10x: type: integer example: 350 d12: type: integer example: 350 d20: type: integer example: 400 sizes: type: object properties: d4: type: integer example: 1 d6: type: integer example: 1 d8: type: integer example: 1 d10: type: integer example: 1 d10x: type: integer example: 1 d12: type: integer example: 1 d20: type: integer example: 1 sounds: type: array example: - src: /sounds/roll-1.mp3 'on': die.collide - src: /sounds/roll-2.mp3 'on': die.collide - src: /sounds/roll-3.mp3 'on': die.collide - src: /sounds/roll-loading-sm.mp3 'on': roll.loading value: 2 - src: /sounds/roll-loading-lg.mp3 'on': roll.loading value: '>=3' items: type: object properties: src: type: string example: /sounds/roll-1.mp3 'on': type: string example: die.collide uniforms: type: object properties: number: type: object properties: type: type: string example: color value: type: object properties: b: type: integer example: 0 g: type: number example: 0.424 r: type: number example: 0.463 diffuse: type: object properties: type: type: string example: color value: type: object properties: b: type: integer example: 0 g: type: number example: 0.929 r: type: integer example: 1 values: type: object properties: d4: type: array example: - 1 - 2 - 3 - 4 items: type: integer d6: type: array example: - 1 - 2 - 3 - 4 - 5 - 6 items: type: integer d8: type: array example: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 items: type: integer d10: type: array example: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 items: type: integer d12: type: array example: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 items: type: integer d20: type: array example: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - 15 - 16 - 17 - 18 - 19 - 20 items: type: integer d10x: type: array example: - 10 - 20 - 30 - 40 - 50 - 60 - 70 - 80 - 90 - 0 items: type: integer id: type: string example: ratione-id-cupiditate name: type: string example: Ms. label: type: object properties: color: type: string example: '#000000' background_color: type: string example: '#e3d12d' version: type: string example: 1.0.0 textures: type: array example: - src: d4: u_numberMap.png d6: u_numberMap.png d8: u_numberMap.png d10: u_numberMap.png d12: u_numberMap.png d20: u_numberMap.png d10x: u_numberMap_d10x.png binding: u_numberMap items: type: object properties: src: type: object properties: d4: type: string example: u_numberMap.png d6: type: string example: u_numberMap.png d8: type: string example: u_numberMap.png d10: type: string example: u_numberMap.png d12: type: string example: u_numberMap.png d20: type: string example: u_numberMap.png d10x: type: string example: u_numberMap_d10x.png binding: type: string example: u_numberMap api_version: type: string example: '1.0' description: type: string example: 'Delectus blanditiis ut et nesciunt perferendis veritatis veritatis. Dignissimos ex nihil delectus natus mollitia illum. Officiis consectetur totam nobis. Vero debitis maxime voluptas qui.' user: type: object properties: username: type: string example: greenholt.martina uuid: type: string example: 4a9afc1a-6d4c-3e35-8e02-1fd1f54641b2 name: type: string example: 'Sierra Haag' created_at: type: string example: '2025-05-20T23:22:59.000000Z' updated_at: type: string example: '2025-05-20T23:22:59.000000Z' subscription: type: boolean example: false is_merchant: type: boolean example: false is_registered: type: boolean example: false created_at: type: string example: '2025-05-20T23:22:59.000000Z' updated_at: type: string example: '2025-05-20T23:22:59.000000Z' tags: - Theme post: summary: 'Create a Theme' operationId: createATheme description: 'Create a theme using a theme manifest and save to your dddice.' parameters: - in: header name: Authorization description: '' example: 'Bearer {YOUR_AUTH_KEY}' schema: type: string responses: 201: description: '' content: application/json: schema: type: object example: data: meshes: d4: /mesh/d04.fbx d6: /mesh/d06.fbx d8: /mesh/d08.fbx d10: /mesh/d10.fbx d10x: /mesh/d10.fbx d12: /mesh/d12.fbx d20: /mesh/d20.fbx available_dice: - d4 - d6 - d8 - d10 - d10x - d12 - d20 physics: inertia: d4: 5 d6: 12 d8: 10 d10: 9 d10x: 9 d12: 8 d20: 6 weight: d4: 300 d6: 300 d8: 340 d10: 350 d10x: 350 d12: 350 d20: 400 sizes: d4: 1 d6: 1 d8: 1 d10: 1 d10x: 1 d12: 1 d20: 1 sounds: - src: /sounds/roll-1.mp3 'on': die.collide - src: /sounds/roll-2.mp3 'on': die.collide - src: /sounds/roll-3.mp3 'on': die.collide - src: /sounds/roll-loading-sm.mp3 'on': roll.loading value: 2 - src: /sounds/roll-loading-lg.mp3 'on': roll.loading value: '>=3' uniforms: number: type: color value: b: 0 g: 0.424 r: 0.463 diffuse: type: color value: b: 0 g: 0.929 r: 1 values: d4: - 1 - 2 - 3 - 4 d6: - 1 - 2 - 3 - 4 - 5 - 6 d8: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 d10: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 d12: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 d20: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - 15 - 16 - 17 - 18 - 19 - 20 d10x: - 10 - 20 - 30 - 40 - 50 - 60 - 70 - 80 - 90 - 0 id: eum-nemo-possimus name: Mrs. label: color: '#000000' background_color: '#e3d12d' version: 1.0.0 textures: - src: d4: u_numberMap.png d6: u_numberMap.png d8: u_numberMap.png d10: u_numberMap.png d12: u_numberMap.png d20: u_numberMap.png d10x: u_numberMap_d10x.png binding: u_numberMap api_version: '1.0' description: 'Sapiente ducimus ab similique voluptatem occaecati ipsum. Dolor assumenda voluptas fugiat rem vel quia fuga. Iste quia adipisci fugit iusto et. Suscipit ex tempore quisquam sit.' user: username: camila.doyle uuid: 2478397f-38e2-3cdf-938c-f1a22a89242a name: 'Reyna Weber IV' created_at: '2025-05-20T23:22:59.000000Z' updated_at: '2025-05-20T23:22:59.000000Z' subscription: false is_merchant: false is_registered: false created_at: '2025-05-20T23:22:59.000000Z' updated_at: '2025-05-20T23:22:59.000000Z' properties: data: type: object properties: meshes: type: object properties: d4: type: string example: /mesh/d04.fbx d6: type: string example: /mesh/d06.fbx d8: type: string example: /mesh/d08.fbx d10: type: string example: /mesh/d10.fbx d10x: type: string example: /mesh/d10.fbx d12: type: string example: /mesh/d12.fbx d20: type: string example: /mesh/d20.fbx available_dice: type: array example: - d4 - d6 - d8 - d10 - d10x - d12 - d20 items: type: string physics: type: object properties: inertia: type: object properties: d4: type: integer example: 5 d6: type: integer example: 12 d8: type: integer example: 10 d10: type: integer example: 9 d10x: type: integer example: 9 d12: type: integer example: 8 d20: type: integer example: 6 weight: type: object properties: d4: type: integer example: 300 d6: type: integer example: 300 d8: type: integer example: 340 d10: type: integer example: 350 d10x: type: integer example: 350 d12: type: integer example: 350 d20: type: integer example: 400 sizes: type: object properties: d4: type: integer example: 1 d6: type: integer example: 1 d8: type: integer example: 1 d10: type: integer example: 1 d10x: type: integer example: 1 d12: type: integer example: 1 d20: type: integer example: 1 sounds: type: array example: - src: /sounds/roll-1.mp3 'on': die.collide - src: /sounds/roll-2.mp3 'on': die.collide - src: /sounds/roll-3.mp3 'on': die.collide - src: /sounds/roll-loading-sm.mp3 'on': roll.loading value: 2 - src: /sounds/roll-loading-lg.mp3 'on': roll.loading value: '>=3' items: type: object properties: src: type: string example: /sounds/roll-1.mp3 'on': type: string example: die.collide uniforms: type: object properties: number: type: object properties: type: type: string example: color value: type: object properties: b: type: integer example: 0 g: type: number example: 0.424 r: type: number example: 0.463 diffuse: type: object properties: type: type: string example: color value: type: object properties: b: type: integer example: 0 g: type: number example: 0.929 r: type: integer example: 1 values: type: object properties: d4: type: array example: - 1 - 2 - 3 - 4 items: type: integer d6: type: array example: - 1 - 2 - 3 - 4 - 5 - 6 items: type: integer d8: type: array example: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 items: type: integer d10: type: array example: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 items: type: integer d12: type: array example: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 items: type: integer d20: type: array example: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - 15 - 16 - 17 - 18 - 19 - 20 items: type: integer d10x: type: array example: - 10 - 20 - 30 - 40 - 50 - 60 - 70 - 80 - 90 - 0 items: type: integer id: type: string example: eum-nemo-possimus name: type: string example: Mrs. label: type: object properties: color: type: string example: '#000000' background_color: type: string example: '#e3d12d' version: type: string example: 1.0.0 textures: type: array example: - src: d4: u_numberMap.png d6: u_numberMap.png d8: u_numberMap.png d10: u_numberMap.png d12: u_numberMap.png d20: u_numberMap.png d10x: u_numberMap_d10x.png binding: u_numberMap items: type: object properties: src: type: object properties: d4: type: string example: u_numberMap.png d6: type: string example: u_numberMap.png d8: type: string example: u_numberMap.png d10: type: string example: u_numberMap.png d12: type: string example: u_numberMap.png d20: type: string example: u_numberMap.png d10x: type: string example: u_numberMap_d10x.png binding: type: string example: u_numberMap api_version: type: string example: '1.0' description: type: string example: 'Sapiente ducimus ab similique voluptatem occaecati ipsum. Dolor assumenda voluptas fugiat rem vel quia fuga. Iste quia adipisci fugit iusto et. Suscipit ex tempore quisquam sit.' user: type: object properties: username: type: string example: camila.doyle uuid: type: string example: 2478397f-38e2-3cdf-938c-f1a22a89242a name: type: string example: 'Reyna Weber IV' created_at: type: string example: '2025-05-20T23:22:59.000000Z' updated_at: type: string example: '2025-05-20T23:22:59.000000Z' subscription: type: boolean example: false is_merchant: type: boolean example: false is_registered: type: boolean example: false created_at: type: string example: '2025-05-20T23:22:59.000000Z' updated_at: type: string example: '2025-05-20T23:22:59.000000Z' tags: - Theme requestBody: required: true content: multipart/form-data: schema: type: object properties: frag_shader: type: string description: 'Custom fragment shader' example: sit manifest: type: string description: 'Theme manifest configuration' example: '{"meshes":{"d4":"/mesh/d04.fbx","d6":"/mesh/d06.fbx","d8":"/mesh/d08.fbx","d10":"/mesh/d10.fbx","d10x":"/mesh/d10.fbx","d12":"/mesh/d12.fbx","d20":"/mesh/d20.fbx"},"available_dice":["d4","d6","d8","d10","d10x","d12","d20"],"physics":{"inertia":{"d4":5,"d6":12,"d8":10,"d10":9,"d10x":9,"d12":8,"d20":6},"weight":{"d4":300,"d6":300,"d8":340,"d10":350,"d10x":350,"d12":350,"d20":400}},"sizes":{"d4":1,"d6":1,"d8":1,"d10":1,"d10x":1,"d12":1,"d20":1},"sounds":[{"src":"/sounds/roll-1.mp3","on":"die.collide"},{"src":"/sounds/roll-2.mp3","on":"die.collide"},{"src":"/sounds/roll-3.mp3","on":"die.collide"}],"uniforms":{"diffuse":{"type":"color","value":{"r":1,"g":0.929,"b":0}},"number":{"type":"color","value":{"r":0.463,"g":0.424,"b":0}}},"values":{"d4":[1,2,3,4],"d6":[1,2,3,4,5,6],"d8":[1,2,3,4,5,6,7,8],"d10":[1,2,3,4,5,6,7,8,9,10],"d12":[1,2,3,4,5,6,7,8,9,10,11,12],"d20":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20],"d10x":[10,20,30,40,50,60,70,80,90,0]},"id":"delectus_perferendis","version":"1.0.0","api_version":"1.0","name":"Miss","description":"Distinctio esse est dolores sit praesentium laboriosam officiis. Iure qui voluptatibus quidem atque nobis est consectetur enim. Eveniet harum quod quae optio repellat.","label":{"color":"#000000","background_color":"#e3d12d"},"textures":[{"binding":"u_numberMap","src":{"d4":"u_numberMap.png","d6":"u_numberMap.png","d8":"u_numberMap.png","d10":"u_numberMap.png","d12":"u_numberMap.png","d20":"u_numberMap.png","d10x":"u_numberMap_d10x.png"}}],"user":{"username":"ea_est","uuid":"c5de15e0-4337-11ed-abda-0242ac120003","name":"Ms. Demetris Mraz II","created_at":"2022-10-03T16:23:55.000000Z","updated_at":"2022-10-03T16:23:55.000000Z"},"created_at":"2022-10-03T16:23:55.000000Z","updated_at":"2022-10-03T16:23:55.000000Z"}' vert_shader: type: string description: 'Custom vertex shader' example: impedit assets: type: array description: 'Associated theme assets, filenames must match manifest.json references' example: - null items: type: File required: - manifest '/api/1.0/theme/{id}': get: summary: 'Get Theme' operationId: getTheme description: 'Get information about a theme. Returns the latest version.' parameters: - in: header name: Authorization description: '' example: 'Bearer {YOUR_AUTH_KEY}' schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: data: meshes: d4: /mesh/d04.fbx d6: /mesh/d06.fbx d8: /mesh/d08.fbx d10: /mesh/d10.fbx d10x: /mesh/d10.fbx d12: /mesh/d12.fbx d20: /mesh/d20.fbx available_dice: - d4 - d6 - d8 - d10 - d10x - d12 - d20 physics: inertia: d4: 5 d6: 12 d8: 10 d10: 9 d10x: 9 d12: 8 d20: 6 weight: d4: 300 d6: 300 d8: 340 d10: 350 d10x: 350 d12: 350 d20: 400 sizes: d4: 1 d6: 1 d8: 1 d10: 1 d10x: 1 d12: 1 d20: 1 sounds: - src: /sounds/roll-1.mp3 'on': die.collide - src: /sounds/roll-2.mp3 'on': die.collide - src: /sounds/roll-3.mp3 'on': die.collide - src: /sounds/roll-loading-sm.mp3 'on': roll.loading value: 2 - src: /sounds/roll-loading-lg.mp3 'on': roll.loading value: '>=3' uniforms: number: type: color value: b: 0 g: 0.424 r: 0.463 diffuse: type: color value: b: 0 g: 0.929 r: 1 values: d4: - 1 - 2 - 3 - 4 d6: - 1 - 2 - 3 - 4 - 5 - 6 d8: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 d10: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 d12: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 d20: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - 15 - 16 - 17 - 18 - 19 - 20 d10x: - 10 - 20 - 30 - 40 - 50 - 60 - 70 - 80 - 90 - 0 id: et-perspiciatis-sint name: Prof. label: color: '#000000' background_color: '#e3d12d' version: 1.0.0 textures: - src: d4: u_numberMap.png d6: u_numberMap.png d8: u_numberMap.png d10: u_numberMap.png d12: u_numberMap.png d20: u_numberMap.png d10x: u_numberMap_d10x.png binding: u_numberMap api_version: '1.0' description: 'Quaerat distinctio architecto rem perferendis eveniet laudantium. Et rem quisquam ut sit minima et. Autem omnis pariatur excepturi consequatur hic earum autem optio. Nihil in commodi corrupti sint ducimus.' user: username: wiegand.jared uuid: 76681b86-b249-3b68-88d0-895ad230f96e name: 'Humberto Kohler PhD' created_at: '2025-05-20T23:23:00.000000Z' updated_at: '2025-05-20T23:23:00.000000Z' subscription: false is_merchant: false is_registered: false created_at: '2025-05-20T23:23:00.000000Z' updated_at: '2025-05-20T23:23:00.000000Z' properties: data: type: object properties: meshes: type: object properties: d4: type: string example: /mesh/d04.fbx d6: type: string example: /mesh/d06.fbx d8: type: string example: /mesh/d08.fbx d10: type: string example: /mesh/d10.fbx d10x: type: string example: /mesh/d10.fbx d12: type: string example: /mesh/d12.fbx d20: type: string example: /mesh/d20.fbx available_dice: type: array example: - d4 - d6 - d8 - d10 - d10x - d12 - d20 items: type: string physics: type: object properties: inertia: type: object properties: d4: type: integer example: 5 d6: type: integer example: 12 d8: type: integer example: 10 d10: type: integer example: 9 d10x: type: integer example: 9 d12: type: integer example: 8 d20: type: integer example: 6 weight: type: object properties: d4: type: integer example: 300 d6: type: integer example: 300 d8: type: integer example: 340 d10: type: integer example: 350 d10x: type: integer example: 350 d12: type: integer example: 350 d20: type: integer example: 400 sizes: type: object properties: d4: type: integer example: 1 d6: type: integer example: 1 d8: type: integer example: 1 d10: type: integer example: 1 d10x: type: integer example: 1 d12: type: integer example: 1 d20: type: integer example: 1 sounds: type: array example: - src: /sounds/roll-1.mp3 'on': die.collide - src: /sounds/roll-2.mp3 'on': die.collide - src: /sounds/roll-3.mp3 'on': die.collide - src: /sounds/roll-loading-sm.mp3 'on': roll.loading value: 2 - src: /sounds/roll-loading-lg.mp3 'on': roll.loading value: '>=3' items: type: object properties: src: type: string example: /sounds/roll-1.mp3 'on': type: string example: die.collide uniforms: type: object properties: number: type: object properties: type: type: string example: color value: type: object properties: b: type: integer example: 0 g: type: number example: 0.424 r: type: number example: 0.463 diffuse: type: object properties: type: type: string example: color value: type: object properties: b: type: integer example: 0 g: type: number example: 0.929 r: type: integer example: 1 values: type: object properties: d4: type: array example: - 1 - 2 - 3 - 4 items: type: integer d6: type: array example: - 1 - 2 - 3 - 4 - 5 - 6 items: type: integer d8: type: array example: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 items: type: integer d10: type: array example: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 items: type: integer d12: type: array example: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 items: type: integer d20: type: array example: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - 15 - 16 - 17 - 18 - 19 - 20 items: type: integer d10x: type: array example: - 10 - 20 - 30 - 40 - 50 - 60 - 70 - 80 - 90 - 0 items: type: integer id: type: string example: et-perspiciatis-sint name: type: string example: Prof. label: type: object properties: color: type: string example: '#000000' background_color: type: string example: '#e3d12d' version: type: string example: 1.0.0 textures: type: array example: - src: d4: u_numberMap.png d6: u_numberMap.png d8: u_numberMap.png d10: u_numberMap.png d12: u_numberMap.png d20: u_numberMap.png d10x: u_numberMap_d10x.png binding: u_numberMap items: type: object properties: src: type: object properties: d4: type: string example: u_numberMap.png d6: type: string example: u_numberMap.png d8: type: string example: u_numberMap.png d10: type: string example: u_numberMap.png d12: type: string example: u_numberMap.png d20: type: string example: u_numberMap.png d10x: type: string example: u_numberMap_d10x.png binding: type: string example: u_numberMap api_version: type: string example: '1.0' description: type: string example: 'Quaerat distinctio architecto rem perferendis eveniet laudantium. Et rem quisquam ut sit minima et. Autem omnis pariatur excepturi consequatur hic earum autem optio. Nihil in commodi corrupti sint ducimus.' user: type: object properties: username: type: string example: wiegand.jared uuid: type: string example: 76681b86-b249-3b68-88d0-895ad230f96e name: type: string example: 'Humberto Kohler PhD' created_at: type: string example: '2025-05-20T23:23:00.000000Z' updated_at: type: string example: '2025-05-20T23:23:00.000000Z' subscription: type: boolean example: false is_merchant: type: boolean example: false is_registered: type: boolean example: false created_at: type: string example: '2025-05-20T23:23:00.000000Z' updated_at: type: string example: '2025-05-20T23:23:00.000000Z' tags: - Theme delete: summary: 'Delete Theme' operationId: deleteTheme description: 'Delete all versions of a given theme.' parameters: - in: header name: Authorization description: '' example: 'Bearer {YOUR_AUTH_KEY}' schema: type: string responses: 204: description: '' tags: - Theme parameters: - in: path name: id description: 'The ID of the theme.' example: dddice-bees required: true schema: type: string '/api/1.0/theme/{id}/version': get: summary: 'Get All Theme Versions' operationId: getAllThemeVersions description: 'List all versions of a given theme.' parameters: - in: header name: Authorization description: '' example: 'Bearer {YOUR_AUTH_KEY}' schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: type: 'theme[]' data: - meshes: d4: /mesh/d04.fbx d6: /mesh/d06.fbx d8: /mesh/d08.fbx d10: /mesh/d10.fbx d10x: /mesh/d10.fbx d12: /mesh/d12.fbx d20: /mesh/d20.fbx available_dice: - d4 - d6 - d8 - d10 - d10x - d12 - d20 physics: inertia: d4: 5 d6: 12 d8: 10 d10: 9 d10x: 9 d12: 8 d20: 6 weight: d4: 300 d6: 300 d8: 340 d10: 350 d10x: 350 d12: 350 d20: 400 sizes: d4: 1 d6: 1 d8: 1 d10: 1 d10x: 1 d12: 1 d20: 1 sounds: - src: /sounds/roll-1.mp3 'on': die.collide - src: /sounds/roll-2.mp3 'on': die.collide - src: /sounds/roll-3.mp3 'on': die.collide - src: /sounds/roll-loading-sm.mp3 'on': roll.loading value: 2 - src: /sounds/roll-loading-lg.mp3 'on': roll.loading value: '>=3' uniforms: number: type: color value: b: 0 g: 0.424 r: 0.463 diffuse: type: color value: b: 0 g: 0.929 r: 1 values: d4: - 1 - 2 - 3 - 4 d6: - 1 - 2 - 3 - 4 - 5 - 6 d8: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 d10: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 d12: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 d20: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - 15 - 16 - 17 - 18 - 19 - 20 d10x: - 10 - 20 - 30 - 40 - 50 - 60 - 70 - 80 - 90 - 0 id: distinctio-quidem-ut name: Dr. label: color: '#000000' background_color: '#e3d12d' version: 1.0.0 textures: - src: d4: u_numberMap.png d6: u_numberMap.png d8: u_numberMap.png d10: u_numberMap.png d12: u_numberMap.png d20: u_numberMap.png d10x: u_numberMap_d10x.png binding: u_numberMap api_version: '1.0' description: 'Perspiciatis exercitationem officiis velit sit quis natus. Et dignissimos totam totam nemo temporibus ex quo. Modi cumque impedit saepe et eveniet voluptatem.' user: username: alowe uuid: cc0e67e4-5a9f-3d64-ab41-e885b2d3e866 name: 'Elinore Witting' created_at: '2025-05-20T23:23:00.000000Z' updated_at: '2025-05-20T23:23:00.000000Z' subscription: false is_merchant: false is_registered: false created_at: '2025-05-20T23:23:00.000000Z' updated_at: '2025-05-20T23:23:00.000000Z' - meshes: d4: /mesh/d04.fbx d6: /mesh/d06.fbx d8: /mesh/d08.fbx d10: /mesh/d10.fbx d10x: /mesh/d10.fbx d12: /mesh/d12.fbx d20: /mesh/d20.fbx available_dice: - d4 - d6 - d8 - d10 - d10x - d12 - d20 physics: inertia: d4: 5 d6: 12 d8: 10 d10: 9 d10x: 9 d12: 8 d20: 6 weight: d4: 300 d6: 300 d8: 340 d10: 350 d10x: 350 d12: 350 d20: 400 sizes: d4: 1 d6: 1 d8: 1 d10: 1 d10x: 1 d12: 1 d20: 1 sounds: - src: /sounds/roll-1.mp3 'on': die.collide - src: /sounds/roll-2.mp3 'on': die.collide - src: /sounds/roll-3.mp3 'on': die.collide - src: /sounds/roll-loading-sm.mp3 'on': roll.loading value: 2 - src: /sounds/roll-loading-lg.mp3 'on': roll.loading value: '>=3' uniforms: number: type: color value: b: 0 g: 0.424 r: 0.463 diffuse: type: color value: b: 0 g: 0.929 r: 1 values: d4: - 1 - 2 - 3 - 4 d6: - 1 - 2 - 3 - 4 - 5 - 6 d8: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 d10: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 d12: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 d20: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - 15 - 16 - 17 - 18 - 19 - 20 d10x: - 10 - 20 - 30 - 40 - 50 - 60 - 70 - 80 - 90 - 0 id: sunt-dolor-temporibus name: Dr. label: color: '#000000' background_color: '#e3d12d' version: 1.0.0 textures: - src: d4: u_numberMap.png d6: u_numberMap.png d8: u_numberMap.png d10: u_numberMap.png d12: u_numberMap.png d20: u_numberMap.png d10x: u_numberMap_d10x.png binding: u_numberMap api_version: '1.0' description: 'Tempora accusantium eius ad. Eveniet vitae ut dolores repellendus autem nam hic. Qui harum nulla incidunt pariatur. Et et et rem et cum voluptatum.' user: username: chase.rutherford uuid: 4f2eeb49-b0b3-36f8-9e87-bed39b79acdf name: 'Dr. Laverna Casper DVM' created_at: '2025-05-20T23:23:00.000000Z' updated_at: '2025-05-20T23:23:00.000000Z' subscription: false is_merchant: false is_registered: false created_at: '2025-05-20T23:23:00.000000Z' updated_at: '2025-05-20T23:23:00.000000Z' properties: type: type: string example: 'theme[]' data: type: array example: - meshes: d4: /mesh/d04.fbx d6: /mesh/d06.fbx d8: /mesh/d08.fbx d10: /mesh/d10.fbx d10x: /mesh/d10.fbx d12: /mesh/d12.fbx d20: /mesh/d20.fbx available_dice: - d4 - d6 - d8 - d10 - d10x - d12 - d20 physics: inertia: d4: 5 d6: 12 d8: 10 d10: 9 d10x: 9 d12: 8 d20: 6 weight: d4: 300 d6: 300 d8: 340 d10: 350 d10x: 350 d12: 350 d20: 400 sizes: d4: 1 d6: 1 d8: 1 d10: 1 d10x: 1 d12: 1 d20: 1 sounds: - src: /sounds/roll-1.mp3 'on': die.collide - src: /sounds/roll-2.mp3 'on': die.collide - src: /sounds/roll-3.mp3 'on': die.collide - src: /sounds/roll-loading-sm.mp3 'on': roll.loading value: 2 - src: /sounds/roll-loading-lg.mp3 'on': roll.loading value: '>=3' uniforms: number: type: color value: b: 0 g: 0.424 r: 0.463 diffuse: type: color value: b: 0 g: 0.929 r: 1 values: d4: - 1 - 2 - 3 - 4 d6: - 1 - 2 - 3 - 4 - 5 - 6 d8: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 d10: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 d12: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 d20: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - 15 - 16 - 17 - 18 - 19 - 20 d10x: - 10 - 20 - 30 - 40 - 50 - 60 - 70 - 80 - 90 - 0 id: distinctio-quidem-ut name: Dr. label: color: '#000000' background_color: '#e3d12d' version: 1.0.0 textures: - src: d4: u_numberMap.png d6: u_numberMap.png d8: u_numberMap.png d10: u_numberMap.png d12: u_numberMap.png d20: u_numberMap.png d10x: u_numberMap_d10x.png binding: u_numberMap api_version: '1.0' description: 'Perspiciatis exercitationem officiis velit sit quis natus. Et dignissimos totam totam nemo temporibus ex quo. Modi cumque impedit saepe et eveniet voluptatem.' user: username: alowe uuid: cc0e67e4-5a9f-3d64-ab41-e885b2d3e866 name: 'Elinore Witting' created_at: '2025-05-20T23:23:00.000000Z' updated_at: '2025-05-20T23:23:00.000000Z' subscription: false is_merchant: false is_registered: false created_at: '2025-05-20T23:23:00.000000Z' updated_at: '2025-05-20T23:23:00.000000Z' - meshes: d4: /mesh/d04.fbx d6: /mesh/d06.fbx d8: /mesh/d08.fbx d10: /mesh/d10.fbx d10x: /mesh/d10.fbx d12: /mesh/d12.fbx d20: /mesh/d20.fbx available_dice: - d4 - d6 - d8 - d10 - d10x - d12 - d20 physics: inertia: d4: 5 d6: 12 d8: 10 d10: 9 d10x: 9 d12: 8 d20: 6 weight: d4: 300 d6: 300 d8: 340 d10: 350 d10x: 350 d12: 350 d20: 400 sizes: d4: 1 d6: 1 d8: 1 d10: 1 d10x: 1 d12: 1 d20: 1 sounds: - src: /sounds/roll-1.mp3 'on': die.collide - src: /sounds/roll-2.mp3 'on': die.collide - src: /sounds/roll-3.mp3 'on': die.collide - src: /sounds/roll-loading-sm.mp3 'on': roll.loading value: 2 - src: /sounds/roll-loading-lg.mp3 'on': roll.loading value: '>=3' uniforms: number: type: color value: b: 0 g: 0.424 r: 0.463 diffuse: type: color value: b: 0 g: 0.929 r: 1 values: d4: - 1 - 2 - 3 - 4 d6: - 1 - 2 - 3 - 4 - 5 - 6 d8: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 d10: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 d12: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 d20: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - 15 - 16 - 17 - 18 - 19 - 20 d10x: - 10 - 20 - 30 - 40 - 50 - 60 - 70 - 80 - 90 - 0 id: sunt-dolor-temporibus name: Dr. label: color: '#000000' background_color: '#e3d12d' version: 1.0.0 textures: - src: d4: u_numberMap.png d6: u_numberMap.png d8: u_numberMap.png d10: u_numberMap.png d12: u_numberMap.png d20: u_numberMap.png d10x: u_numberMap_d10x.png binding: u_numberMap api_version: '1.0' description: 'Tempora accusantium eius ad. Eveniet vitae ut dolores repellendus autem nam hic. Qui harum nulla incidunt pariatur. Et et et rem et cum voluptatum.' user: username: chase.rutherford uuid: 4f2eeb49-b0b3-36f8-9e87-bed39b79acdf name: 'Dr. Laverna Casper DVM' created_at: '2025-05-20T23:23:00.000000Z' updated_at: '2025-05-20T23:23:00.000000Z' subscription: false is_merchant: false is_registered: false created_at: '2025-05-20T23:23:00.000000Z' updated_at: '2025-05-20T23:23:00.000000Z' items: type: object properties: meshes: type: object properties: d4: type: string example: /mesh/d04.fbx d6: type: string example: /mesh/d06.fbx d8: type: string example: /mesh/d08.fbx d10: type: string example: /mesh/d10.fbx d10x: type: string example: /mesh/d10.fbx d12: type: string example: /mesh/d12.fbx d20: type: string example: /mesh/d20.fbx available_dice: type: array example: - d4 - d6 - d8 - d10 - d10x - d12 - d20 items: type: string physics: type: object properties: inertia: type: object properties: d4: type: integer example: 5 d6: type: integer example: 12 d8: type: integer example: 10 d10: type: integer example: 9 d10x: type: integer example: 9 d12: type: integer example: 8 d20: type: integer example: 6 weight: type: object properties: d4: type: integer example: 300 d6: type: integer example: 300 d8: type: integer example: 340 d10: type: integer example: 350 d10x: type: integer example: 350 d12: type: integer example: 350 d20: type: integer example: 400 sizes: type: object properties: d4: type: integer example: 1 d6: type: integer example: 1 d8: type: integer example: 1 d10: type: integer example: 1 d10x: type: integer example: 1 d12: type: integer example: 1 d20: type: integer example: 1 sounds: type: array example: - src: /sounds/roll-1.mp3 'on': die.collide - src: /sounds/roll-2.mp3 'on': die.collide - src: /sounds/roll-3.mp3 'on': die.collide - src: /sounds/roll-loading-sm.mp3 'on': roll.loading value: 2 - src: /sounds/roll-loading-lg.mp3 'on': roll.loading value: '>=3' items: type: object properties: src: type: string example: /sounds/roll-1.mp3 'on': type: string example: die.collide uniforms: type: object properties: number: type: object properties: type: type: string example: color value: type: object properties: b: type: integer example: 0 g: type: number example: 0.424 r: type: number example: 0.463 diffuse: type: object properties: type: type: string example: color value: type: object properties: b: type: integer example: 0 g: type: number example: 0.929 r: type: integer example: 1 values: type: object properties: d4: type: array example: - 1 - 2 - 3 - 4 items: type: integer d6: type: array example: - 1 - 2 - 3 - 4 - 5 - 6 items: type: integer d8: type: array example: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 items: type: integer d10: type: array example: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 items: type: integer d12: type: array example: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 items: type: integer d20: type: array example: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - 15 - 16 - 17 - 18 - 19 - 20 items: type: integer d10x: type: array example: - 10 - 20 - 30 - 40 - 50 - 60 - 70 - 80 - 90 - 0 items: type: integer id: type: string example: distinctio-quidem-ut name: type: string example: Dr. label: type: object properties: color: type: string example: '#000000' background_color: type: string example: '#e3d12d' version: type: string example: 1.0.0 textures: type: array example: - src: d4: u_numberMap.png d6: u_numberMap.png d8: u_numberMap.png d10: u_numberMap.png d12: u_numberMap.png d20: u_numberMap.png d10x: u_numberMap_d10x.png binding: u_numberMap items: type: object properties: src: type: object properties: d4: type: string example: u_numberMap.png d6: type: string example: u_numberMap.png d8: type: string example: u_numberMap.png d10: type: string example: u_numberMap.png d12: type: string example: u_numberMap.png d20: type: string example: u_numberMap.png d10x: type: string example: u_numberMap_d10x.png binding: type: string example: u_numberMap api_version: type: string example: '1.0' description: type: string example: 'Perspiciatis exercitationem officiis velit sit quis natus. Et dignissimos totam totam nemo temporibus ex quo. Modi cumque impedit saepe et eveniet voluptatem.' user: type: object properties: username: type: string example: alowe uuid: type: string example: cc0e67e4-5a9f-3d64-ab41-e885b2d3e866 name: type: string example: 'Elinore Witting' created_at: type: string example: '2025-05-20T23:23:00.000000Z' updated_at: type: string example: '2025-05-20T23:23:00.000000Z' subscription: type: boolean example: false is_merchant: type: boolean example: false is_registered: type: boolean example: false created_at: type: string example: '2025-05-20T23:23:00.000000Z' updated_at: type: string example: '2025-05-20T23:23:00.000000Z' tags: - Theme parameters: - in: path name: id description: 'The ID of the theme.' example: dddice-bees required: true schema: type: string '/api/1.0/theme/{id}/version/{version}': get: summary: 'Get a Theme Version' operationId: getAThemeVersion description: 'Get a specific version of a given theme.' parameters: - in: header name: Authorization description: '' example: 'Bearer {YOUR_AUTH_KEY}' schema: type: string responses: 201: description: '' content: application/json: schema: type: object example: data: meshes: d4: /mesh/d04.fbx d6: /mesh/d06.fbx d8: /mesh/d08.fbx d10: /mesh/d10.fbx d10x: /mesh/d10.fbx d12: /mesh/d12.fbx d20: /mesh/d20.fbx available_dice: - d4 - d6 - d8 - d10 - d10x - d12 - d20 physics: inertia: d4: 5 d6: 12 d8: 10 d10: 9 d10x: 9 d12: 8 d20: 6 weight: d4: 300 d6: 300 d8: 340 d10: 350 d10x: 350 d12: 350 d20: 400 sizes: d4: 1 d6: 1 d8: 1 d10: 1 d10x: 1 d12: 1 d20: 1 sounds: - src: /sounds/roll-1.mp3 'on': die.collide - src: /sounds/roll-2.mp3 'on': die.collide - src: /sounds/roll-3.mp3 'on': die.collide - src: /sounds/roll-loading-sm.mp3 'on': roll.loading value: 2 - src: /sounds/roll-loading-lg.mp3 'on': roll.loading value: '>=3' uniforms: number: type: color value: b: 0 g: 0.424 r: 0.463 diffuse: type: color value: b: 0 g: 0.929 r: 1 values: d4: - 1 - 2 - 3 - 4 d6: - 1 - 2 - 3 - 4 - 5 - 6 d8: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 d10: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 d12: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 d20: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - 15 - 16 - 17 - 18 - 19 - 20 d10x: - 10 - 20 - 30 - 40 - 50 - 60 - 70 - 80 - 90 - 0 id: enim-cupiditate-sunt name: Prof. label: color: '#000000' background_color: '#e3d12d' version: 1.0.0 textures: - src: d4: u_numberMap.png d6: u_numberMap.png d8: u_numberMap.png d10: u_numberMap.png d12: u_numberMap.png d20: u_numberMap.png d10x: u_numberMap_d10x.png binding: u_numberMap api_version: '1.0' description: 'Commodi quia est eum id. In aut laborum libero qui tempore in.' user: username: devon05 uuid: 7b86bc7d-9d79-33f1-8db6-ce25b6414bbb name: 'Prof. Edwardo Kuhlman MD' created_at: '2025-05-20T23:23:00.000000Z' updated_at: '2025-05-20T23:23:00.000000Z' subscription: false is_merchant: false is_registered: false created_at: '2025-05-20T23:23:00.000000Z' updated_at: '2025-05-20T23:23:00.000000Z' properties: data: type: object properties: meshes: type: object properties: d4: type: string example: /mesh/d04.fbx d6: type: string example: /mesh/d06.fbx d8: type: string example: /mesh/d08.fbx d10: type: string example: /mesh/d10.fbx d10x: type: string example: /mesh/d10.fbx d12: type: string example: /mesh/d12.fbx d20: type: string example: /mesh/d20.fbx available_dice: type: array example: - d4 - d6 - d8 - d10 - d10x - d12 - d20 items: type: string physics: type: object properties: inertia: type: object properties: d4: type: integer example: 5 d6: type: integer example: 12 d8: type: integer example: 10 d10: type: integer example: 9 d10x: type: integer example: 9 d12: type: integer example: 8 d20: type: integer example: 6 weight: type: object properties: d4: type: integer example: 300 d6: type: integer example: 300 d8: type: integer example: 340 d10: type: integer example: 350 d10x: type: integer example: 350 d12: type: integer example: 350 d20: type: integer example: 400 sizes: type: object properties: d4: type: integer example: 1 d6: type: integer example: 1 d8: type: integer example: 1 d10: type: integer example: 1 d10x: type: integer example: 1 d12: type: integer example: 1 d20: type: integer example: 1 sounds: type: array example: - src: /sounds/roll-1.mp3 'on': die.collide - src: /sounds/roll-2.mp3 'on': die.collide - src: /sounds/roll-3.mp3 'on': die.collide - src: /sounds/roll-loading-sm.mp3 'on': roll.loading value: 2 - src: /sounds/roll-loading-lg.mp3 'on': roll.loading value: '>=3' items: type: object properties: src: type: string example: /sounds/roll-1.mp3 'on': type: string example: die.collide uniforms: type: object properties: number: type: object properties: type: type: string example: color value: type: object properties: b: type: integer example: 0 g: type: number example: 0.424 r: type: number example: 0.463 diffuse: type: object properties: type: type: string example: color value: type: object properties: b: type: integer example: 0 g: type: number example: 0.929 r: type: integer example: 1 values: type: object properties: d4: type: array example: - 1 - 2 - 3 - 4 items: type: integer d6: type: array example: - 1 - 2 - 3 - 4 - 5 - 6 items: type: integer d8: type: array example: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 items: type: integer d10: type: array example: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 items: type: integer d12: type: array example: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 items: type: integer d20: type: array example: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - 15 - 16 - 17 - 18 - 19 - 20 items: type: integer d10x: type: array example: - 10 - 20 - 30 - 40 - 50 - 60 - 70 - 80 - 90 - 0 items: type: integer id: type: string example: enim-cupiditate-sunt name: type: string example: Prof. label: type: object properties: color: type: string example: '#000000' background_color: type: string example: '#e3d12d' version: type: string example: 1.0.0 textures: type: array example: - src: d4: u_numberMap.png d6: u_numberMap.png d8: u_numberMap.png d10: u_numberMap.png d12: u_numberMap.png d20: u_numberMap.png d10x: u_numberMap_d10x.png binding: u_numberMap items: type: object properties: src: type: object properties: d4: type: string example: u_numberMap.png d6: type: string example: u_numberMap.png d8: type: string example: u_numberMap.png d10: type: string example: u_numberMap.png d12: type: string example: u_numberMap.png d20: type: string example: u_numberMap.png d10x: type: string example: u_numberMap_d10x.png binding: type: string example: u_numberMap api_version: type: string example: '1.0' description: type: string example: 'Commodi quia est eum id. In aut laborum libero qui tempore in.' user: type: object properties: username: type: string example: devon05 uuid: type: string example: 7b86bc7d-9d79-33f1-8db6-ce25b6414bbb name: type: string example: 'Prof. Edwardo Kuhlman MD' created_at: type: string example: '2025-05-20T23:23:00.000000Z' updated_at: type: string example: '2025-05-20T23:23:00.000000Z' subscription: type: boolean example: false is_merchant: type: boolean example: false is_registered: type: boolean example: false created_at: type: string example: '2025-05-20T23:23:00.000000Z' updated_at: type: string example: '2025-05-20T23:23:00.000000Z' tags: - Theme delete: summary: 'Delete Theme Version' operationId: deleteThemeVersion description: 'Delete a specific version of a given theme.' parameters: - in: header name: Authorization description: '' example: 'Bearer {YOUR_AUTH_KEY}' schema: type: string responses: 204: description: '' tags: - Theme parameters: - in: path name: id description: 'The ID of the theme.' example: dddice-bees required: true schema: type: string - in: path name: version description: 'Theme Version.' example: 1.0.0 required: true schema: type: string '/api/1.0/theme/{id}/report': post: summary: 'Report Theme' operationId: reportTheme description: 'Report a theme for abuse or spam.' parameters: - in: header name: Authorization description: '' example: 'Bearer {YOUR_AUTH_KEY}' schema: type: string responses: 204: description: '' tags: - Theme parameters: - in: path name: id description: 'The ID of the theme.' example: dddice-bees required: true schema: type: string '/api/1.0/theme/{id}/statistic/histogram/values': get: summary: 'Chart: Frequency of roll values' operationId: chartFrequencyOfRollValues description: 'Get statistical information about a theme.' parameters: - in: header name: Authorization description: '' example: 'Bearer {YOUR_AUTH_KEY}' schema: type: string responses: 200: description: '' content: text/plain: schema: type: string example: "{\n \"data\": {\n \"labels\": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20],\n \"datasets\": [{\n \"label\": \"d4\",\n \"data\": [12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]\n }, {\n \"label\": \"d6\",\n \"data\": [5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]\n }, {\n \"label\": \"d8\",\n \"data\": [8, 8, 8, 8, 8, 8, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]\n }, {\n \"label\": \"d20\",\n \"data\": [10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10]\n }],\n \"processed_at\": \"2023-10-06T21:36:22.462064Z\"\n \"updated_at\": \"2023-10-06T21:37:11.221642Z\"\n }\n}" tags: - Theme parameters: - in: path name: id description: 'The ID of the theme.' example: dddice-bees required: true schema: type: string '/api/1.0/theme/{id}/statistic/timeseries/rolls': get: summary: 'Chart: Total rolls over time' operationId: chartTotalRollsOverTime description: 'Get statistical information about a theme.' parameters: - in: header name: Authorization description: '' example: 'Bearer {YOUR_AUTH_KEY}' schema: type: string responses: 200: description: '' content: text/plain: schema: type: string example: "{\n \"data\": {\n \"labels\": [\"2023-01-01\", \"2023-01-02\", \"2023-01-03\"],\n \"datasets\": [{\n \"label\": \"Rolls over time\",\n \"data\": [1000, 1100, 1200]\n }],\n \"processed_at\": \"2023-10-06T21:36:22.462064Z\"\n \"updated_at\": \"2023-10-06T21:37:11.221642Z\"\n }\n}" tags: - Theme parameters: - in: path name: id description: 'The ID of the theme.' example: dddice-bees required: true schema: type: string /api/1.0/room: get: summary: 'List Rooms' operationId: listRooms description: 'List all rooms created or joined by a user' parameters: - in: query name: created description: 'Only return rooms where you are the owner' example: true required: false schema: type: boolean description: 'Only return rooms where you are the owner' example: true - in: header name: Authorization description: '' example: 'Bearer {YOUR_AUTH_KEY}' schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: type: 'room[]' data: - name: 'Untitled Room' is_public: true bg_file_path: //images/environment/bg-2.webp slug: ho6vihu passcode: magnam custom_slug: E147hs1 settings: chat: backgroundColor: 0 deleteAfter: 0 fadeAfter: 0 isDiceExpanded: false isDiceSorted: false isUsernameVisible: true isVisible: true textColor: 16777215 textSize: sm lighting: ambientColor: 16777215 ambientIntensity: 0.5 spotlightColor: 16777215 spotlightIntensity: 0.33 participant: defaultDiceTrayToGM: false physics: gravity: 9.82 throwSpeed: 30 roll: allowPlayerRollUpdates: false allowPlayerMoveDice: false autoClear: 10 defaultClickBehavior: reroll diceSize: 1 diceLimit: 25 diceTrayColor: 0 disableDiceOutline: false disableDiceShadows: false disableShakingSound: false pickUp: 1 updated_at: '2025-05-20T23:22:59.000000Z' created_at: '2025-05-20T23:22:59.000000Z' user: username: fwilliamson uuid: 134affba-ee9f-379b-9b00-734fd5410bf6 name: 'Wilfred Eichmann' created_at: '2025-05-20T23:22:59.000000Z' updated_at: '2025-05-20T23:22:59.000000Z' participants: - id: 2 username: blanditiis_occaecati color: '#e3fab4' position: 0 settings: null created_at: '2025-05-20T23:22:59.000000Z' updated_at: '2025-05-20T23:22:59.000000Z' deleted_at: null user: username: berneice.jacobs uuid: f6377a63-8f3b-3a5e-b66f-d9b83964375c name: 'Dr. Lue Johnson' created_at: '2025-05-20T23:22:59.000000Z' updated_at: '2025-05-20T23:22:59.000000Z' - id: 3 username: est_suscipit color: '#a3ef2c' position: 0 settings: null created_at: '2025-05-20T23:22:59.000000Z' updated_at: '2025-05-20T23:22:59.000000Z' deleted_at: null user: username: finn22 uuid: 68efaa4f-2ec3-3c96-ad06-4915b1315b7c name: 'Mr. Connor Gulgowski' created_at: '2025-05-20T23:22:59.000000Z' updated_at: '2025-05-20T23:22:59.000000Z' - name: 'Untitled Room' is_public: true bg_file_path: //images/environment/bg-3.webp slug: 28Sh00v passcode: impedit custom_slug: 7ou5kjZ settings: chat: backgroundColor: 0 deleteAfter: 0 fadeAfter: 0 isDiceExpanded: false isDiceSorted: false isUsernameVisible: true isVisible: true textColor: 16777215 textSize: sm lighting: ambientColor: 16777215 ambientIntensity: 0.5 spotlightColor: 16777215 spotlightIntensity: 0.33 participant: defaultDiceTrayToGM: false physics: gravity: 9.82 throwSpeed: 30 roll: allowPlayerRollUpdates: false allowPlayerMoveDice: false autoClear: 10 defaultClickBehavior: reroll diceSize: 1 diceLimit: 25 diceTrayColor: 0 disableDiceOutline: false disableDiceShadows: false disableShakingSound: false pickUp: 1 updated_at: '2025-05-20T23:22:59.000000Z' created_at: '2025-05-20T23:22:59.000000Z' user: username: raphael.wilderman uuid: dbd93e76-b462-37b7-9ec7-53001d347437 name: 'Miss Josefa Crist' created_at: '2025-05-20T23:22:59.000000Z' updated_at: '2025-05-20T23:22:59.000000Z' participants: - id: 4 username: exercitationem_ut color: '#770bbd' position: 0 settings: null created_at: '2025-05-20T23:22:59.000000Z' updated_at: '2025-05-20T23:22:59.000000Z' deleted_at: null user: username: patricia09 uuid: 22d70923-5715-339d-a5a4-87ea3e7538fe name: 'Francisca Fritsch Jr.' created_at: '2025-05-20T23:22:59.000000Z' updated_at: '2025-05-20T23:22:59.000000Z' - id: 5 username: ullam_modi color: '#ef7476' position: 0 settings: null created_at: '2025-05-20T23:22:59.000000Z' updated_at: '2025-05-20T23:22:59.000000Z' deleted_at: null user: username: clyde19 uuid: 3d9a9386-3d45-35bc-8368-6494fd455339 name: 'Mrs. Beryl Ebert Sr.' created_at: '2025-05-20T23:22:59.000000Z' updated_at: '2025-05-20T23:22:59.000000Z' properties: type: type: string example: 'room[]' data: type: array example: - name: 'Untitled Room' is_public: true bg_file_path: //images/environment/bg-2.webp slug: ho6vihu passcode: magnam custom_slug: E147hs1 settings: chat: backgroundColor: 0 deleteAfter: 0 fadeAfter: 0 isDiceExpanded: false isDiceSorted: false isUsernameVisible: true isVisible: true textColor: 16777215 textSize: sm lighting: ambientColor: 16777215 ambientIntensity: 0.5 spotlightColor: 16777215 spotlightIntensity: 0.33 participant: defaultDiceTrayToGM: false physics: gravity: 9.82 throwSpeed: 30 roll: allowPlayerRollUpdates: false allowPlayerMoveDice: false autoClear: 10 defaultClickBehavior: reroll diceSize: 1 diceLimit: 25 diceTrayColor: 0 disableDiceOutline: false disableDiceShadows: false disableShakingSound: false pickUp: 1 updated_at: '2025-05-20T23:22:59.000000Z' created_at: '2025-05-20T23:22:59.000000Z' user: username: fwilliamson uuid: 134affba-ee9f-379b-9b00-734fd5410bf6 name: 'Wilfred Eichmann' created_at: '2025-05-20T23:22:59.000000Z' updated_at: '2025-05-20T23:22:59.000000Z' participants: - id: 2 username: blanditiis_occaecati color: '#e3fab4' position: 0 settings: null created_at: '2025-05-20T23:22:59.000000Z' updated_at: '2025-05-20T23:22:59.000000Z' deleted_at: null user: username: berneice.jacobs uuid: f6377a63-8f3b-3a5e-b66f-d9b83964375c name: 'Dr. Lue Johnson' created_at: '2025-05-20T23:22:59.000000Z' updated_at: '2025-05-20T23:22:59.000000Z' - id: 3 username: est_suscipit color: '#a3ef2c' position: 0 settings: null created_at: '2025-05-20T23:22:59.000000Z' updated_at: '2025-05-20T23:22:59.000000Z' deleted_at: null user: username: finn22 uuid: 68efaa4f-2ec3-3c96-ad06-4915b1315b7c name: 'Mr. Connor Gulgowski' created_at: '2025-05-20T23:22:59.000000Z' updated_at: '2025-05-20T23:22:59.000000Z' - name: 'Untitled Room' is_public: true bg_file_path: //images/environment/bg-3.webp slug: 28Sh00v passcode: impedit custom_slug: 7ou5kjZ settings: chat: backgroundColor: 0 deleteAfter: 0 fadeAfter: 0 isDiceExpanded: false isDiceSorted: false isUsernameVisible: true isVisible: true textColor: 16777215 textSize: sm lighting: ambientColor: 16777215 ambientIntensity: 0.5 spotlightColor: 16777215 spotlightIntensity: 0.33 participant: defaultDiceTrayToGM: false physics: gravity: 9.82 throwSpeed: 30 roll: allowPlayerRollUpdates: false allowPlayerMoveDice: false autoClear: 10 defaultClickBehavior: reroll diceSize: 1 diceLimit: 25 diceTrayColor: 0 disableDiceOutline: false disableDiceShadows: false disableShakingSound: false pickUp: 1 updated_at: '2025-05-20T23:22:59.000000Z' created_at: '2025-05-20T23:22:59.000000Z' user: username: raphael.wilderman uuid: dbd93e76-b462-37b7-9ec7-53001d347437 name: 'Miss Josefa Crist' created_at: '2025-05-20T23:22:59.000000Z' updated_at: '2025-05-20T23:22:59.000000Z' participants: - id: 4 username: exercitationem_ut color: '#770bbd' position: 0 settings: null created_at: '2025-05-20T23:22:59.000000Z' updated_at: '2025-05-20T23:22:59.000000Z' deleted_at: null user: username: patricia09 uuid: 22d70923-5715-339d-a5a4-87ea3e7538fe name: 'Francisca Fritsch Jr.' created_at: '2025-05-20T23:22:59.000000Z' updated_at: '2025-05-20T23:22:59.000000Z' - id: 5 username: ullam_modi color: '#ef7476' position: 0 settings: null created_at: '2025-05-20T23:22:59.000000Z' updated_at: '2025-05-20T23:22:59.000000Z' deleted_at: null user: username: clyde19 uuid: 3d9a9386-3d45-35bc-8368-6494fd455339 name: 'Mrs. Beryl Ebert Sr.' created_at: '2025-05-20T23:22:59.000000Z' updated_at: '2025-05-20T23:22:59.000000Z' items: type: object properties: name: type: string example: 'Untitled Room' is_public: type: boolean example: true bg_file_path: type: string example: //images/environment/bg-2.webp slug: type: string example: ho6vihu passcode: type: string example: magnam custom_slug: type: string example: E147hs1 settings: type: object properties: chat: type: object properties: backgroundColor: type: integer example: 0 deleteAfter: type: integer example: 0 fadeAfter: type: integer example: 0 isDiceExpanded: type: boolean example: false isDiceSorted: type: boolean example: false isUsernameVisible: type: boolean example: true isVisible: type: boolean example: true textColor: type: integer example: 16777215 textSize: type: string example: sm lighting: type: object properties: ambientColor: type: integer example: 16777215 ambientIntensity: type: number example: 0.5 spotlightColor: type: integer example: 16777215 spotlightIntensity: type: number example: 0.33 participant: type: object properties: defaultDiceTrayToGM: type: boolean example: false physics: type: object properties: gravity: type: number example: 9.82 throwSpeed: type: integer example: 30 roll: type: object properties: allowPlayerRollUpdates: type: boolean example: false allowPlayerMoveDice: type: boolean example: false autoClear: type: integer example: 10 defaultClickBehavior: type: string example: reroll diceSize: type: integer example: 1 diceLimit: type: integer example: 25 diceTrayColor: type: integer example: 0 disableDiceOutline: type: boolean example: false disableDiceShadows: type: boolean example: false disableShakingSound: type: boolean example: false pickUp: type: integer example: 1 updated_at: type: string example: '2025-05-20T23:22:59.000000Z' created_at: type: string example: '2025-05-20T23:22:59.000000Z' user: type: object properties: username: type: string example: fwilliamson uuid: type: string example: 134affba-ee9f-379b-9b00-734fd5410bf6 name: type: string example: 'Wilfred Eichmann' created_at: type: string example: '2025-05-20T23:22:59.000000Z' updated_at: type: string example: '2025-05-20T23:22:59.000000Z' participants: type: array example: - id: 2 username: blanditiis_occaecati color: '#e3fab4' position: 0 settings: null created_at: '2025-05-20T23:22:59.000000Z' updated_at: '2025-05-20T23:22:59.000000Z' deleted_at: null user: username: berneice.jacobs uuid: f6377a63-8f3b-3a5e-b66f-d9b83964375c name: 'Dr. Lue Johnson' created_at: '2025-05-20T23:22:59.000000Z' updated_at: '2025-05-20T23:22:59.000000Z' - id: 3 username: est_suscipit color: '#a3ef2c' position: 0 settings: null created_at: '2025-05-20T23:22:59.000000Z' updated_at: '2025-05-20T23:22:59.000000Z' deleted_at: null user: username: finn22 uuid: 68efaa4f-2ec3-3c96-ad06-4915b1315b7c name: 'Mr. Connor Gulgowski' created_at: '2025-05-20T23:22:59.000000Z' updated_at: '2025-05-20T23:22:59.000000Z' items: type: object properties: id: type: integer example: 2 username: type: string example: blanditiis_occaecati color: type: string example: '#e3fab4' position: type: integer example: 0 settings: type: string example: null created_at: type: string example: '2025-05-20T23:22:59.000000Z' updated_at: type: string example: '2025-05-20T23:22:59.000000Z' deleted_at: type: string example: null user: type: object properties: username: type: string example: berneice.jacobs uuid: type: string example: f6377a63-8f3b-3a5e-b66f-d9b83964375c name: type: string example: 'Dr. Lue Johnson' created_at: type: string example: '2025-05-20T23:22:59.000000Z' updated_at: type: string example: '2025-05-20T23:22:59.000000Z' tags: - Room post: summary: 'Create a Room' operationId: createARoom description: "Create a room and use the slug to perform actions in that room.\n\nIf `is_public` is set to `false`, the returned `passcode` will be required\nfor future requests to perform actions in this room.\n\nYou may optionally pass a valid `passcode` to generate your own code." parameters: - in: header name: Authorization description: '' example: 'Bearer {YOUR_AUTH_KEY}' schema: type: string responses: 201: description: '' content: application/json: schema: type: object example: data: name: 'Untitled Room' is_public: true bg_file_path: //images/environment/bg-3.webp slug: 18XbfY7 passcode: blanditiis custom_slug: nakcyWa settings: chat: backgroundColor: 0 deleteAfter: 0 fadeAfter: 0 isDiceExpanded: false isDiceSorted: false isUsernameVisible: true isVisible: true textColor: 16777215 textSize: sm lighting: ambientColor: 16777215 ambientIntensity: 0.5 spotlightColor: 16777215 spotlightIntensity: 0.33 participant: defaultDiceTrayToGM: false physics: gravity: 9.82 throwSpeed: 30 roll: allowPlayerRollUpdates: false allowPlayerMoveDice: false autoClear: 10 defaultClickBehavior: reroll diceSize: 1 diceLimit: 25 diceTrayColor: 0 disableDiceOutline: false disableDiceShadows: false disableShakingSound: false pickUp: 1 updated_at: '2025-05-20T23:22:59.000000Z' created_at: '2025-05-20T23:22:59.000000Z' user: username: spencer.mauricio uuid: ae04b29d-53bf-31d0-8eea-f309031019c8 name: 'Angela Nicolas' created_at: '2025-05-20T23:22:59.000000Z' updated_at: '2025-05-20T23:22:59.000000Z' participants: [] properties: data: type: object properties: name: type: string example: 'Untitled Room' is_public: type: boolean example: true bg_file_path: type: string example: //images/environment/bg-3.webp slug: type: string example: 18XbfY7 passcode: type: string example: blanditiis custom_slug: type: string example: nakcyWa settings: type: object properties: chat: type: object properties: backgroundColor: type: integer example: 0 deleteAfter: type: integer example: 0 fadeAfter: type: integer example: 0 isDiceExpanded: type: boolean example: false isDiceSorted: type: boolean example: false isUsernameVisible: type: boolean example: true isVisible: type: boolean example: true textColor: type: integer example: 16777215 textSize: type: string example: sm lighting: type: object properties: ambientColor: type: integer example: 16777215 ambientIntensity: type: number example: 0.5 spotlightColor: type: integer example: 16777215 spotlightIntensity: type: number example: 0.33 participant: type: object properties: defaultDiceTrayToGM: type: boolean example: false physics: type: object properties: gravity: type: number example: 9.82 throwSpeed: type: integer example: 30 roll: type: object properties: allowPlayerRollUpdates: type: boolean example: false allowPlayerMoveDice: type: boolean example: false autoClear: type: integer example: 10 defaultClickBehavior: type: string example: reroll diceSize: type: integer example: 1 diceLimit: type: integer example: 25 diceTrayColor: type: integer example: 0 disableDiceOutline: type: boolean example: false disableDiceShadows: type: boolean example: false disableShakingSound: type: boolean example: false pickUp: type: integer example: 1 updated_at: type: string example: '2025-05-20T23:22:59.000000Z' created_at: type: string example: '2025-05-20T23:22:59.000000Z' user: type: object properties: username: type: string example: spencer.mauricio uuid: type: string example: ae04b29d-53bf-31d0-8eea-f309031019c8 name: type: string example: 'Angela Nicolas' created_at: type: string example: '2025-05-20T23:22:59.000000Z' updated_at: type: string example: '2025-05-20T23:22:59.000000Z' participants: type: array example: [] tags: - Room requestBody: required: false content: application/json: schema: type: object properties: is_public: type: boolean description: 'Public or private' example: true name: type: string description: Name example: ipsum passcode: type: string description: 'Passcode required for private rooms.' example: null '/api/1.0/room/{room_slug}': get: summary: 'Get a Room' operationId: getARoom description: 'Get information about a room and active participants.' parameters: - in: query name: passcode description: 'Passcode required for private room' example: aperiam required: false schema: type: string description: 'Passcode required for private room' example: aperiam - in: header name: Authorization description: '' example: 'Bearer {YOUR_AUTH_KEY}' schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: data: name: 'Untitled Room' is_public: true bg_file_path: //images/environment/bg-3.webp slug: M7zcJKQ passcode: quo custom_slug: JU8wwhW settings: chat: backgroundColor: 0 deleteAfter: 0 fadeAfter: 0 isDiceExpanded: false isDiceSorted: false isUsernameVisible: true isVisible: true textColor: 16777215 textSize: sm lighting: ambientColor: 16777215 ambientIntensity: 0.5 spotlightColor: 16777215 spotlightIntensity: 0.33 participant: defaultDiceTrayToGM: false physics: gravity: 9.82 throwSpeed: 30 roll: allowPlayerRollUpdates: false allowPlayerMoveDice: false autoClear: 10 defaultClickBehavior: reroll diceSize: 1 diceLimit: 25 diceTrayColor: 0 disableDiceOutline: false disableDiceShadows: false disableShakingSound: false pickUp: 1 updated_at: '2025-05-20T23:22:59.000000Z' created_at: '2025-05-20T23:22:59.000000Z' user: username: zoe02 uuid: 44c6c52b-17a8-378f-9a05-f603c0948c23 name: 'Lenora Kirlin' created_at: '2025-05-20T23:22:59.000000Z' updated_at: '2025-05-20T23:22:59.000000Z' participants: [] properties: data: type: object properties: name: type: string example: 'Untitled Room' is_public: type: boolean example: true bg_file_path: type: string example: //images/environment/bg-3.webp slug: type: string example: M7zcJKQ passcode: type: string example: quo custom_slug: type: string example: JU8wwhW settings: type: object properties: chat: type: object properties: backgroundColor: type: integer example: 0 deleteAfter: type: integer example: 0 fadeAfter: type: integer example: 0 isDiceExpanded: type: boolean example: false isDiceSorted: type: boolean example: false isUsernameVisible: type: boolean example: true isVisible: type: boolean example: true textColor: type: integer example: 16777215 textSize: type: string example: sm lighting: type: object properties: ambientColor: type: integer example: 16777215 ambientIntensity: type: number example: 0.5 spotlightColor: type: integer example: 16777215 spotlightIntensity: type: number example: 0.33 participant: type: object properties: defaultDiceTrayToGM: type: boolean example: false physics: type: object properties: gravity: type: number example: 9.82 throwSpeed: type: integer example: 30 roll: type: object properties: allowPlayerRollUpdates: type: boolean example: false allowPlayerMoveDice: type: boolean example: false autoClear: type: integer example: 10 defaultClickBehavior: type: string example: reroll diceSize: type: integer example: 1 diceLimit: type: integer example: 25 diceTrayColor: type: integer example: 0 disableDiceOutline: type: boolean example: false disableDiceShadows: type: boolean example: false disableShakingSound: type: boolean example: false pickUp: type: integer example: 1 updated_at: type: string example: '2025-05-20T23:22:59.000000Z' created_at: type: string example: '2025-05-20T23:22:59.000000Z' user: type: object properties: username: type: string example: zoe02 uuid: type: string example: 44c6c52b-17a8-378f-9a05-f603c0948c23 name: type: string example: 'Lenora Kirlin' created_at: type: string example: '2025-05-20T23:22:59.000000Z' updated_at: type: string example: '2025-05-20T23:22:59.000000Z' participants: type: array example: [] tags: - Room patch: summary: 'Update a Room' operationId: updateARoom description: 'Update the name of a room' parameters: - in: header name: Authorization description: '' example: 'Bearer {YOUR_AUTH_KEY}' schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: data: name: 'Untitled Room' is_public: true bg_file_path: //images/environment/bg-5.webp slug: qTSLDl3 passcode: repudiandae custom_slug: S8qWE9R settings: chat: backgroundColor: 0 deleteAfter: 0 fadeAfter: 0 isDiceExpanded: false isDiceSorted: false isUsernameVisible: true isVisible: true textColor: 16777215 textSize: sm lighting: ambientColor: 16777215 ambientIntensity: 0.5 spotlightColor: 16777215 spotlightIntensity: 0.33 participant: defaultDiceTrayToGM: false physics: gravity: 9.82 throwSpeed: 30 roll: allowPlayerRollUpdates: false allowPlayerMoveDice: false autoClear: 10 defaultClickBehavior: reroll diceSize: 1 diceLimit: 25 diceTrayColor: 0 disableDiceOutline: false disableDiceShadows: false disableShakingSound: false pickUp: 1 updated_at: '2025-05-20T23:22:59.000000Z' created_at: '2025-05-20T23:22:59.000000Z' user: username: talon27 uuid: 85991e02-2e44-30e1-8cbf-e88102014fac name: 'Gail Abernathy' created_at: '2025-05-20T23:22:59.000000Z' updated_at: '2025-05-20T23:22:59.000000Z' participants: [] properties: data: type: object properties: name: type: string example: 'Untitled Room' is_public: type: boolean example: true bg_file_path: type: string example: //images/environment/bg-5.webp slug: type: string example: qTSLDl3 passcode: type: string example: repudiandae custom_slug: type: string example: S8qWE9R settings: type: object properties: chat: type: object properties: backgroundColor: type: integer example: 0 deleteAfter: type: integer example: 0 fadeAfter: type: integer example: 0 isDiceExpanded: type: boolean example: false isDiceSorted: type: boolean example: false isUsernameVisible: type: boolean example: true isVisible: type: boolean example: true textColor: type: integer example: 16777215 textSize: type: string example: sm lighting: type: object properties: ambientColor: type: integer example: 16777215 ambientIntensity: type: number example: 0.5 spotlightColor: type: integer example: 16777215 spotlightIntensity: type: number example: 0.33 participant: type: object properties: defaultDiceTrayToGM: type: boolean example: false physics: type: object properties: gravity: type: number example: 9.82 throwSpeed: type: integer example: 30 roll: type: object properties: allowPlayerRollUpdates: type: boolean example: false allowPlayerMoveDice: type: boolean example: false autoClear: type: integer example: 10 defaultClickBehavior: type: string example: reroll diceSize: type: integer example: 1 diceLimit: type: integer example: 25 diceTrayColor: type: integer example: 0 disableDiceOutline: type: boolean example: false disableDiceShadows: type: boolean example: false disableShakingSound: type: boolean example: false pickUp: type: integer example: 1 updated_at: type: string example: '2025-05-20T23:22:59.000000Z' created_at: type: string example: '2025-05-20T23:22:59.000000Z' user: type: object properties: username: type: string example: talon27 uuid: type: string example: 85991e02-2e44-30e1-8cbf-e88102014fac name: type: string example: 'Gail Abernathy' created_at: type: string example: '2025-05-20T23:22:59.000000Z' updated_at: type: string example: '2025-05-20T23:22:59.000000Z' participants: type: array example: [] tags: - Room requestBody: required: false content: multipart/form-data: schema: type: object properties: is_public: type: boolean description: 'Public or private' example: false name: type: string description: Name example: delectus passcode: type: boolean description: 'Passcode required for private rooms.' example: null bg_file_path: type: string format: binary description: 'Must be a file.' custom_slug: type: string description: 'Must not be greater than 32 characters.' example: nzqutombxjbfnpgpkovuld settings: type: string description: '' example: null delete: summary: 'Delete a Room' operationId: deleteARoom description: 'Delete a room you own.' parameters: - in: header name: Authorization description: '' example: 'Bearer {YOUR_AUTH_KEY}' schema: type: string responses: 204: description: '' tags: - Room parameters: - in: path name: room_slug description: 'The slug of the room.' example: j82tr4 required: true schema: type: string '/api/1.0/room/{room_slug}/roll': patch: summary: 'Update Room Rolls' operationId: updateRoomRolls description: 'Automatically pickup dice from the board or unhide dice to players for all rolls in a room and for the current player.' parameters: - in: header name: Authorization description: '' example: 'Bearer {YOUR_AUTH_KEY}' schema: type: string responses: 200: description: '' content: application/json: schema: type: object nullable: true tags: - Room requestBody: required: true content: application/json: schema: type: object properties: dice: type: object description: 'Partial dice roll.' example: is_hidden: true properties: is_visible: type: boolean description: '' example: false is_cleared: type: boolean description: 'Roll value cleared' example: true is_hidden: type: boolean description: 'Roll value hidden' example: false required: - dice parameters: - in: path name: room_slug description: 'The slug of the room.' example: 1 required: true schema: type: integer '/api/1.0/room/{room_slug}/participant': post: summary: 'Join a Room' operationId: joinARoom description: 'Join a room as a participant' parameters: - in: header name: Authorization description: '' example: 'Bearer {YOUR_AUTH_KEY}' schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: data: name: 'Untitled Room' is_public: true bg_file_path: //images/environment/bg-6.webp slug: '-Fe8Q_Z' passcode: nam custom_slug: 9L3RIP0 settings: chat: backgroundColor: 0 deleteAfter: 0 fadeAfter: 0 isDiceExpanded: false isDiceSorted: false isUsernameVisible: true isVisible: true textColor: 16777215 textSize: sm lighting: ambientColor: 16777215 ambientIntensity: 0.5 spotlightColor: 16777215 spotlightIntensity: 0.33 participant: defaultDiceTrayToGM: false physics: gravity: 9.82 throwSpeed: 30 roll: allowPlayerRollUpdates: false allowPlayerMoveDice: false autoClear: 10 defaultClickBehavior: reroll diceSize: 1 diceLimit: 25 diceTrayColor: 0 disableDiceOutline: false disableDiceShadows: false disableShakingSound: false pickUp: 1 updated_at: '2025-05-20T23:22:59.000000Z' created_at: '2025-05-20T23:22:59.000000Z' user: username: dsawayn uuid: 0dcf8ecd-1f18-35ab-acc6-9089db3f0bbc name: 'Norval Purdy I' created_at: '2025-05-20T23:22:59.000000Z' updated_at: '2025-05-20T23:22:59.000000Z' participants: [] properties: data: type: object properties: name: type: string example: 'Untitled Room' is_public: type: boolean example: true bg_file_path: type: string example: //images/environment/bg-6.webp slug: type: string example: '-Fe8Q_Z' passcode: type: string example: nam custom_slug: type: string example: 9L3RIP0 settings: type: object properties: chat: type: object properties: backgroundColor: type: integer example: 0 deleteAfter: type: integer example: 0 fadeAfter: type: integer example: 0 isDiceExpanded: type: boolean example: false isDiceSorted: type: boolean example: false isUsernameVisible: type: boolean example: true isVisible: type: boolean example: true textColor: type: integer example: 16777215 textSize: type: string example: sm lighting: type: object properties: ambientColor: type: integer example: 16777215 ambientIntensity: type: number example: 0.5 spotlightColor: type: integer example: 16777215 spotlightIntensity: type: number example: 0.33 participant: type: object properties: defaultDiceTrayToGM: type: boolean example: false physics: type: object properties: gravity: type: number example: 9.82 throwSpeed: type: integer example: 30 roll: type: object properties: allowPlayerRollUpdates: type: boolean example: false allowPlayerMoveDice: type: boolean example: false autoClear: type: integer example: 10 defaultClickBehavior: type: string example: reroll diceSize: type: integer example: 1 diceLimit: type: integer example: 25 diceTrayColor: type: integer example: 0 disableDiceOutline: type: boolean example: false disableDiceShadows: type: boolean example: false disableShakingSound: type: boolean example: false pickUp: type: integer example: 1 updated_at: type: string example: '2025-05-20T23:22:59.000000Z' created_at: type: string example: '2025-05-20T23:22:59.000000Z' user: type: object properties: username: type: string example: dsawayn uuid: type: string example: 0dcf8ecd-1f18-35ab-acc6-9089db3f0bbc name: type: string example: 'Norval Purdy I' created_at: type: string example: '2025-05-20T23:22:59.000000Z' updated_at: type: string example: '2025-05-20T23:22:59.000000Z' participants: type: array example: [] tags: - Room requestBody: required: false content: application/json: schema: type: object properties: passcode: type: string description: 'Passcode required for private room.' example: null parameters: - in: path name: room_slug description: 'The slug of the room.' example: j82tr4 required: true schema: type: string '/api/1.0/room/{room_slug}/participant/{id}': patch: summary: 'Update a Participant' operationId: updateAParticipant description: 'Update the username or color of the room participant.' parameters: - in: header name: Authorization description: '' example: 'Bearer {YOUR_AUTH_KEY}' schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: data: name: 'Untitled Room' is_public: true bg_file_path: //images/environment/bg-1.webp slug: aFuUZwT passcode: corrupti custom_slug: mkMF7sk settings: chat: backgroundColor: 0 deleteAfter: 0 fadeAfter: 0 isDiceExpanded: false isDiceSorted: false isUsernameVisible: true isVisible: true textColor: 16777215 textSize: sm lighting: ambientColor: 16777215 ambientIntensity: 0.5 spotlightColor: 16777215 spotlightIntensity: 0.33 participant: defaultDiceTrayToGM: false physics: gravity: 9.82 throwSpeed: 30 roll: allowPlayerRollUpdates: false allowPlayerMoveDice: false autoClear: 10 defaultClickBehavior: reroll diceSize: 1 diceLimit: 25 diceTrayColor: 0 disableDiceOutline: false disableDiceShadows: false disableShakingSound: false pickUp: 1 updated_at: '2025-05-20T23:22:59.000000Z' created_at: '2025-05-20T23:22:59.000000Z' user: username: drodriguez uuid: dc67ad3a-4409-3dde-baf8-cb967c32ed70 name: 'Kiana Christiansen' created_at: '2025-05-20T23:22:59.000000Z' updated_at: '2025-05-20T23:22:59.000000Z' participants: [] properties: data: type: object properties: name: type: string example: 'Untitled Room' is_public: type: boolean example: true bg_file_path: type: string example: //images/environment/bg-1.webp slug: type: string example: aFuUZwT passcode: type: string example: corrupti custom_slug: type: string example: mkMF7sk settings: type: object properties: chat: type: object properties: backgroundColor: type: integer example: 0 deleteAfter: type: integer example: 0 fadeAfter: type: integer example: 0 isDiceExpanded: type: boolean example: false isDiceSorted: type: boolean example: false isUsernameVisible: type: boolean example: true isVisible: type: boolean example: true textColor: type: integer example: 16777215 textSize: type: string example: sm lighting: type: object properties: ambientColor: type: integer example: 16777215 ambientIntensity: type: number example: 0.5 spotlightColor: type: integer example: 16777215 spotlightIntensity: type: number example: 0.33 participant: type: object properties: defaultDiceTrayToGM: type: boolean example: false physics: type: object properties: gravity: type: number example: 9.82 throwSpeed: type: integer example: 30 roll: type: object properties: allowPlayerRollUpdates: type: boolean example: false allowPlayerMoveDice: type: boolean example: false autoClear: type: integer example: 10 defaultClickBehavior: type: string example: reroll diceSize: type: integer example: 1 diceLimit: type: integer example: 25 diceTrayColor: type: integer example: 0 disableDiceOutline: type: boolean example: false disableDiceShadows: type: boolean example: false disableShakingSound: type: boolean example: false pickUp: type: integer example: 1 updated_at: type: string example: '2025-05-20T23:22:59.000000Z' created_at: type: string example: '2025-05-20T23:22:59.000000Z' user: type: object properties: username: type: string example: drodriguez uuid: type: string example: dc67ad3a-4409-3dde-baf8-cb967c32ed70 name: type: string example: 'Kiana Christiansen' created_at: type: string example: '2025-05-20T23:22:59.000000Z' updated_at: type: string example: '2025-05-20T23:22:59.000000Z' participants: type: array example: [] tags: - Room requestBody: required: false content: application/json: schema: type: object properties: username: type: string description: "Update a participant's username." example: 'Galstaff Sorcerer of Light' color: type: string description: "Update a participant's color." example: '#FF0000' settings: type: string description: '' example: null dice_tray: type: object description: "Save a participant's dice tray on the server" example: [] properties: [] passcode: type: string description: 'Passcode required for private room.' example: null delete: summary: 'Leave a Room' operationId: leaveARoom description: "Remove a participant from a room. Participants can choose to leave a room\nusing this endpoint. Room owners have permission to remove any participant." parameters: - in: header name: Authorization description: '' example: 'Bearer {YOUR_AUTH_KEY}' schema: type: string responses: 204: description: '' tags: - Room parameters: - in: path name: room_slug description: 'The slug of the room.' example: j82tr4 required: true schema: type: string - in: path name: id description: 'Participant ID.' example: 1 required: true schema: type: integer /api/1.0/roll: post: summary: 'Create a Roll' operationId: createARoll description: "Perform a dice roll and optionally send the result to a public or private room.\n\nDice roll values are calculated using the API but can optionally receive a\n`value` and/or `value_to_display` attribute to pass a predetermined value (i.e. when integrating with VTTs).\n\n**Operators**\nOperators allow one to manipulate the outcome of the dice roll. The syntax of operators is based on [Avrae](https://avrae.io/commands#roll) which\nimplements [d20 dice syntax](https://d20.readthedocs.io/en/latest/start.html#dice-syntax)." parameters: - in: header name: Authorization description: '' example: 'Bearer {YOUR_AUTH_KEY}' schema: type: string responses: 201: description: '' content: application/json: schema: type: object nullable: true tags: - Roll requestBody: required: true content: application/json: schema: type: object properties: dice: type: array description: 'List of dice rolls.' example: - type: d20 theme: dddice-red - type: d20 theme: dddice-red items: type: object properties: is_hidden: type: boolean description: '' example: true id: type: string description: '' example: est type: type: string description: 'Type of dice. Standard types are d20, d12, d10, d10x, d8, d6, and d4. Some themes have custom types and should be looked up in the available_themes.' example: d20 theme: type: string description: 'Theme ID.' example: dddice-bees label: type: string description: 'A human-readable string to label this dice of the roll with some meaning (ex fire damage vs slashing damage).' example: null value: type: number description: 'Dice value. If no value is provided, dddice will generate a value using our balanced random number generator.' example: null value_to_display: type: string|object description: 'This can be used to replace the numeric value. This is useful in cases where a d20 might contain letters instead of numbers or if a player is speaking in tongues or hieroglyphs.' example: null meta: type: object description: 'Optional data that is not critical to the functionality of a die roll but could be useful to store for display or informational purposes.' example: null properties: [] required: - type - theme external_id: type: Used description: 'to associate rolls in dddice with 3rd party integrated systems like VTTs.' example: null operator: type: object description: 'Optional operators to manipulate the final value of the dice.' example: null properties: k: type: string description: 'Keep all matched values. An integer value - for example, "6" - will keep all rolls of that value and sum them. l will keep the lowest n, e.g. "l2" will keep the lowest two. h will keep highest n, for example, "h3" will keep highest 3.' example: null d: type: string description: 'Drop all matched values. An integer value - for example, "6" - will drop all rolls of that value and sum them. l will drop the lowest n, e.g. "l2" will drop the lowest two. h will drop highest n, for example, "h3" will drop highest 3.' example: null '*': type: integer description: 'Multiply the result by an integer.' example: null /: type: integer description: 'Divide the result by an integer.' example: null round: type: integer description: 'Round the results, valid values are "up", "down", "nearest".' example: null room: type: string description: 'Room slug.' example: j82tr4 whisper: type: array description: 'Participant IDs to whisper this roll to. Only participants specified will see this roll.' example: null items: type: number label: type: string description: 'Optional label for this roll.' example: "Longbow damage with Hunter's Mark" required: - dice get: summary: 'List rolls' operationId: listRolls description: 'Fetch rolls from a given room' parameters: - in: query name: room description: 'Room Slug.' example: j82tr4 required: true schema: type: string description: 'Room Slug.' example: j82tr4 - in: header name: Authorization description: '' example: 'Bearer {YOUR_AUTH_KEY}' schema: type: string responses: 200: description: '' content: application/json: schema: type: object nullable: true tags: - Roll patch: summary: 'Bulk Update Rolls' operationId: bulkUpdateRolls description: "Pickup dice from the board or unhide dice to players for multiple rolls.\n\nAccepts an array of objects with the same parameters as `PATCH /api/1.0/roll/{id}`." parameters: - in: header name: Authorization description: '' example: 'Bearer {YOUR_AUTH_KEY}' schema: type: string responses: 200: description: '' content: application/json: schema: type: object nullable: true tags: - Roll requestBody: required: true content: application/json: schema: type: object properties: rolls: type: array description: 'List of rolls.' example: - uuid: '1' dice: - uuid: '1' is_hidden: true items: type: object properties: uuid: type: required description: 'Roll ID' example: 6651824e-07d6-3cfe-b443-404bdf1a1c0c dice: type: array description: 'List of partial dice rolls.' example: - uuid: '1' is_hidden: true items: type: object properties: is_hidden: type: boolean description: 'Roll value hidden' example: false is_cleared: type: boolean description: 'Roll value cleared' example: false required: - dice required: - rolls delete: summary: 'Delete rolls' operationId: deleteRolls description: 'Delete rolls from a given room' parameters: - in: header name: Authorization description: '' example: 'Bearer {YOUR_AUTH_KEY}' schema: type: string responses: 204: description: '' tags: - Roll '/api/1.0/roll/{uuid}': get: summary: 'Get a Roll' operationId: getARoll description: 'Fetch roll information including the user and optional room information' parameters: - in: header name: Authorization description: '' example: 'Bearer {YOUR_AUTH_KEY}' schema: type: string responses: 200: description: '' content: application/json: schema: type: object nullable: true tags: - Roll patch: summary: 'Update a Roll' operationId: updateARoll description: 'Pickup dice from the board or unhide dice to players' parameters: - in: header name: Authorization description: '' example: 'Bearer {YOUR_AUTH_KEY}' schema: type: string responses: 200: description: '' content: application/json: schema: type: object nullable: true tags: - Roll requestBody: required: true content: application/json: schema: type: object properties: label: type: string description: '' example: animi dice: type: array description: 'List of partial dice rolls.' example: - uuid: '1' is_hidden: true items: type: object properties: uuid: type: string description: '' example: ecb90219-a018-3d02-91af-7cee9e76dbc4 is_cleared: type: boolean description: 'Roll value cleared' example: true is_dropped: type: boolean description: '' example: true is_hidden: type: boolean description: 'Roll value hidden' example: false meta: type: object description: 'Optional data that is not critical to the functionality of a die roll but could be useful to store for display or informational purposes.' example: [] properties: [] required: - dice parameters: - in: path name: uuid description: 'Roll ID.' example: 40a094cb-ec1c-3402-ba0c-d6e8024d5996 required: true schema: type: string /api/1.0/share: post: summary: 'Create Share Request' operationId: createShareRequest description: 'Create a share request for a given theme.' parameters: - in: header name: Authorization description: '' example: 'Bearer {YOUR_AUTH_KEY}' schema: type: string responses: 201: description: '' content: application/json: schema: type: object example: data: limit: 5 expires_at: '2025-05-20T23:22:59.000000Z' uuid: 9729b5ce-81d4-386a-8de4-b9a4841069b7 updated_at: '2025-05-20T23:22:59.000000Z' created_at: '2025-05-20T23:22:59.000000Z' user: username: colin.steuber uuid: b6dc00a0-b8c6-36a4-a979-05f0ce1ee14c name: 'Ms. Jade Keebler' created_at: '2025-05-20T23:22:59.000000Z' updated_at: '2025-05-20T23:22:59.000000Z' theme: slug: consequuntur-consequuntur-similique is_available: true is_extendable: true is_discoverable: true name: Mrs. description: 'Error quisquam ut dolorem mollitia eaque quam labore. Debitis est ullam exercitationem et cum. Adipisci sint libero eligendi excepturi.' form_state: null deleted_at: null created_at: '2025-05-20T23:22:59.000000Z' updated_at: '2025-05-20T23:22:59.000000Z' properties: data: type: object properties: limit: type: integer example: 5 expires_at: type: string example: '2025-05-20T23:22:59.000000Z' uuid: type: string example: 9729b5ce-81d4-386a-8de4-b9a4841069b7 updated_at: type: string example: '2025-05-20T23:22:59.000000Z' created_at: type: string example: '2025-05-20T23:22:59.000000Z' user: type: object properties: username: type: string example: colin.steuber uuid: type: string example: b6dc00a0-b8c6-36a4-a979-05f0ce1ee14c name: type: string example: 'Ms. Jade Keebler' created_at: type: string example: '2025-05-20T23:22:59.000000Z' updated_at: type: string example: '2025-05-20T23:22:59.000000Z' theme: type: object properties: slug: type: string example: consequuntur-consequuntur-similique is_available: type: boolean example: true is_extendable: type: boolean example: true is_discoverable: type: boolean example: true name: type: string example: Mrs. description: type: string example: 'Error quisquam ut dolorem mollitia eaque quam labore. Debitis est ullam exercitationem et cum. Adipisci sint libero eligendi excepturi.' form_state: type: string example: null deleted_at: type: string example: null created_at: type: string example: '2025-05-20T23:22:59.000000Z' updated_at: type: string example: '2025-05-20T23:22:59.000000Z' tags: - 'Share Dice' requestBody: required: true content: application/json: schema: type: object properties: slug: type: string description: 'Theme slug.' example: dddice-bees limit: type: integer description: 'Number of times this share request can be accepted' example: 12 expires_at: type: string description: 'Expiration date or datetime' example: omnis required: - slug '/api/1.0/share/{id}': post: summary: 'Accept Share Request' operationId: acceptShareRequest description: "Accept a user's share request which will add the specified theme to your **Digital Dice Box**.\n\nYou can retrieve and modify this theme from your **Digitial Dice Box** by using the [DiceBox](#dice-box) endpoints." parameters: - in: header name: Authorization description: '' example: 'Bearer {YOUR_AUTH_KEY}' schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: data: limit: 5 expires_at: '2025-05-20T23:22:59.000000Z' uuid: 1f9a6c1f-fdfa-373e-9798-b0789e6b9ad7 updated_at: '2025-05-20T23:22:59.000000Z' created_at: '2025-05-20T23:22:59.000000Z' user: username: mwalsh uuid: ea739b4e-726e-38e3-9568-f28cbd9c3180 name: 'Johan Gusikowski' created_at: '2025-05-20T23:22:59.000000Z' updated_at: '2025-05-20T23:22:59.000000Z' theme: slug: est-veritatis-eaque is_available: true is_extendable: true is_discoverable: true name: Mr. description: 'Magnam corporis voluptatum ut harum eum. Quaerat animi animi architecto harum quidem dolores optio. Ea rerum cumque eos voluptatem tempora aliquam.' form_state: null deleted_at: null created_at: '2025-05-20T23:22:59.000000Z' updated_at: '2025-05-20T23:22:59.000000Z' properties: data: type: object properties: limit: type: integer example: 5 expires_at: type: string example: '2025-05-20T23:22:59.000000Z' uuid: type: string example: 1f9a6c1f-fdfa-373e-9798-b0789e6b9ad7 updated_at: type: string example: '2025-05-20T23:22:59.000000Z' created_at: type: string example: '2025-05-20T23:22:59.000000Z' user: type: object properties: username: type: string example: mwalsh uuid: type: string example: ea739b4e-726e-38e3-9568-f28cbd9c3180 name: type: string example: 'Johan Gusikowski' created_at: type: string example: '2025-05-20T23:22:59.000000Z' updated_at: type: string example: '2025-05-20T23:22:59.000000Z' theme: type: object properties: slug: type: string example: est-veritatis-eaque is_available: type: boolean example: true is_extendable: type: boolean example: true is_discoverable: type: boolean example: true name: type: string example: Mr. description: type: string example: 'Magnam corporis voluptatum ut harum eum. Quaerat animi animi architecto harum quidem dolores optio. Ea rerum cumque eos voluptatem tempora aliquam.' form_state: type: string example: null deleted_at: type: string example: null created_at: type: string example: '2025-05-20T23:22:59.000000Z' updated_at: type: string example: '2025-05-20T23:22:59.000000Z' tags: - 'Share Dice' parameters: - in: path name: id description: 'The ID of the share request' example: nam required: true schema: type: string /api/1.0/user: get: summary: 'Get Authenticated User' operationId: getAuthenticatedUser description: 'Get the current authenticated user.' parameters: - in: header name: Authorization description: '' example: 'Bearer {YOUR_AUTH_KEY}' schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: type: user data: name: 'Dr. Arnold Prohaska DVM' username: roxanne.jacobi uuid: 4e6f7062-7003-3ce6-8eca-afa03a57216c updated_at: '2025-05-20T23:23:00.000000Z' created_at: '2025-05-20T23:23:00.000000Z' subscription: false is_merchant: false is_registered: false properties: type: type: string example: user data: type: object properties: name: type: string example: 'Dr. Arnold Prohaska DVM' username: type: string example: roxanne.jacobi uuid: type: string example: 4e6f7062-7003-3ce6-8eca-afa03a57216c updated_at: type: string example: '2025-05-20T23:23:00.000000Z' created_at: type: string example: '2025-05-20T23:23:00.000000Z' subscription: type: boolean example: false is_merchant: type: boolean example: false is_registered: type: boolean example: false tags: - User post: summary: 'Create Guest User' operationId: createGuestUser description: "Create a guest user to communicate with other API endpoints. Returns a token that can be used to fetch a user.\n\nThis route is rate-limited to 3 accounts/per minute per IP." parameters: [] responses: 201: description: '' content: application/json: schema: type: object example: type: user data: name: 'Malvina Rippin' username: fmaggio uuid: 1d0e9fcd-d563-3d98-b2c1-2cb2caacd449 updated_at: '2025-05-20T23:23:00.000000Z' created_at: '2025-05-20T23:23:00.000000Z' subscription: false is_merchant: false is_registered: false properties: type: type: string example: user data: type: object properties: name: type: string example: 'Malvina Rippin' username: type: string example: fmaggio uuid: type: string example: 1d0e9fcd-d563-3d98-b2c1-2cb2caacd449 updated_at: type: string example: '2025-05-20T23:23:00.000000Z' created_at: type: string example: '2025-05-20T23:23:00.000000Z' subscription: type: boolean example: false is_merchant: type: boolean example: false is_registered: type: boolean example: false tags: - User security: [] /api/1.0/user/token: post: summary: 'Create API Token' operationId: createAPIToken description: 'Returns a new API token for the authenticated user.' parameters: - in: header name: Authorization description: '' example: 'Bearer {YOUR_AUTH_KEY}' schema: type: string responses: 201: description: '' content: application/json: schema: type: object example: type: token data: '' properties: type: type: string example: token data: type: string example: '' tags: - User requestBody: required: false content: application/json: schema: type: object properties: name: type: string description: '' example: ut '/api/1.0/user/token/{token}': delete: summary: 'Delete API Key' operationId: deleteAPIKey description: '' parameters: - in: header name: Authorization description: '' example: 'Bearer {YOUR_AUTH_KEY}' schema: type: string responses: 204: description: '' tags: - User parameters: - in: path name: token description: Token example: autem required: true schema: type: string /api/1.0/dice-box: get: summary: 'List Dice Box Collection' operationId: listDiceBoxCollection description: 'Fetch a list of all dice in your **Digital Dice Box**.' parameters: - in: query name: filter description: 'Filter themes by name' example: aut required: false schema: type: string description: 'Filter themes by name' example: aut - in: query name: ids description: 'Comma seperated list of themes IDs to get' example: eius required: false schema: type: string description: 'Comma seperated list of themes IDs to get' example: eius - in: header name: Authorization description: '' example: 'Bearer {YOUR_AUTH_KEY}' schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: type: 'theme[]' data: - meshes: d4: /mesh/d04.fbx d6: /mesh/d06.fbx d8: /mesh/d08.fbx d10: /mesh/d10.fbx d10x: /mesh/d10.fbx d12: /mesh/d12.fbx d20: /mesh/d20.fbx available_dice: - d4 - d6 - d8 - d10 - d10x - d12 - d20 physics: inertia: d4: 5 d6: 12 d8: 10 d10: 9 d10x: 9 d12: 8 d20: 6 weight: d4: 300 d6: 300 d8: 340 d10: 350 d10x: 350 d12: 350 d20: 400 sizes: d4: 1 d6: 1 d8: 1 d10: 1 d10x: 1 d12: 1 d20: 1 sounds: - src: /sounds/roll-1.mp3 'on': die.collide - src: /sounds/roll-2.mp3 'on': die.collide - src: /sounds/roll-3.mp3 'on': die.collide - src: /sounds/roll-loading-sm.mp3 'on': roll.loading value: 2 - src: /sounds/roll-loading-lg.mp3 'on': roll.loading value: '>=3' uniforms: number: type: color value: b: 0 g: 0.424 r: 0.463 diffuse: type: color value: b: 0 g: 0.929 r: 1 values: d4: - 1 - 2 - 3 - 4 d6: - 1 - 2 - 3 - 4 - 5 - 6 d8: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 d10: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 d12: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 d20: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - 15 - 16 - 17 - 18 - 19 - 20 d10x: - 10 - 20 - 30 - 40 - 50 - 60 - 70 - 80 - 90 - 0 id: similique-illum-autem name: Prof. label: color: '#000000' background_color: '#e3d12d' version: 1.0.0 textures: - src: d4: u_numberMap.png d6: u_numberMap.png d8: u_numberMap.png d10: u_numberMap.png d12: u_numberMap.png d20: u_numberMap.png d10x: u_numberMap_d10x.png binding: u_numberMap api_version: '1.0' description: 'Est minus excepturi iste ut reprehenderit quaerat. Sed quasi velit ut voluptas. Aliquid amet repudiandae occaecati quisquam est consequatur optio iure. Aliquid necessitatibus optio in assumenda totam possimus.' user: username: mueller.eileen uuid: 2089db1f-b858-37f7-ac5d-00eb92c13395 name: "Leonor O'Conner MD" created_at: '2025-05-20T23:22:59.000000Z' updated_at: '2025-05-20T23:22:59.000000Z' subscription: false is_merchant: false is_registered: false created_at: '2025-05-20T23:22:59.000000Z' updated_at: '2025-05-20T23:22:59.000000Z' - meshes: d4: /mesh/d04.fbx d6: /mesh/d06.fbx d8: /mesh/d08.fbx d10: /mesh/d10.fbx d10x: /mesh/d10.fbx d12: /mesh/d12.fbx d20: /mesh/d20.fbx available_dice: - d4 - d6 - d8 - d10 - d10x - d12 - d20 physics: inertia: d4: 5 d6: 12 d8: 10 d10: 9 d10x: 9 d12: 8 d20: 6 weight: d4: 300 d6: 300 d8: 340 d10: 350 d10x: 350 d12: 350 d20: 400 sizes: d4: 1 d6: 1 d8: 1 d10: 1 d10x: 1 d12: 1 d20: 1 sounds: - src: /sounds/roll-1.mp3 'on': die.collide - src: /sounds/roll-2.mp3 'on': die.collide - src: /sounds/roll-3.mp3 'on': die.collide - src: /sounds/roll-loading-sm.mp3 'on': roll.loading value: 2 - src: /sounds/roll-loading-lg.mp3 'on': roll.loading value: '>=3' uniforms: number: type: color value: b: 0 g: 0.424 r: 0.463 diffuse: type: color value: b: 0 g: 0.929 r: 1 values: d4: - 1 - 2 - 3 - 4 d6: - 1 - 2 - 3 - 4 - 5 - 6 d8: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 d10: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 d12: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 d20: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - 15 - 16 - 17 - 18 - 19 - 20 d10x: - 10 - 20 - 30 - 40 - 50 - 60 - 70 - 80 - 90 - 0 id: magnam-quis-labore name: Dr. label: color: '#000000' background_color: '#e3d12d' version: 1.0.0 textures: - src: d4: u_numberMap.png d6: u_numberMap.png d8: u_numberMap.png d10: u_numberMap.png d12: u_numberMap.png d20: u_numberMap.png d10x: u_numberMap_d10x.png binding: u_numberMap api_version: '1.0' description: 'Mollitia cumque mollitia mollitia ea culpa vel. Accusantium sint veritatis vel libero et et quo. Qui labore eveniet itaque iusto necessitatibus impedit.' user: username: jett.kris uuid: 908d7643-e51a-3a80-b2ab-27e9cbf45b8a name: 'Pinkie Goodwin PhD' created_at: '2025-05-20T23:22:59.000000Z' updated_at: '2025-05-20T23:22:59.000000Z' subscription: false is_merchant: false is_registered: false created_at: '2025-05-20T23:22:59.000000Z' updated_at: '2025-05-20T23:22:59.000000Z' properties: type: type: string example: 'theme[]' data: type: array example: - meshes: d4: /mesh/d04.fbx d6: /mesh/d06.fbx d8: /mesh/d08.fbx d10: /mesh/d10.fbx d10x: /mesh/d10.fbx d12: /mesh/d12.fbx d20: /mesh/d20.fbx available_dice: - d4 - d6 - d8 - d10 - d10x - d12 - d20 physics: inertia: d4: 5 d6: 12 d8: 10 d10: 9 d10x: 9 d12: 8 d20: 6 weight: d4: 300 d6: 300 d8: 340 d10: 350 d10x: 350 d12: 350 d20: 400 sizes: d4: 1 d6: 1 d8: 1 d10: 1 d10x: 1 d12: 1 d20: 1 sounds: - src: /sounds/roll-1.mp3 'on': die.collide - src: /sounds/roll-2.mp3 'on': die.collide - src: /sounds/roll-3.mp3 'on': die.collide - src: /sounds/roll-loading-sm.mp3 'on': roll.loading value: 2 - src: /sounds/roll-loading-lg.mp3 'on': roll.loading value: '>=3' uniforms: number: type: color value: b: 0 g: 0.424 r: 0.463 diffuse: type: color value: b: 0 g: 0.929 r: 1 values: d4: - 1 - 2 - 3 - 4 d6: - 1 - 2 - 3 - 4 - 5 - 6 d8: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 d10: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 d12: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 d20: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - 15 - 16 - 17 - 18 - 19 - 20 d10x: - 10 - 20 - 30 - 40 - 50 - 60 - 70 - 80 - 90 - 0 id: similique-illum-autem name: Prof. label: color: '#000000' background_color: '#e3d12d' version: 1.0.0 textures: - src: d4: u_numberMap.png d6: u_numberMap.png d8: u_numberMap.png d10: u_numberMap.png d12: u_numberMap.png d20: u_numberMap.png d10x: u_numberMap_d10x.png binding: u_numberMap api_version: '1.0' description: 'Est minus excepturi iste ut reprehenderit quaerat. Sed quasi velit ut voluptas. Aliquid amet repudiandae occaecati quisquam est consequatur optio iure. Aliquid necessitatibus optio in assumenda totam possimus.' user: username: mueller.eileen uuid: 2089db1f-b858-37f7-ac5d-00eb92c13395 name: "Leonor O'Conner MD" created_at: '2025-05-20T23:22:59.000000Z' updated_at: '2025-05-20T23:22:59.000000Z' subscription: false is_merchant: false is_registered: false created_at: '2025-05-20T23:22:59.000000Z' updated_at: '2025-05-20T23:22:59.000000Z' - meshes: d4: /mesh/d04.fbx d6: /mesh/d06.fbx d8: /mesh/d08.fbx d10: /mesh/d10.fbx d10x: /mesh/d10.fbx d12: /mesh/d12.fbx d20: /mesh/d20.fbx available_dice: - d4 - d6 - d8 - d10 - d10x - d12 - d20 physics: inertia: d4: 5 d6: 12 d8: 10 d10: 9 d10x: 9 d12: 8 d20: 6 weight: d4: 300 d6: 300 d8: 340 d10: 350 d10x: 350 d12: 350 d20: 400 sizes: d4: 1 d6: 1 d8: 1 d10: 1 d10x: 1 d12: 1 d20: 1 sounds: - src: /sounds/roll-1.mp3 'on': die.collide - src: /sounds/roll-2.mp3 'on': die.collide - src: /sounds/roll-3.mp3 'on': die.collide - src: /sounds/roll-loading-sm.mp3 'on': roll.loading value: 2 - src: /sounds/roll-loading-lg.mp3 'on': roll.loading value: '>=3' uniforms: number: type: color value: b: 0 g: 0.424 r: 0.463 diffuse: type: color value: b: 0 g: 0.929 r: 1 values: d4: - 1 - 2 - 3 - 4 d6: - 1 - 2 - 3 - 4 - 5 - 6 d8: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 d10: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 d12: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 d20: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - 15 - 16 - 17 - 18 - 19 - 20 d10x: - 10 - 20 - 30 - 40 - 50 - 60 - 70 - 80 - 90 - 0 id: magnam-quis-labore name: Dr. label: color: '#000000' background_color: '#e3d12d' version: 1.0.0 textures: - src: d4: u_numberMap.png d6: u_numberMap.png d8: u_numberMap.png d10: u_numberMap.png d12: u_numberMap.png d20: u_numberMap.png d10x: u_numberMap_d10x.png binding: u_numberMap api_version: '1.0' description: 'Mollitia cumque mollitia mollitia ea culpa vel. Accusantium sint veritatis vel libero et et quo. Qui labore eveniet itaque iusto necessitatibus impedit.' user: username: jett.kris uuid: 908d7643-e51a-3a80-b2ab-27e9cbf45b8a name: 'Pinkie Goodwin PhD' created_at: '2025-05-20T23:22:59.000000Z' updated_at: '2025-05-20T23:22:59.000000Z' subscription: false is_merchant: false is_registered: false created_at: '2025-05-20T23:22:59.000000Z' updated_at: '2025-05-20T23:22:59.000000Z' items: type: object properties: meshes: type: object properties: d4: type: string example: /mesh/d04.fbx d6: type: string example: /mesh/d06.fbx d8: type: string example: /mesh/d08.fbx d10: type: string example: /mesh/d10.fbx d10x: type: string example: /mesh/d10.fbx d12: type: string example: /mesh/d12.fbx d20: type: string example: /mesh/d20.fbx available_dice: type: array example: - d4 - d6 - d8 - d10 - d10x - d12 - d20 items: type: string physics: type: object properties: inertia: type: object properties: d4: type: integer example: 5 d6: type: integer example: 12 d8: type: integer example: 10 d10: type: integer example: 9 d10x: type: integer example: 9 d12: type: integer example: 8 d20: type: integer example: 6 weight: type: object properties: d4: type: integer example: 300 d6: type: integer example: 300 d8: type: integer example: 340 d10: type: integer example: 350 d10x: type: integer example: 350 d12: type: integer example: 350 d20: type: integer example: 400 sizes: type: object properties: d4: type: integer example: 1 d6: type: integer example: 1 d8: type: integer example: 1 d10: type: integer example: 1 d10x: type: integer example: 1 d12: type: integer example: 1 d20: type: integer example: 1 sounds: type: array example: - src: /sounds/roll-1.mp3 'on': die.collide - src: /sounds/roll-2.mp3 'on': die.collide - src: /sounds/roll-3.mp3 'on': die.collide - src: /sounds/roll-loading-sm.mp3 'on': roll.loading value: 2 - src: /sounds/roll-loading-lg.mp3 'on': roll.loading value: '>=3' items: type: object properties: src: type: string example: /sounds/roll-1.mp3 'on': type: string example: die.collide uniforms: type: object properties: number: type: object properties: type: type: string example: color value: type: object properties: b: type: integer example: 0 g: type: number example: 0.424 r: type: number example: 0.463 diffuse: type: object properties: type: type: string example: color value: type: object properties: b: type: integer example: 0 g: type: number example: 0.929 r: type: integer example: 1 values: type: object properties: d4: type: array example: - 1 - 2 - 3 - 4 items: type: integer d6: type: array example: - 1 - 2 - 3 - 4 - 5 - 6 items: type: integer d8: type: array example: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 items: type: integer d10: type: array example: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 items: type: integer d12: type: array example: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 items: type: integer d20: type: array example: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - 15 - 16 - 17 - 18 - 19 - 20 items: type: integer d10x: type: array example: - 10 - 20 - 30 - 40 - 50 - 60 - 70 - 80 - 90 - 0 items: type: integer id: type: string example: similique-illum-autem name: type: string example: Prof. label: type: object properties: color: type: string example: '#000000' background_color: type: string example: '#e3d12d' version: type: string example: 1.0.0 textures: type: array example: - src: d4: u_numberMap.png d6: u_numberMap.png d8: u_numberMap.png d10: u_numberMap.png d12: u_numberMap.png d20: u_numberMap.png d10x: u_numberMap_d10x.png binding: u_numberMap items: type: object properties: src: type: object properties: d4: type: string example: u_numberMap.png d6: type: string example: u_numberMap.png d8: type: string example: u_numberMap.png d10: type: string example: u_numberMap.png d12: type: string example: u_numberMap.png d20: type: string example: u_numberMap.png d10x: type: string example: u_numberMap_d10x.png binding: type: string example: u_numberMap api_version: type: string example: '1.0' description: type: string example: 'Est minus excepturi iste ut reprehenderit quaerat. Sed quasi velit ut voluptas. Aliquid amet repudiandae occaecati quisquam est consequatur optio iure. Aliquid necessitatibus optio in assumenda totam possimus.' user: type: object properties: username: type: string example: mueller.eileen uuid: type: string example: 2089db1f-b858-37f7-ac5d-00eb92c13395 name: type: string example: "Leonor O'Conner MD" created_at: type: string example: '2025-05-20T23:22:59.000000Z' updated_at: type: string example: '2025-05-20T23:22:59.000000Z' subscription: type: boolean example: false is_merchant: type: boolean example: false is_registered: type: boolean example: false created_at: type: string example: '2025-05-20T23:22:59.000000Z' updated_at: type: string example: '2025-05-20T23:22:59.000000Z' tags: - 'Dice Box' requestBody: required: false content: application/json: schema: type: object properties: limit: type: number description: '' example: 26781.51653 filter: type: string description: '' example: non post: summary: 'Add Theme to Dice Box' operationId: addThemeToDiceBox description: 'Add a theme to your **Digital Dice Box**.' parameters: - in: header name: Authorization description: '' example: 'Bearer {YOUR_AUTH_KEY}' schema: type: string responses: 201: description: '' content: application/json: schema: type: object example: data: meshes: d4: /mesh/d04.fbx d6: /mesh/d06.fbx d8: /mesh/d08.fbx d10: /mesh/d10.fbx d10x: /mesh/d10.fbx d12: /mesh/d12.fbx d20: /mesh/d20.fbx available_dice: - d4 - d6 - d8 - d10 - d10x - d12 - d20 physics: inertia: d4: 5 d6: 12 d8: 10 d10: 9 d10x: 9 d12: 8 d20: 6 weight: d4: 300 d6: 300 d8: 340 d10: 350 d10x: 350 d12: 350 d20: 400 sizes: d4: 1 d6: 1 d8: 1 d10: 1 d10x: 1 d12: 1 d20: 1 sounds: - src: /sounds/roll-1.mp3 'on': die.collide - src: /sounds/roll-2.mp3 'on': die.collide - src: /sounds/roll-3.mp3 'on': die.collide - src: /sounds/roll-loading-sm.mp3 'on': roll.loading value: 2 - src: /sounds/roll-loading-lg.mp3 'on': roll.loading value: '>=3' uniforms: number: type: color value: b: 0 g: 0.424 r: 0.463 diffuse: type: color value: b: 0 g: 0.929 r: 1 values: d4: - 1 - 2 - 3 - 4 d6: - 1 - 2 - 3 - 4 - 5 - 6 d8: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 d10: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 d12: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 d20: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - 15 - 16 - 17 - 18 - 19 - 20 d10x: - 10 - 20 - 30 - 40 - 50 - 60 - 70 - 80 - 90 - 0 id: necessitatibus-neque-pariatur name: Prof. label: color: '#000000' background_color: '#e3d12d' version: 1.0.0 textures: - src: d4: u_numberMap.png d6: u_numberMap.png d8: u_numberMap.png d10: u_numberMap.png d12: u_numberMap.png d20: u_numberMap.png d10x: u_numberMap_d10x.png binding: u_numberMap api_version: '1.0' description: 'Qui quia laudantium vel consequuntur quasi labore ex molestias. Expedita commodi id quo vel. Excepturi accusamus perspiciatis ullam veniam. Quis quam ullam quidem qui. Nulla ullam earum est aut quasi fugiat iste.' user: username: keeling.rollin uuid: 021602e1-ae37-350f-84ef-78720a4d13c9 name: 'Wava Pollich' created_at: '2025-05-20T23:22:59.000000Z' updated_at: '2025-05-20T23:22:59.000000Z' subscription: false is_merchant: false is_registered: false created_at: '2025-05-20T23:22:59.000000Z' updated_at: '2025-05-20T23:22:59.000000Z' properties: data: type: object properties: meshes: type: object properties: d4: type: string example: /mesh/d04.fbx d6: type: string example: /mesh/d06.fbx d8: type: string example: /mesh/d08.fbx d10: type: string example: /mesh/d10.fbx d10x: type: string example: /mesh/d10.fbx d12: type: string example: /mesh/d12.fbx d20: type: string example: /mesh/d20.fbx available_dice: type: array example: - d4 - d6 - d8 - d10 - d10x - d12 - d20 items: type: string physics: type: object properties: inertia: type: object properties: d4: type: integer example: 5 d6: type: integer example: 12 d8: type: integer example: 10 d10: type: integer example: 9 d10x: type: integer example: 9 d12: type: integer example: 8 d20: type: integer example: 6 weight: type: object properties: d4: type: integer example: 300 d6: type: integer example: 300 d8: type: integer example: 340 d10: type: integer example: 350 d10x: type: integer example: 350 d12: type: integer example: 350 d20: type: integer example: 400 sizes: type: object properties: d4: type: integer example: 1 d6: type: integer example: 1 d8: type: integer example: 1 d10: type: integer example: 1 d10x: type: integer example: 1 d12: type: integer example: 1 d20: type: integer example: 1 sounds: type: array example: - src: /sounds/roll-1.mp3 'on': die.collide - src: /sounds/roll-2.mp3 'on': die.collide - src: /sounds/roll-3.mp3 'on': die.collide - src: /sounds/roll-loading-sm.mp3 'on': roll.loading value: 2 - src: /sounds/roll-loading-lg.mp3 'on': roll.loading value: '>=3' items: type: object properties: src: type: string example: /sounds/roll-1.mp3 'on': type: string example: die.collide uniforms: type: object properties: number: type: object properties: type: type: string example: color value: type: object properties: b: type: integer example: 0 g: type: number example: 0.424 r: type: number example: 0.463 diffuse: type: object properties: type: type: string example: color value: type: object properties: b: type: integer example: 0 g: type: number example: 0.929 r: type: integer example: 1 values: type: object properties: d4: type: array example: - 1 - 2 - 3 - 4 items: type: integer d6: type: array example: - 1 - 2 - 3 - 4 - 5 - 6 items: type: integer d8: type: array example: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 items: type: integer d10: type: array example: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 items: type: integer d12: type: array example: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 items: type: integer d20: type: array example: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - 15 - 16 - 17 - 18 - 19 - 20 items: type: integer d10x: type: array example: - 10 - 20 - 30 - 40 - 50 - 60 - 70 - 80 - 90 - 0 items: type: integer id: type: string example: necessitatibus-neque-pariatur name: type: string example: Prof. label: type: object properties: color: type: string example: '#000000' background_color: type: string example: '#e3d12d' version: type: string example: 1.0.0 textures: type: array example: - src: d4: u_numberMap.png d6: u_numberMap.png d8: u_numberMap.png d10: u_numberMap.png d12: u_numberMap.png d20: u_numberMap.png d10x: u_numberMap_d10x.png binding: u_numberMap items: type: object properties: src: type: object properties: d4: type: string example: u_numberMap.png d6: type: string example: u_numberMap.png d8: type: string example: u_numberMap.png d10: type: string example: u_numberMap.png d12: type: string example: u_numberMap.png d20: type: string example: u_numberMap.png d10x: type: string example: u_numberMap_d10x.png binding: type: string example: u_numberMap api_version: type: string example: '1.0' description: type: string example: 'Qui quia laudantium vel consequuntur quasi labore ex molestias. Expedita commodi id quo vel. Excepturi accusamus perspiciatis ullam veniam. Quis quam ullam quidem qui. Nulla ullam earum est aut quasi fugiat iste.' user: type: object properties: username: type: string example: keeling.rollin uuid: type: string example: 021602e1-ae37-350f-84ef-78720a4d13c9 name: type: string example: 'Wava Pollich' created_at: type: string example: '2025-05-20T23:22:59.000000Z' updated_at: type: string example: '2025-05-20T23:22:59.000000Z' subscription: type: boolean example: false is_merchant: type: boolean example: false is_registered: type: boolean example: false created_at: type: string example: '2025-05-20T23:22:59.000000Z' updated_at: type: string example: '2025-05-20T23:22:59.000000Z' tags: - 'Dice Box' requestBody: required: false content: application/json: schema: type: object properties: id: type: Theme description: ID example: aut '/api/1.0/dice-box/{slug}': delete: summary: 'Delete Dice Box Theme' operationId: deleteDiceBoxTheme description: 'Delete a share request which will invalidate any shared URLs' parameters: - in: header name: Authorization description: '' example: 'Bearer {YOUR_AUTH_KEY}' schema: type: string responses: 204: description: '' tags: - 'Dice Box' parameters: - in: path name: slug description: 'The slug of the dice box.' example: unde required: true schema: type: string - in: path name: id description: 'The ID of the theme.' example: dddice-bees required: true schema: type: string /api/1.0/activate: post: summary: 'Create activation code' operationId: createActivationCode description: "When setting up an integration, it is advised to present a potential user with a \"code\"\nand then have the user enter that code on the official dddice website.\n\nThis is not only easy for the user to interact with, it also helps prevent odd handshakes\nand security barriers when trying to authenticate with cookies and/or other mechanisms,\nespecially when trying to authenticate inside an `iframe`.\n\nCall this endpoint and receive an activation code in 'code' and an authentication secret in 'secret'.\n\nDisplay the code to the user and ask them to navigate to [https://dddice.com/activate](https://dddice.com/activate)\nwhere they will be prompted to login/register (as needed) and then enter the code.\n\nYour integration can poll GET /activate/{code} to be notified when the user completes the activation flow. See\nthat endpoint's documentation for more details." parameters: [] responses: 201: description: '' content: application/json: schema: type: object nullable: true tags: - 'Integration Authentication' security: [] '/api/1.0/activate/{code}': get: summary: 'Read activation code' operationId: readActivationCode description: "While waiting for the user to authenticate, this endpoint can be used to retrieve the latest\nstatus of the activation code. We recommend you poll this endpoint no more frequently than\nevery 5 seconds\n\nOne the user has completed the login/registration process and approved the code for activation\nyou will receive an API key in the 'token' field.\n\nThis can then be used to authenticate all future requests as that user.\n\nThe Secret in the headers is the secret you received along with the code from POST /authenticate" parameters: - in: header name: Authorization description: '' example: 'Authorization: Secret secret-value' schema: type: string responses: 200: description: '' content: application/json: schema: type: object nullable: true tags: - 'Integration Authentication' security: [] post: summary: 'Authenticate activation code' operationId: authenticateActivationCode description: "After a user is prompted to enter a code, this (protected) endpoint is used to sync the\nrequesting user and secret/code together to activate the integration.\n\nThis request is typically not used directly when integrating with dddice." parameters: - in: header name: Authorization description: '' example: 'Bearer {YOUR_AUTH_KEY}' schema: type: string responses: 200: description: '' content: application/json: schema: type: object nullable: true tags: - 'Integration Authentication' parameters: - in: path name: code description: 'Activation code' example: cupiditate required: true schema: type: string /api/1.0/wishlist: get: summary: 'List Wishlist' operationId: listWishlist description: "List all products in a user's wishlist." parameters: - in: header name: Authorization description: '' example: 'Bearer {YOUR_AUTH_KEY}' schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: type: 'wishlist[]' data: - [] - [] properties: type: type: string example: 'wishlist[]' data: type: array example: - [] - [] items: type: array tags: - Wishlists '/api/1.0/wishlist/{product_sku}': get: summary: 'Get from Wishlist' operationId: getFromWishlist description: "Get a particular product from a user's wishlist." parameters: - in: header name: Authorization description: '' example: 'Bearer {YOUR_AUTH_KEY}' schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: data: [] properties: data: type: array example: [] tags: - Wishlists post: summary: 'Add to Wishlist' operationId: addToWishlist description: "Add a product to a user's wishlist." parameters: - in: header name: Authorization description: '' example: 'Bearer {YOUR_AUTH_KEY}' schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: data: [] properties: data: type: array example: [] tags: - Wishlists delete: summary: 'Delete from Wishlist' operationId: deleteFromWishlist description: "Remove a product from a user's wishlist." parameters: - in: header name: Authorization description: '' example: 'Bearer {YOUR_AUTH_KEY}' schema: type: string responses: 204: description: '' tags: - Wishlists parameters: - in: path name: product_sku description: '' example: 17 required: true schema: type: integer tags: - name: Theme description: "\nAPI for managing themes." - name: Room description: "\nAPI for managing rooms." - name: Roll description: "\nAPI for creating and managing dice rolls." - name: 'Share Dice' description: "\nAPI for managing share requests." - name: User description: "\nAPI for managing users." - name: 'Dice Box' description: "\nAPI for managing themes in your **Digital Dice Box**." - name: 'Integration Authentication' description: "\nAPI for authenticating with third-party applications and integrations" - name: Wishlists description: "\nAPI for managing wishlists." components: securitySchemes: default: type: http scheme: bearer description: '' security: - default: []