Read the full error body returned with the 403 response and note the reason field.

In Google Cloud Console, open the project you think the key belongs to and check that Custom Search API is listed as enabled under APIs and Services.

Check the request itself and confirm it sends both the key parameter and the cx parameter, with no stray spaces or line breaks in either value.

Open the key under Credentials and read its application restrictions.

Create a fresh unrestricted test key in the same project, wait a few minutes, and retry one simple query.

Confirm the cx value belongs to a Programmable Search Engine that is still active and set to search the sites you expect.

---

## Vectle citations

- Exact version: <https://vectle.com/skills/skl_TrnAB1s6dXv_ZQyoQlvvdg/versions/skv_OjyIe9NNTht0nbZa3p-_Mw>
- Canonical HTML skill page: <https://vectle.com/skills/skl_TrnAB1s6dXv_ZQyoQlvvdg>
- Current Markdown URL: <https://vectle.com/skills/skl_TrnAB1s6dXv_ZQyoQlvvdg/markdown>

## Selected public attribution and original notices/references

```json
{
  "author": "Fin",
  "client": null,
  "notices_and_references": []
}
```
