IndexerNow

Setup

How to add a service account as Owner in Search Console

updated 2026-05-28
The symptom

The Indexing API won't accept requests until its service account is an Owner of your property.

TL;DR — the fix

Create a service account in Google Cloud, copy its client_email, then in Search Console go to Settings → Users and permissions → Add user, paste the email, and set the permission to Owner. That single grant is what authorizes every Indexing API request for that property.

The Indexing API authenticates as a service account, and Google will only accept its requests for a property the service account verifiably owns. Adding it as an Owner is the one setup step that everything else depends on — get this right and the 403/permission-denied errors never appear.

Step 1 — Create the service account (if you don't have one)

  1. Go to Google Cloud Console → IAM & Admin → Service Accounts, and pick or create a project.
  2. Create a service account (any name) — you don't need to grant it any project roles for the Indexing API.
  3. Open the account → Keys → Add key → JSON. Download and keep this key file safe; it's the credential that signs API requests.
  4. While you're in Cloud Console, enable the Indexing API for the project under APIs & Services → Library.

Step 2 — Find the service account email

It looks like [email protected]. You'll find it on the service account's detail page, or in the JSON key file under the "client_email" field. This email — not your personal Google email — is what you add to Search Console.

Step 3 — Add it as Owner in Search Console

  1. Open Search Console and select the property whose URLs you'll submit.
  2. Settings (left sidebar) → Users and permissions.
  3. Click 'Add user'. Paste the service account email.
  4. Set Permission to Owner — this is mandatory; Full or Restricted will fail with a 403.
  5. Save. The grant is usually effective within a minute or two.
Use a Domain property if you can

Adding the service account to a single DNS-verified Domain property covers every subdomain and both http/https in one grant — far less fiddly than juggling multiple URL-prefix properties.

Verify it worked

  • The service account email now shows as Owner under Users and permissions.
  • A test publish request to the Indexing API returns 200 with a notifyTime, not a 403.
  • If it still 403s, confirm the property type matches the URL and that the Indexing API is enabled in the right project.

IndexerNow runs on your own Google account, your own Cloud project, and your own quota — we never pool submissions through a shared account. Connect your GSC and push the URL through Google's Indexing API in two clicks.

Connect your own GSC and index now

Frequently asked

Why does it have to be Owner and not Full?

The Indexing API requires the service account to be a verified Owner of the property. Full and Restricted users can view Search Console data but cannot authorize Indexing API requests — those return a 403.

Is it safe to give a service account Owner access?

Owner in Search Console controls property settings and user management, not your Google account. Keep the JSON key private (it's the real secret), and you can revoke the service account's access at any time from Users and permissions.

Can I add the same service account to several properties?

Yes — repeat the Add user → Owner step on each property, or use one Domain property to cover all subdomains and protocols at once.

Related fixes