AI Age Filter
v1.0.1Apply AI-powered age transformation filters to images using Media.io OpenAPI. Accurately renders younger or older versions of faces. AI age filter, age progr...
Media.io AI Age Filter Skill
Overview
This skill calls Media.io OpenAPI to run age transformation using model code effects-image-age-filter.
The API is asynchronous:
- Submit generation request and get
task_id. - Poll task result endpoint until the task is finished.
When To Use
- The user wants to make a face look older or younger.
- The user can provide an image URL reachable by Media.io servers.
- The user wants task-based generation with polling.
When Not To Use
- The user asks for local file upload only (this API expects image URL input).
- The user asks for non-Media.io providers.
- The user asks for real-time synchronous image output in one call.
Requirements
Environment Variables
| Variable | Required | Description |
|---|---|---|
MEDIAIO_API_KEY | Yes | Media.io OpenAPI key, used in header X-API-KEY. |
Base Headers
Content-Type: application/jsonX-API-KEY: $MEDIAIO_API_KEY
Supported Endpoints
1) Query Credits
- Method:
POST - Endpoint:
https://openapi.media.io/user/credits - Body:
{} - Purpose: check available credits before generation.
2) Create Age Filter Task
- Method:
POST - Endpoint:
https://openapi.media.io/generation/effects/effects-image-age-filter - Body:
{
"data": {
"images": "https://example.com/input.jpg",
"mode": "Older"
}
}
- Required fields:
data.images(string URL)
- Optional fields:
data.mode(string):OlderorYounger
3) Query Task Result
- Method:
POST - Endpoint:
https://openapi.media.io/generation/result/{task_id} - Body:
{} - Path parameter:
task_id(string, required)
Request and Response Contract
Common Success Envelope
{
"code": 0,
"msg": "",
"data": {},
"trace_id": "..."
}
Create Task Response
- On success,
data.task_idis returned.
Task Result Response
data.statuscan be one of the following values:waiting: queuedprocessing: runningcompleted: completed successfullyfailed: failedtimeout: timed out
data.reason: provides additional context (e.g.,successor error message)- When status is
completed:data.resultis an array of output objects with generated URLs- Each result object contains
val(internal path),preview(public HTTPS URL), andstatus(completion status)
Standard Invocation Flow
- Call
user/creditsto verify balance. - Call
effects-image-age-filterwithdata.imagesand optionaldata.mode. - Extract
task_id. - Poll
generation/result/{task_id}every 3 to 5 seconds. - Stop when status is
completedorfailed. - Return output URLs from
data.resultwhencompleted.
cURL Examples
Query Credits
curl --request POST \
--url https://openapi.media.io/user/credits \
--header 'Content-Type: application/json' \
--header "X-API-KEY: $MEDIAIO_API_KEY" \
--data '{}'
Create Age Filter Task
curl --request POST \
--url https://openapi.media.io/generation/effects/effects-image-age-filter \
--header 'Content-Type: application/json' \
--header "X-API-KEY: $MEDIAIO_API_KEY" \
--data '{
"data": {
"images": "https://example.com/input.jpg",
"mode": "Older"
}
}'
Query Task Result
curl --request POST \
--url https://openapi.media.io/generation/result/<task_id> \
--header 'Content-Type: application/json' \
--header "X-API-KEY: $MEDIAIO_API_KEY" \
--data '{}'
Successful Response Example
{
"code": 0,
"msg": "",
"data": {
"task_id": "effect-86f0f82a-36dc-4a7c-928a-721a18ef482f",
"status": "completed",
"reason": "success",
"result": [
{
"val": "aicloudtmp/550160908/3/202603/1/combo_tm_alg-20260317165022-802800-60eb3-dwt.png",
"preview": "https://url_to_generated_image.png",
"status": "completed"
}
]
},
"trace_id": "a18315ba568b5c34407808d12cbc8457"
}
Response fields when status is completed:
data.task_id: unique task identifierdata.status:completedindicates successful completiondata.reason:successindicates no error occurreddata.result: array of output objects, each containing:val: internal file path of the generated assetpreview: publicly accessible HTTPS URL for the generated assetstatus:completedfor each result item
Error Handling Guidance
- Treat
code != 0as failure. - Typical authentication errors:
374004: not authenticated. Apply for an APP KEY at https://developer.media.io/.
- Typical request validation error:
490000: params error
- Typical billing/credits error:
490505: insufficient credits. Recharge before invoking generation APIs.
- Always include
trace_idin logs for troubleshooting.
Agent Behavior Requirements
- Validate that input contains a non-empty image URL before calling the create endpoint.
- Do not claim immediate output after task creation; always poll by
task_id. - If credits are insufficient, return a clear message and stop instead of retry loops.
- Avoid exposing raw API keys in logs or responses.
Safety and Compliance Notes
- Only process user-provided or user-authorized images.
- Do not imply identity verification or biometric certainty from generated images.
- Generated output is synthetic media and should be presented as edited content.
References
- Media.io platform: https://developer.media.io/
- API documentation: https://platform.media.io/docs/
Version tags
latest
Runtime requirements
Binscurl
EnvMEDIAIO_API_KEY
Primary envMEDIAIO_API_KEY
