Read the AI media preferences
get_ai_preferences
Reads the AI media preferences of a site, the settings that decide what its generated pictures and clips cost.
These are the settings on the site's Preferences tab: whether paid images and video are on at all, the image model and largest image size, and the video model, longest clip, clip resolution and whether visitors can unmute clips. ImageGenerationDisabled is true while paid media is off, and a setting left on automatic or its default comes back as null.
The response also lists every model, size, resolution and length you can pick, each priced in credits at the workspace's current plan, and a Summary with one plain line per setting that names the model an automatic choice uses. Each image model says whether it follows the size setting, how large it goes, what an edit costs and which model makes its edits, which is a different one when the model cannot edit. Each video model lists the clip lengths and resolutions it takes and whether it makes sound, and recommended marks the model automatic follows. A model that is not available right now is left out, so the choices can change over time.
The tool tells the client to read this before update_ai_preferences, so it passes valid values and can tell you what a change will cost. See Preferences.
Request
Call it with a POST to https://api.modulify.ai/v1/get_ai_preferences, sending the inputs below as a JSON object. The token needs the sites:read scope.
It only reads and changes nothing, so retrying it is safe.
curl -X POST https://api.modulify.ai/v1/get_ai_preferences \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"projectId":"PROJECT_ID"}'Over MCP, the same method is the get_ai_preferences tool.
Inputs
| Input | Type | Required | Description |
|---|---|---|---|
projectId |
string | Yes | The site id. |
Response
Every call answers with the JSON envelope of success, message, data, code and version. data holds the result described above, and on a method that returns a total, count carries it. The response headers carry the call's X-Request-Id and what is left of your per-minute budget in X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset. Errors explains every status code a call can answer with.