ModelSiteAPI

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:

FieldValue
API Keyyour ModelSite key
Base URLhttps://api.modelsite.ai/v1
Organization IDleave 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:

  1. 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 }
    }
  2. Wait (a few tens of seconds; a 2-second 480P Wan clip finished in about 50 seconds).

  3. HTTP Request (poll): GET https://api.modelsite.ai/api/v1/tasks/{{ $('Create task').item.json.output.task_id }} with the same credential. The result has output.task_status and, when it is SUCCEEDED, 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).

On this page