One file. One key. Fourteen platforms.
Most APIs hand your agent a reference manual and let it work out the order. ModelVI hands it a
single file — agents.modelvi.com/skill.md
— that opens with a decision table. Your agent reads the row that matches the job and makes exactly
those calls.
You can check it before you sign up for anything.
GET https://modelvi.com/api/partner/v1/version takes no key and returns
{"success":true,"version":"partner api version 1.0"}. If that responds, the rest of this
page is real.
What your agent can actually do
| The job | What it takes |
|---|---|
| Post content already in the vault | four calls, no upload |
| Post media you bring yourself | upload, then attach, then schedule |
| Add a creator or a platform account | two calls |
| Change how an account posts | one call |
| Read what happened | one call |
| Check balance and spend | one call |
That table is the top of skill.md, not a summary we wrote for this page. Everything
below it in the file is the detail for those rows, in the same order.
The fourteen platforms
F2F · FNC (FanCentro) · FAN (Fansly) · KNKY ·
MALOUM · ONLYFANS · LOYALFANS · MYMFANS ·
FETLIFE · FOURBASED · FANVUE · BESTFANS ·
FANSYME · BREZZELS
Your agent never talks to any of them. ModelVI holds the sessions, the proxies and the rate limits. Your agent decides what and when; the engine decides how. That distinction is the whole product — it is why one integration reaches fourteen platforms instead of fourteen integrations reaching one each.
The shape of it
- Base URL
https://modelvi.com/api/partner/v1 - Auth
Authorization: Bearer mvk_<keyId>_<secret> - Envelope every 2xx is
{ "success": true, "payload": … } - Rate limits 600 requests per minute per key, 120 per minute per source IP,
sliding window,
429withRetry-After
One thing that will cost you a debugging hour if nobody tells you: the upload
endpoints live on https://modelvi.com/api, not under
/api/partner/v1. Prefixing the partner base URL there returns 404. Same key, different
prefix. It is written at the top of the upload section in skill.md for the same reason it
is written here.
A model is not an account
An agency owns models. A model is a creator. A platform-account is that creator on one platform, and one model usually has several. Content lives in the model's vault — captions, tags and media, reusable across platforms.
A schedule targets a model across one or more platforms at a moment in time. It is not per-account: you say this model, these platforms, this media, this time, and the engine fans it out. Agents that assume per-account scheduling write more code than they need to.
Getting a key
Keys are self-serve from the dashboard under API Keys → Create key. The scope is your own models and accounts. Whitelabel partners get a reseller-scoped key that covers their clients too.
➜ Connect your agent — copy the skill.md URL and mint a key.
➜ Read the skill file — the whole
spec, one page, no login.
Written against the live skill.md. If this page and that file ever disagree, the
file is right — it is the one your agent reads.