{"openapi":"3.1.0","info":{"title":"Spectra Seller API","description":"The public API for your own custom loaders and tooling.\n\n**Whitelist/blacklist management** (`/seller/*`) needs your X-API-Key header -- mint one from your dashboard, under 'Seller API keys' (session login required there; the key itself is what you use here).\n\n**`/check/status`** (read-only membership lookup for your OWN in-game loader) needs only a `check_token` query param -- get one from your script's card, under 'Protection settings'. It has no attestation/nonce -- see the route's own docstring for the honest limits before you rely on it.\n\n**`/loader/specprotect.lua`** serves a ready-made Lua client for `/check/status` you can `loadstring` directly instead of writing your own HTTP calls.","version":"0.1.0"},"paths":{"/check/status":{"get":{"summary":"Check Status","operationId":"check_status_check_status_get","parameters":[{"name":"token","in":"query","required":false,"schema":{"type":"string","default":"","title":"Token"}},{"name":"user","in":"query","required":false,"schema":{"type":"string","default":"","title":"User"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckStatusOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/loader/specprotect.lua":{"get":{"summary":"Serve Specprotect Loader","operationId":"serve_specprotect_loader_loader_specprotect_lua_get","responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/seller/scripts":{"get":{"summary":"Seller List Scripts","description":"Read-only: the caller's own scripts, including numeric id -- the\n/seller/{white,black}list/{script_id} routes below key off that id, and\nthis is the only way to discover it via API key alone (vs. the dashboard,\nwhich shows it directly).","operationId":"seller_list_scripts_seller_scripts_get","parameters":[{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response Seller List Scripts Seller Scripts Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/seller/whitelist/{script_id}":{"get":{"summary":"Seller List Whitelist","operationId":"seller_list_whitelist_seller_whitelist__script_id__get","parameters":[{"name":"script_id","in":"path","required":true,"schema":{"type":"integer","title":"Script Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response Seller List Whitelist Seller Whitelist  Script Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"Seller Add Whitelist","operationId":"seller_add_whitelist_seller_whitelist__script_id__post","parameters":[{"name":"script_id","in":"path","required":true,"schema":{"type":"integer","title":"Script Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SellerWhitelistIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Seller Add Whitelist Seller Whitelist  Script Id  Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/seller/whitelist/{script_id}/{whitelist_id}":{"delete":{"summary":"Seller Remove Whitelist","operationId":"seller_remove_whitelist_seller_whitelist__script_id___whitelist_id__delete","parameters":[{"name":"script_id","in":"path","required":true,"schema":{"type":"integer","title":"Script Id"}},{"name":"whitelist_id","in":"path","required":true,"schema":{"type":"integer","title":"Whitelist Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/seller/whitelist/{script_id}/bulk":{"post":{"summary":"Seller Add Whitelist Bulk","operationId":"seller_add_whitelist_bulk_seller_whitelist__script_id__bulk_post","parameters":[{"name":"script_id","in":"path","required":true,"schema":{"type":"integer","title":"Script Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkUsernamesIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Seller Add Whitelist Bulk Seller Whitelist  Script Id  Bulk Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/seller/whitelist/{script_id}/bulk-remove":{"post":{"summary":"Seller Remove Whitelist Bulk","operationId":"seller_remove_whitelist_bulk_seller_whitelist__script_id__bulk_remove_post","parameters":[{"name":"script_id","in":"path","required":true,"schema":{"type":"integer","title":"Script Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkUsernamesIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Seller Remove Whitelist Bulk Seller Whitelist  Script Id  Bulk Remove Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/seller/blacklist/{script_id}":{"get":{"summary":"Seller List Blacklist","operationId":"seller_list_blacklist_seller_blacklist__script_id__get","parameters":[{"name":"script_id","in":"path","required":true,"schema":{"type":"integer","title":"Script Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response Seller List Blacklist Seller Blacklist  Script Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"Seller Add Blacklist","operationId":"seller_add_blacklist_seller_blacklist__script_id__post","parameters":[{"name":"script_id","in":"path","required":true,"schema":{"type":"integer","title":"Script Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SellerBlacklistIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Seller Add Blacklist Seller Blacklist  Script Id  Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/seller/blacklist/{script_id}/{blacklist_id}":{"delete":{"summary":"Seller Remove Blacklist","operationId":"seller_remove_blacklist_seller_blacklist__script_id___blacklist_id__delete","parameters":[{"name":"script_id","in":"path","required":true,"schema":{"type":"integer","title":"Script Id"}},{"name":"blacklist_id","in":"path","required":true,"schema":{"type":"integer","title":"Blacklist Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/seller/blacklist/{script_id}/bulk":{"post":{"summary":"Seller Add Blacklist Bulk","operationId":"seller_add_blacklist_bulk_seller_blacklist__script_id__bulk_post","parameters":[{"name":"script_id","in":"path","required":true,"schema":{"type":"integer","title":"Script Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkUsernamesIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Seller Add Blacklist Bulk Seller Blacklist  Script Id  Bulk Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/seller/blacklist/{script_id}/bulk-remove":{"post":{"summary":"Seller Remove Blacklist Bulk","operationId":"seller_remove_blacklist_bulk_seller_blacklist__script_id__bulk_remove_post","parameters":[{"name":"script_id","in":"path","required":true,"schema":{"type":"integer","title":"Script Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkUsernamesIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Seller Remove Blacklist Bulk Seller Blacklist  Script Id  Bulk Remove Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"BulkUsernamesIn":{"properties":{"roblox_usernames":{"items":{"type":"string"},"type":"array","maxItems":200,"minItems":1,"title":"Roblox Usernames"}},"type":"object","required":["roblox_usernames"],"title":"BulkUsernamesIn","description":"Shared shape for /seller/* bulk whitelist/blacklist routes, scoped by\nthe script_id already in the URL."},"CheckStatusOut":{"properties":{"whitelisted":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Whitelisted"},"blacklisted":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Blacklisted"}},"type":"object","required":["whitelisted","blacklisted"],"title":"CheckStatusOut"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"SellerBlacklistIn":{"properties":{"roblox_username":{"type":"string","maxLength":100,"minLength":1,"title":"Roblox Username"}},"type":"object","required":["roblox_username"],"title":"SellerBlacklistIn"},"SellerWhitelistIn":{"properties":{"roblox_username":{"type":"string","maxLength":100,"minLength":1,"title":"Roblox Username"}},"type":"object","required":["roblox_username"],"title":"SellerWhitelistIn"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}