{"openapi":"3.1.0","info":{"title":"Roblox Creator Store (BYOK) API","version":"0.1.0","description":"Roblox Creator Store (BYOK) lets an AI assistant read your own Roblox Creator Store data through the Roblox Creator Store API with a key you supply (Open Cloud API key (give it only read permissions for the assets you need)). Read-only: 6 tools (search_creator_store, get_creator_store_asset, get_asset_metadata, list_asset_versions, get_asset_version, get_asset_operation). The BYOK key travels...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-roblox-creator-store.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-roblox-creator-store/docs"},"termsOfService":"https://connectorbay.com/byok-roblox-creator-store/terms"},"servers":[{"url":"https://byok-roblox-creator-store.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-roblox-creator-store/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/search_creator_store":{"post":{"operationId":"search_creator_store","summary":"Search the Roblox Creator Store (free and paid models, audio, decals, plugins, mesh parts, videos, fonts) by keyword, ty","description":"Search the Roblox Creator Store (free and paid models, audio, decals, plugins, mesh parts, videos, fonts) by keyword, type, creator or price; returns name, creator, votes and price per asset. Use for \"Find free tree models in the Roblox Creator Store\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"category_type":{"description":"Asset type to search: Audio, Model, Decal, Plugin, MeshPart, Video or FontFamily.","enum":["Audio","Model","Decal","Plugin","MeshPart","Video","FontFamily"],"title":"Category Type","type":"string"},"query":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Search words, for example 'tree'.","title":"Query"},"sort_category":{"anyOf":[{"enum":["Relevance","Trending","Top","AudioDuration","CreateTime","UpdatedTime","Ratings"],"type":"string"},{"type":"null"}],"default":"Relevance","description":"Sort by Relevance (default), Trending, Top, AudioDuration, CreateTime, UpdatedTime or Ratings.","title":"Sort Category"},"sort_direction":{"anyOf":[{"enum":["None","Ascending","Descending"],"type":"string"},{"type":"null"}],"default":"None","description":"None (default), Ascending or Descending.","title":"Sort Direction"},"user_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only assets by this creator user id (not together with group_id).","title":"User Id"},"group_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only assets by this creator group id (not together with user_id).","title":"Group Id"},"verified_creators_only":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":true,"description":"True (default) to include only assets of verified creators.","title":"Verified Creators Only"},"min_price_cents":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Minimum price in US cents (0 or more).","title":"Min Price Cents"},"max_price_cents":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Maximum price in US cents (0 or more); 0 finds only free assets.","title":"Max Price Cents"},"max_page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many assets to return (1 to 100, default 25).","title":"Max Page Size"},"page_token":{"anyOf":[{"maxLength":1000,"type":"string"},{"type":"null"}],"default":null,"description":"Paging token: the nextPageToken of the previous answer.","title":"Page Token"}},"required":["category_type"],"title":"search_creator_storeArguments","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_asset":{"post":{"operationId":"get_creator_store_asset","summary":"Get one Creator Store asset by id: name, description, type, dates, category, creator, vote summary and price. Use for \"S","description":"Get one Creator Store asset by id: name, description, type, dates, category, creator, vote summary and price. Use for \"Show details of Creator Store asset 1818\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"Creator Store asset id (a number), from search_creator_store, for example 1818.","minimum":1,"title":"Id","type":"integer"}},"required":["id"],"title":"get_creator_store_assetArguments","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_asset_metadata":{"post":{"operationId":"get_asset_metadata","summary":"Get metadata of one of your Roblox assets: type, display name, description, creator, privacy, state, moderation state an","description":"Get metadata of one of your Roblox assets: type, display name, description, creator, privacy, state, moderation state and revision. Use for \"What is the state and moderation result of my Roblox asset 1818\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"asset_id":{"description":"Roblox asset id (a number) of an asset your key can read, for example '1818'.","maxLength":20,"title":"Asset Id","type":"string"},"read_mask":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Extra fields to include, for example 'description,displayName,icon,previews,state,revisionId,moderationResult'.","title":"Read Mask"}},"required":["asset_id"],"title":"get_asset_metadataArguments","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_versions":{"post":{"operationId":"list_asset_versions","summary":"List the versions of one of your Roblox assets with creator, privacy, moderation result and published flag. The document","description":"List the versions of one of your Roblox assets with creator, privacy, moderation result and published flag. The documentation does not describe the wrapper, so the answer is passed through (capped). Use for \"How many versions does my Roblox asset 1818 have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"asset_id":{"description":"Roblox asset id (a number) of an asset your key can read, for example '1818'.","maxLength":20,"title":"Asset Id","type":"string"},"max_page_size":{"anyOf":[{"maximum":50,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many versions to return (1 to 50).","title":"Max Page Size"},"page_token":{"anyOf":[{"maxLength":1000,"type":"string"},{"type":"null"}],"default":null,"description":"Paging token from the previous answer.","title":"Page Token"}},"required":["asset_id"],"title":"list_asset_versionsArguments","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_asset_version":{"post":{"operationId":"get_asset_version","summary":"Get one version of a Roblox asset by version number: creator, privacy, moderation result and whether it is published. Us","description":"Get one version of a Roblox asset by version number: creator, privacy, moderation result and whether it is published. Use for \"Is version 2 of my Roblox asset 1818 published\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"asset_id":{"description":"Roblox asset id (a number) of an asset your key can read, for example '1818'.","maxLength":20,"title":"Asset Id","type":"string"},"version_number":{"description":"Version number, starting at 1.","maxLength":10,"title":"Version Number","type":"string"}},"required":["asset_id","version_number"],"title":"get_asset_versionArguments","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_asset_operation":{"post":{"operationId":"get_asset_operation","summary":"Get the result of an asset upload or update by operation id: done flag, error and the resulting asset metadata. Use for ","description":"Get the result of an asset upload or update by operation id: done flag, error and the resulting asset metadata. Use for \"Did my Roblox asset upload operation finish\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"operation_id":{"description":"Operation id returned when an asset was created or updated.","maxLength":100,"title":"Operation Id","type":"string"}},"required":["operation_id"],"title":"get_asset_operationArguments","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}}}}