{"openapi":"3.1.0","info":{"title":"Roblox Cloud Extras (BYOK) API","version":"0.1.0","description":"Roblox Cloud Extras (BYOK) lets an AI assistant read your own Roblox Cloud Extras data through the Roblox Cloud Extras API with a key you supply (Open Cloud API key (give it only read permissions for the experiences, groups or users you need)). Read-only: 8 tools (list_ordered_data_store_entries, get_ordered_data_store_entry, list_memory_store_sorted_map_items, get_memory_store_sorted_map_item,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-roblox-cloud-extras.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-roblox-cloud-extras/docs"},"termsOfService":"https://connectorbay.com/byok-roblox-cloud-extras/terms"},"servers":[{"url":"https://byok-roblox-cloud-extras.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-roblox-cloud-extras/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/list_ordered_data_store_entries":{"post":{"operationId":"list_ordered_data_store_entries","summary":"List entries of an ordered data store (the numeric store used for leaderboards): entry id and value, optionally sorted b","description":"List entries of an ordered data store (the numeric store used for leaderboards): entry id and value, optionally sorted by value or limited to a value range. Needs a key with ordered data store read permission. Use for \"Who has the highest Coins in my Roblox ordered data store\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"universe_id":{"description":"Roblox universe (experience) ID, a number shown in Creator Hub for the experience, for example '1234567890'.","maxLength":20,"title":"Universe Id","type":"string"},"ordered_data_store_id":{"description":"Name of an ordered data store in the universe, for example 'Coins'.","maxLength":100,"title":"Ordered Data Store Id","type":"string"},"scope_id":{"description":"Scope of the entries inside the store; 'global' is the default scope Roblox scripts use.","maxLength":100,"title":"Scope Id","type":"string"},"max_page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many entries to return (1 to 100, default 10).","title":"Max Page Size"},"page_token":{"anyOf":[{"maxLength":1000,"type":"string"},{"type":"null"}],"default":null,"description":"Paging token: the nextPageToken value of the previous answer (leave empty for the first page). Other parameters must stay the same.","title":"Page Token"},"order_by":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Sort order: 'value' (ascending) or 'value desc' for a leaderboard.","title":"Order By"},"filter":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Value range using <= and >= joined by ' && ' with single spaces, for example 'entry >= 10 && entry <= 30'.","title":"Filter"}},"required":["universe_id","ordered_data_store_id","scope_id"],"title":"list_ordered_data_store_entriesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_ordered_data_store_entry":{"post":{"operationId":"get_ordered_data_store_entry","summary":"Get one ordered data store entry by id: its numeric value. Use for \"What is the Coins value of entry user_1 in my Roblox","description":"Get one ordered data store entry by id: its numeric value. Use for \"What is the Coins value of entry user_1 in my Roblox ordered data store\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"universe_id":{"description":"Roblox universe (experience) ID, a number shown in Creator Hub for the experience, for example '1234567890'.","maxLength":20,"title":"Universe Id","type":"string"},"ordered_data_store_id":{"description":"Name of an ordered data store in the universe, for example 'Coins'.","maxLength":100,"title":"Ordered Data Store Id","type":"string"},"scope_id":{"description":"Scope of the entries inside the store; 'global' is the default scope Roblox scripts use.","maxLength":100,"title":"Scope Id","type":"string"},"entry_id":{"description":"Entry id (the key), for example 'user_1'.","maxLength":200,"title":"Entry Id","type":"string"}},"required":["universe_id","ordered_data_store_id","scope_id","entry_id"],"title":"get_ordered_data_store_entryArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_memory_store_sorted_map_items":{"post":{"operationId":"list_memory_store_sorted_map_items","summary":"List items of a memory store sorted map: id, value, sort keys and expiry, optionally ordered by id or filtered by id ran","description":"List items of a memory store sorted map: id, value, sort keys and expiry, optionally ordered by id or filtered by id range. Needs a key with memory store read permission. Use for \"What is currently in my Roblox memory store sorted map Lobbies\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"universe_id":{"description":"Roblox universe (experience) ID, a number shown in Creator Hub for the experience, for example '1234567890'.","maxLength":20,"title":"Universe Id","type":"string"},"sorted_map_id":{"description":"Name of a memory store sorted map in the universe, for example 'Lobbies'.","maxLength":100,"title":"Sorted Map Id","type":"string"},"max_page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many items to return (1 to 100, default 10).","title":"Max Page Size"},"page_token":{"anyOf":[{"maxLength":1000,"type":"string"},{"type":"null"}],"default":null,"description":"Paging token: the nextPageToken value of the previous answer (leave empty for the first page). Other parameters must stay the same.","title":"Page Token"},"order_by":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Sort order: 'id' (ascending) or 'id desc'.","title":"Order By"},"filter":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Id range using < and > joined by ' && ', for example 'id > \"key-001\" && id < \"key-100\"'.","title":"Filter"}},"required":["universe_id","sorted_map_id"],"title":"list_memory_store_sorted_map_itemsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_memory_store_sorted_map_item":{"post":{"operationId":"get_memory_store_sorted_map_item","summary":"Get one memory store sorted map item by id: value, sort keys, time to live and expiry. Use for \"What is the value of ite","description":"Get one memory store sorted map item by id: value, sort keys, time to live and expiry. Use for \"What is the value of item lobby-1 in my Roblox memory store map Lobbies\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"universe_id":{"description":"Roblox universe (experience) ID, a number shown in Creator Hub for the experience, for example '1234567890'.","maxLength":20,"title":"Universe Id","type":"string"},"sorted_map_id":{"description":"Name of a memory store sorted map in the universe, for example 'Lobbies'.","maxLength":100,"title":"Sorted Map Id","type":"string"},"item_id":{"description":"Item id (the key), for example 'lobby-1'.","maxLength":200,"title":"Item Id","type":"string"}},"required":["universe_id","sorted_map_id","item_id"],"title":"get_memory_store_sorted_map_itemArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_data_store_entry_revisions":{"post":{"operationId":"list_data_store_entry_revisions","summary":"List the revision history of one standard data store entry (revision id, times, state); the entry values themselves are ","description":"List the revision history of one standard data store entry (revision id, times, state); the entry values themselves are not part of the list. Use for \"How often was entry user_1 of my Roblox data store PlayerData changed\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"universe_id":{"description":"Roblox universe (experience) ID, a number shown in Creator Hub for the experience, for example '1234567890'.","maxLength":20,"title":"Universe Id","type":"string"},"data_store_id":{"description":"Name of a standard data store in the universe, for example 'PlayerData'.","maxLength":100,"title":"Data Store Id","type":"string"},"entry_id":{"description":"Entry id (the key), for example 'user_1'.","maxLength":200,"title":"Entry Id","type":"string"},"max_page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many revisions to return (1 to 100, default 10).","title":"Max Page Size"},"page_token":{"anyOf":[{"maxLength":1000,"type":"string"},{"type":"null"}],"default":null,"description":"Paging token: the nextPageToken value of the previous answer (leave empty for the first page). Other parameters must stay the same.","title":"Page Token"},"filter":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Time window on revision_create_time using >= and <= joined by ' && ', for example 'revision_create_time >= 2026-01-01T00:00:00Z'.","title":"Filter"}},"required":["universe_id","data_store_id","entry_id"],"title":"list_data_store_entry_revisionsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_group_role":{"post":{"operationId":"get_group_role","summary":"Get one role of a Roblox group: name, rank, member count and its permission flags. Use for \"What can the role 12345 of m","description":"Get one role of a Roblox group: name, rank, member count and its permission flags. Use for \"What can the role 12345 of my Roblox group do\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"group_id":{"description":"Roblox group ID, the number in the group's URL, for example '1234567'.","maxLength":20,"title":"Group Id","type":"string"},"role_id":{"description":"Role ID, from the group's role list, for example '12345'.","maxLength":20,"title":"Role Id","type":"string"}},"required":["group_id","role_id"],"title":"get_group_roleArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_asset_quotas":{"post":{"operationId":"list_asset_quotas","summary":"List a user's asset upload and Creator Store distribution quotas: asset type, quota type, usage, capacity, period and re","description":"List a user's asset upload and Creator Store distribution quotas: asset type, quota type, usage, capacity, period and reset time. Use for \"How many more audio uploads can my Roblox account make this month\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"user_id":{"description":"Roblox user ID of the key owner (a number), for example '123456789'.","maxLength":20,"title":"User Id","type":"string"},"max_page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many quotas to return (1 to 100, default 10).","title":"Max Page Size"},"page_token":{"anyOf":[{"maxLength":1000,"type":"string"},{"type":"null"}],"default":null,"description":"Paging token: the nextPageToken value of the previous answer (leave empty for the first page). Other parameters must stay the same.","title":"Page Token"},"filter":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Filter with == and && on quotaType and assetType, for example 'quotaType == RateLimitUpload && assetType == Audio'.","title":"Filter"}},"required":["user_id"],"title":"list_asset_quotasArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_creator_store_product":{"post":{"operationId":"get_creator_store_product","summary":"Get a Creator Store product: published and purchasable flags, base and purchase price, seller and the asset it sells. Us","description":"Get a Creator Store product: published and purchasable flags, base and purchase price, seller and the asset it sells. Use for \"Is my Creator Store product 123 published and what does it cost\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"creator_store_product_id":{"description":"Creator Store product ID, a number, for example '123456'.","maxLength":20,"title":"Creator Store Product Id","type":"string"}},"required":["creator_store_product_id"],"title":"get_creator_store_productArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}