n8n
Use ModelSite in n8n: chat through the OpenAI credential's Base URL, and generate video with the HTTP Request node (create, wait, poll)
Status: run against ModelSite with n8n 2.44.6 on 2026-10-24: a chat workflow and a video workflow both executed successfully.
Chat: the OpenAI credential
n8n's OpenAI credential has a Base URL field. Create the credential with:
| Field | Value |
|---|---|
| API Key | your ModelSite key |
| Base URL | https://api.modelsite.ai/v1 |
| Organization ID | leave empty |
Then use the OpenAI Chat Model node (with a Basic LLM Chain or an AI Agent) and set the model by ID, for example glm-5.3-flash. In our run, a Basic LLM Chain with that node answered pong and the execution status was success.
The OpenAI node's "Message a model" operation uses the Responses API (/v1/responses), which ModelSite also serves, but we did not run that operation. The Chat Model node above is what we verified.
Video: the HTTP Request node
Video models are called on their own endpoints and run asynchronously: create a task, then poll it. Create a Header Auth credential (Name Authorization, Value Bearer <your key>) and chain three nodes:
-
HTTP Request (create):
POST https://api.modelsite.ai/api/v1/services/aigc/video-generation/video-synthesis, Authentication = Generic → Header Auth, JSON body:{ "model": "wan3.0-video", "input": { "prompt": "A small orange cat stretches on a rainy window sill, neon city outside, slow push-in." }, "parameters": { "resolution": "480P", "duration": 2, "ratio": "adaptive", "prompt_extend": false } } -
Wait (a few tens of seconds; a 2-second 480P Wan clip finished in about 50 seconds).
-
HTTP Request (poll):
GET https://api.modelsite.ai/api/v1/tasks/{{ $('Create task').item.json.output.task_id }}with the same credential. The result hasoutput.task_statusand, when it isSUCCEEDED,output.video_url.
We ran exactly this create → wait → poll chain and the task came back SUCCEEDED. To wait longer or for slower models, add an IF node that sends the flow back to Wait until output.task_status is SUCCEEDED or FAILED; we did not run that loop.
Other video families use their own paths and fields; see the pages under Video generation (Seedance: POST /api/v3/contents/generations/tasks).
Limits
- The video URL in the result is temporary; download or store the file in a later node.
- Image generation through n8n's OpenAI node was not run. If you use it, set a size the model accepts (see Open WebUI for Seedream's minimum sizes).