prompt_sent
The exact prompt that left here, after being assembled with the variables and the company kit.
The differentiator
Whoever pays for the generation should choose who generates. That is the whole premise of this page — and the only reason EverFeed was built instead of subscribed to.
In tools in this category, the model is whatever the tool decided, in whatever version it decided, and you find out it changed when the pieces start looking different. If you already have an account with OpenAI, Google or any other provider, the credit you already pay for is worth nothing in there.
In EverFeed, an AI provider is a record. Name, capability (text, image or video), driver, base URL, key, default model, list of models, a free-form params field in JSON, timeout, “is the default”, enabled or disabled. The pipeline reads that record and obeys — it does not know, and does not need to know, who is on the other side.
Three capabilities
Each pipeline step asks for a capability, and each capability has its own default provider. Text from one, images from another, video from a third — and your key in all of them, if you want.
The list above is examples, not a closed set of integrations: what defines support is the driver, not the vendor name.
The five drivers
| Driver | Capabilities | What it is for |
|---|---|---|
openai_compatible | text | Any API in the OpenAI format — OpenAI, DeepSeek, Groq, OpenRouter, Ollama, vLLM and anything else that speaks that dialect. |
gemini | text, image | Google Gemini. |
veo | video | Google Veo. |
dashscope | image, video | Alibaba Model Studio — the Wan family: text→video, image→video, reference→video and editing. |
custom | text, image, video | Describes an entire API in JSON. If your vendor is not on the list, it goes in without waiting for us. |
params
The params field is raw JSON on purpose — It is where vendor-specific settings travel, without waiting for us to add a field to a screen: temperature, max_tokens, size, aspect_ratio, duration_seconds, negative_prompt, extra_headers, extra_body.
The custom driver
This is the definitive “any AI” argument. Anyone with an internal endpoint — a model running on their own infrastructure, a corporate gateway, a regional vendor — plugs in without waiting for a release from us. The block below is fictional and only shows the shape.
{
"auth": { "type": "bearer", "header": "Authorization" },
"text": {
"method": "POST",
"path": "/v1/chat",
"body": { "model": "{{model}}", "input": "{{prompt}}" },
"pick": "output.text"
},
"image": {
"method": "POST",
"path": "/v1/render",
"body": { "prompt": "{{prompt}}", "size": "{{size}}" },
"pick": "data[0].url"
},
"video": {
"method": "POST",
"path": "/v1/clip",
"body": { "prompt": "{{prompt}}", "seconds": "{{duration_seconds}}" },
"poll": { "path": "/v1/clip/{{id}}", "until": "status == 'done'" },
"pick": "result.url"
},
"health": { "method": "GET", "path": "/v1/models" }
}
Audit trail
If you cannot see what was sent, you are not configuring anything — you are hoping. Every step of every piece stores:
The exact prompt that left here, after being assembled with the variables and the company kit.
Which provider and which model served that step. Not “the AI”: the name and the version.
How many attempts it took and how long it ran.
Up to ten previous versions of the file. Regenerating does not delete; you can compare two takes without paying for another generation.
One button per provider fires a real call and shows the answer. When it fails, EverFeed returns the raw message from the vendor, not a “generation error”. That is the difference between knowing the key expired, the model does not exist or the account hit its quota — and guessing.
The AI key is stored encrypted and the API never returns it: the panel receives sk-…4f2a and nothing more. Channel credentials come back only as field names. A Meta or TikTok app secret comes back only as “it exists”, and stays encrypted in the database — not in a .env file on the server. This is not a marketing promise: it is the shape of the JSON our own interface receives.
| Your key (BYOK) | EverFeed credits | |
|---|---|---|
| Setup | You create the account at the vendor and paste the key | You configure nothing |
| Who charges for generation | The vendor, directly, at their price | Us, in credit bought separately |
| Model choice | Switch whenever you like, per capability | We pick a good default |
| Price | The option comes with the plan; generation you pay the vendor | Credit bought separately from the plan |
| Can I change later? | Yes — start on credits and plug your key in | Yes — unplug the key and go back to credits |
Or plug in nothing and use our keys. Both doors exist, and changing your mind later costs nothing.