The ScriptBlox API has had major changes. If you are using the API, please migrate to the new structure. Details in https://scriptblox.com/docs/migration

Migration

Migration steps to the new API

With recent updates to the website around beginning of April, 2025, ScriptBlox has undergone big changes in the API. For each major change that requires adaptation in services that utilize the API, we will provide in this page the exact change, the reasoning, and the migration steps for the change.

Changes to script searching/fetching endpoints

The script search and fetch endpoints have received a major change in accepted parameters.

What changed

The filters parameter has been deprecated in favor of more explicit, separate parameters.

Reason for change

Having separate top level parameters for filters provides more explicit context for the request. It avoids ambiguity between filters and sorts and makes it easier to expand and provide more thorough and fine-tuned filtering capabilities.

Migration steps

Remove all filters and replace each with their respective top level parameter.

  • filters=paid/filters=free has been removed entirely due to the existence of the mode parameter (mode=paid/mode=free)
    - https://scriptblox.com/api/script/fetch?filters=free
    + https://scriptblox.com/api/script/fetch?mode=free
    
  • filters=verified/filters=unverified should be replaced with the verified parameter (verified=1/verified=0)
    - https://scriptblox.com/api/script/fetch?filters=unverified
    + https://scriptblox.com/api/script/fetch?verified=0
    
  • filters=newest/filters=oldest/filters=mostviewed/filters=leastviewed should be replaced with the order parameter along with the sortBy parameter (sortBy=createdAt&order=desc/sortBy=createdAt&order=asc/sortBy=views&order=desc/sortBy=views&order=asc)
    - https://scriptblox.com/api/script/fetch?filters=mostviewed
    + https://scriptblox.com/api/script/fetch?sortBy=views&order=desc
    
  • filters=hot should be replaced with a request to the dedicated endpoint. More information here.
    - https://scriptblox.com/api/script/fetch?filters=hot
    + https://scriptblox.com/api/script/trending
    

Fallback grace period

If migration isn't possible immediately, a grace period is provided during which you must add the legacy_filters parameter to the request (legacy_filters=true).

- https://scriptblox.com/api/script/fetch?filters=verified
+ https://scriptblox.com/api/script/fetch?filters=verified&legacy_filters=true

Without this parameter, your queries will result in an error.

This is done to ensure you have adequate time to migrate safely and without long term disruptions.

However, once the grace period expires, this parameter will be sunset and lose all effect, and you will be met with an error response if the filters key is kept in use.

Changes to script tags

The tags have had a change in structure.

What changed

The tags are now a plain array of strings, as opposed to an array of objects.

Reason for change

The previous approach did not have much benefit, as it was contributing to more clutter and payload size, and have not had any effect on the overall behavior. The new approach simplifies it, and brings some performance improvements to our end.

Migration steps

Remove all references to _id and id in tags, as these have been removed.

Remove all references to name, as the tag is now the value.

tag["name"] -> tag

Fallback grace period

If migration isn't possible immediately, a grace period is provided during which you can add the legacy_tags parameter to the request (legacy_tags=true), that will return the tags to the previous state (albeit with randomized ID's).

- https://scriptblox.com/api/script/[slug]
+ https://scriptblox.com/api/script/[slug]?legacy_tags=true

Changes to script images

The images of scripts have been slightly changed in structure.

What changed

The images of the scripts have been moved into the direct image property.

Reason for change

The new approach heavily simplifies game handling on our end. It brings major performance improvements and allows us to better handle fallback images if a custom image is unavailable. Additionally, it brings us the future capabilities to further expand the script filtering system by game.

Migration steps

All references of game.imageUrl should be replaced with image.

game["imageUrl"] -> image

Fallback grace period

If migration isn't possible immediately, a grace period is provided during which you can add the legacy_img parameter to the request (legacy_img=true), that will return the image in the game.imageUrl, as it was previously.

- https://scriptblox.com/api/script/[slug]
+ https://scriptblox.com/api/script/[slug]?legacy_img=true