Connect your Ghost site
The first step for every tool — adding your site with a Ghost custom integration, which key to use, and what to do when a tool says there's no site to select.
Every tool here works on a site you've added to your dashboard, and a site is your Ghost address plus a key that lets the tools read your content and set up their own webhooks. You do this once. After that, every tool you turn on uses the same connection.
Do it before anything else. Opening a tool before you've added a site asks you to select one, and there's nothing there to select.
Add your site
- Sign in. Go to tools.spectralwebservices.com and enter your email. You'll get a magic link, the same way Ghost signs you in. Click it and you're in.
- Make a custom integration in Ghost. In Ghost admin, open Settings → Integrations, choose the Custom tab, and click Add custom integration. Call it Spectral Web Services — one integration covers every tool here — and save. Ghost now shows you an Admin API key and an API URL.
- Add the site. Back in the dashboard, click Add site. Give it a name for your own use, paste the API URL from Ghost into Ghost URL, and paste the Admin API key into Ghost Access Token. Copy and paste rather than typing: both are long and a single wrong character reads as a bad key.
- Click Add site. The dashboard checks the credentials against Ghost as you go, so you'll know before you save whether they work.
- Set the timezone. Open Site settings and set Default timezone to the one your newsroom works in. It decides what hour your scheduled work actually happens at, so getting it right now saves finding out when a newsletter goes out at three in the morning.
That's the whole connection. Every tool page now offers your site, and each one's own setup starts from there.
Which key, and why
Paste the Admin API key. It's the one with a colon in the middle, two long strings joined — 64abc123…:d4e5f6….
Tools need an admin key for two reasons. They register their own webhooks on your Ghost site, which is where the ongoing work happens — a post you publish reaches your search index or your Apple News channel without you doing anything — and webhooks live behind the Admin API. And they read your content: posts, pages, tags, members, whichever the tool is about.
The field is marked optional because a few tools don't need Ghost at all. If a tool asks for a Ghost connection and doesn't have one, it will tell you.
One integration covers everything. Every tool here reaches Ghost through the single key stored on your site, so there's no second integration to make when you turn on a second tool.
To change the key, paste the new one over the old and save. To cut off access entirely, delete the integration in Ghost — that stops every tool at once, which is the point.
Read-only access
If you only want a tool to read your content and make drafts — never to publish, edit or delete — you can use a staff access token from a contributor account instead: in Ghost, open that staff member's profile and copy the token there. Ghost limits it to what a contributor can do.
The trade is that a contributor token can't create webhooks, so anything that keeps itself in sync won't. Advanced Search, Apple News and the Image Library all need a full Admin API key to work the way they're meant to.
Timezone
Site settings → Default timezone is what every scheduled thing on your site runs by: the hour a newsletter digest is built, the daily pass of your email automations, and the times events are read at on a Haunts calendar. Set it to the timezone your newsroom works in, not the one you happen to be in.
It's about when things run, not how they're displayed — readers always see times in their own device's timezone. So a site set to the wrong zone still works perfectly; it just does everything at the wrong hour, which is easy to miss for a while and annoying to trace.
When it doesn't work
A tool asks me to select a site and the list is empty
No site has been added yet, or the site you added belongs to a different account than the one you're signed in with. Add the site first; the tool pages fill in once one exists.
The key is rejected
Three things account for nearly all of it. Check that the key has a colon in it — no colon means you copied the Content API key. Check that the Ghost URL is the address Ghost shows as the API URL, with nothing after the domain. And check for a space picked up at either end while copying.
A tool says it can't set up its webhooks
The saved key isn't a full Admin API key — usually a contributor staff token, which Ghost doesn't allow to create webhooks. Make a custom integration as above and paste its Admin API key over the old one.
Something scheduled happens at the wrong time
Check Default timezone in Site settings. The hour you pick for a newsletter digest or a daily automation run is read in that zone, so a site left on a zone you don't work in does everything at an offset.
I deleted the integration in Ghost
Everything using that key stops, including webhooks already registered. Make a new custom integration and paste its Admin API key into the site, then re-run the setup step on each tool that was using it.