Wix API access for Nina
Nina writes your blog posts, sources the images, and publishes them into your Wix Blog. This page is the exact setup for the credential that makes that possible. It takes about ten minutes, and there is one requirement about who creates it that is worth reading before you start.
Who has to do this
Only the Wix account owner or a co-owner can create an API key. Not a site contributor, not a blog editor, not an admin who was added to the site. If your day-to-day Wix person is a contributor, they will open the API Keys screen and find they cannot generate anything. This is a Wix rule with no way around it, so route this to whoever owns the Wix account before anyone spends time on it.
Where there is a choice, have the owner generate it rather than a co-owner. Wix’s own troubleshooting notes that site-level calls work with keys from the account that owns the site, and a co-owner key can occasionally be refused for reasons that are hard to diagnose from the outside.
Two smaller prerequisites while you are checking:
- Your site needs Wix Blog installed, which it will have if you already publish posts through the Wix dashboard.
- Whoever creates the key will need access to the account’s email, because Wix sends a six-digit code partway through and will not issue the key without it.
What Nina needs, and why
Wix grants API access as named permissions you tick when creating the key. Nina needs four, and here they are in full.
Manage BlogRead BlogManage Media ManagerManage Ricos Document| Permission | Why Nina needs it |
|---|---|
| Manage Blog | The core of the job. Creating the post, updating it, and publishing it. |
| Read Blog | To read your published posts so each new one links into the ones already earning traffic, and to resolve your existing categories and tags. |
| Manage Media Manager | Every post ships with a licensed image, and on Wix images must be brought into your Media Manager before a post can use them. External image links do not work. |
| Manage Ricos Document | Wix stores posts in its own rich content format rather than HTML. This permission lets us use Wix’s official converter so your posts arrive correctly formatted. See section 6. |
What these permissions cannot reach. Your store, orders, payments, bookings, contacts, marketing email and site settings. Each of those is a separate permission group in the same picker, so you can see exactly what we did and did not ask for.
Pick a permission level
Nina publishes
Draft created and published in one step
Nina drafts, imports the images, and publishes on the agreed schedule. You review in your own Wix dashboard whenever you want.
- Nothing waits on your inbox
- Posts go live on the dates in your plan
- We can refresh ranking posts in place
Nina drafts, you publish
Left in your Drafts
Every post arrives in your Wix Blog drafts with images imported and metadata filled in. Nothing is public until someone on your team publishes it.
- Final say stays with your team
- Useful for regulated or legal-review content
- Publishing stalls when your team is busy
One Wix-specific note on scheduling. Wix’s dashboard can schedule a post for a future date, but its API cannot. If your plan includes scheduled publishing, Nina holds the post and publishes it on the agreed date from our side instead. The result is identical to you; we mention it only so nobody goes looking for a schedule setting in Wix that will not be there.
Create the API key
Open the API Keys manager
The direct address is manage.wix.com/account/api-keys. Note this is your Wix account area, not the dashboard of an individual site.
Generate the key with five permissions
Click Generate API Key and name it Nina Publishing. Then tick the four permissions from section 2. A basic permission that returns site IDs is pre-selected and cannot be unticked; that is normal.
Restrict the key to one site while you are here. Wix lets a key reach every site in your account by default. Choose Specific sites and select only the site Nina publishes to. It costs you one click and means the credential cannot touch anything else you own.
Confirm by email
Click Generate Key, then Send Code. Wix sends a six-digit code to the account, normally by email, though some accounts receive it by SMS instead. Enter it, click Verify & Generate Key, then Copy Token & Close.
Wix shows the key once. There is no way to view it again after you close that dialog. If you lose it, rotate the key and send us the new one; that takes two minutes.
Send us three things
- The API key
- Your Site ID, which is the part of your dashboard URL immediately after
/dashboard/ - The name of the site member the posts should be attributed to
On the byline. Wix Blog lets you add a managed writer, a named author profile that can be credited on posts without being given any access to your site and without posting themselves. That is the cleanest way to put your brand’s byline on Nina’s posts without creating a real user account. Add one under your blog’s writer settings and tell us the name.
Verify it works before you send it
Optional, but it confirms the key, the site ID and the permissions in one call.
curl -i -X GET \
'https://www.wixapis.com/blog/v3/categories?paging.limit=1' \
-H 'Authorization: YOUR_API_KEY' \
-H 'wix-site-id: YOUR_SITE_ID' \
-H 'Content-Type: application/json'A 200 with a categories array means everything is correct.
Note the header is just the key, with no Bearer in front of it. Wix is unusual here, and pasting Bearer in out of habit is the most common reason this command fails for people who have used other APIs.
| Response | What it means |
|---|---|
| 401 | The key is wrong, or was rotated. |
| 403 | One of three things: a permission was not ticked, the key was restricted to other sites, or the key was generated from a different Wix account than the one that owns this site. |
What Nina actually calls
Published here so your developer or security reviewer can see the whole surface without asking.
| Endpoint | Method | When |
|---|---|---|
/blog/v3/categories, /blog/v3/tags/query | GET, POST | To resolve your existing categories and tags |
/blog/v3/posts | GET | To read your published posts for internal linking |
/site-media/v1/files/import | POST | To bring each post image into your Media Manager |
/ricos/v1/ricos-document/convert/to-ricos | POST | To convert the finished article into Wix’s content format |
/blog/v3/draft-posts | POST, PATCH | To create the post, and to update it later |
/blog/v3/draft-posts/<id>/publish | POST | To take the post live |
/members/v1/members/query | POST | Once, to resolve your chosen author |
Why Wix takes an extra step, and why it matters to you
Most platforms store a blog post as HTML. Wix does not. It stores posts in its own structured format, and there is no field anywhere on a Wix post that accepts raw HTML. Any integration that claims otherwise is either using an embed block, which does not count as real text for SEO, or it is about to produce a mangled post.
Nina uses Wix’s own official conversion endpoint, which is why Manage Ricos Document is on the permission list. Your finished article goes through Wix’s converter before it is written, so headings stay headings, lists stay lists, and links stay links.
What this means in practice. Wix does not publish a guarantee of exactly which formatting survives conversion, so we check the first post on your site by eye before starting a schedule. If something does not carry across cleanly, we adjust our formatting to suit Wix rather than leave you with posts that look wrong.
Images
On Wix, images live in your Media Manager and posts reference them from there rather than from an outside URL. Nina imports every image into your library first, so all post imagery is served from your own Wix media with alt text set.
Wix notes that an imported file is not usable the instant the import call returns, so we wait for each image to be ready before writing the post that uses it. That is why a Wix post takes a few seconds longer to appear than on other platforms, and it is deliberate rather than a delay you need to chase.
Troubleshooting
You are signed in as a contributor rather than the account owner or a co-owner. Wix restricts key creation to owners only. Whoever owns the Wix account needs to do this step.
Three causes, in order of likelihood. A permission was not ticked when the key was generated, and permissions cannot be added afterwards without editing the key. The key was scoped to specific sites and this site was not among them. Or the key came from a different Wix account than the one that owns the site, which never works regardless of permissions.
Check the Authorization header does not have Bearer in front of the key. Wix expects the raw key on its own, unlike almost every other API.
Wix requires posts created through the API to carry a valid site member. If the member we were given has been removed or renamed, posts will fail or fall back. Tell us the name of the member or Managed writer you want credited and we will re-resolve it.
Wix silently ignores category assignments for categories that do not exist, rather than returning an error. Nina reads your live category list before every post specifically because of this, but if you rename or delete a category mid-schedule, tell us so we can re-map it.
First check your Wix Blog drafts. A post created but not published sits there and looks identical to a bug. If it shows as published in Wix but not on the site, that is usually caching rather than the API; check in a private window before raising it.
Stuck? Send tech@trynina.co the failing response and your Site ID. Never send the API key in that thread.
Security, auditing, and revoking
How to check what we have been doing
- Your Wix Blog dashboard lists every post, draft and published, with its author and date.
- Your Media Manager shows every image the integration has imported.
- The API Keys screen shows the key, its permissions and which sites it can reach.
How to revoke, two ways
| Action | Effect |
|---|---|
| Rotate | Issues a new token under the same name and permissions and kills the old one immediately. Reversible: send us the new key and we are back. |
| Delete | Permanent. Access stops at once. |
Both require the same six-digit email confirmation as creating the key, and both are irreversible in the sense that the old token can never be recovered. Your posts and images stay exactly where they are.
What Nina will never do with this key
- Read or export contacts, orders, bookings or payments
- Change your store, products or pricing
- Edit your site design, pages or settings
- Send marketing email on your behalf
- Delete or unpublish a post your team wrote
Wix’s permission model blocks the first four outright, and you can confirm that yourself on the key’s own screen. The last one is a commitment, and it is in your services agreement.
Send us this and you are done
Email tech@trynina.co with:
- The API keyPassword manager share link preferred
- Your Site IDThe part of your dashboard URL after /dashboard/
- The author bylineThe site member or Managed writer to credit
Not the right stack?
Nina publishes into WordPress, Shopify, Webflow, HubSpot and GoHighLevel as well. Same idea, different credential.
