> ## Documentation Index
> Fetch the complete documentation index at: https://docs.instantschema.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Integration not detected

> Why the dashboard shows "not detected" and how to fix it

# Integration not detected

If your integration panel still shows **Not detected** after you've deployed, this page explains why and how to resolve it.

## How detection works

There are three detection paths depending on your integration method:

**1. Scan (homepage crawl)**
The next time InstantSchema scans your site, it runs `detectIntegration` against your homepage's raw HTML. No JavaScript is executed — it looks for specific signatures in the source:

* CDN script: `/v1/loader.js` + `data-project-id="YOUR_PROJECT_ID"` in a script tag
* Inline script: fetch URL `/api/v1/structured-data?project=YOUR_PROJECT_ID` in the page source
* SDK / npm: `data-instantschema="1"` on a `<script type="application/ld+json">` tag

**2. Dashboard poll (live check)**
While your integration is unconfirmed, the dashboard fetches your live homepage every 8 seconds and runs the same detection logic. Detection is usually near-instant once you deploy — you don't need to wait for the next scheduled scan.

**3. GTM and custom API — manual only**
GTM injects scripts at runtime, and custom API schemas are only distinguishable if you add `data-instantschema="1"` to your rendered tags. Without that marker, these methods cannot be detected automatically. Use the **Mark as active** button in the integration panel.

## Common causes

### Tag or snippet is not on the homepage

Detection runs against your homepage (`/`). If you only added the script tag to inner pages, the dashboard won't detect it. Add the tag to a layout or template that renders on every page, including the root.

### Wrong project ID

Check that `data-project-id` (CDN) or the `project=` query parameter (inline script) exactly matches the Project ID shown in your dashboard. UUIDs are case-sensitive.

### Code not deployed yet

The poll hits your live site, not localhost. Make sure your changes are deployed before checking the dashboard.

### Detection ran before deploy completed

If the poll fired during a rolling deploy, it may have hit an instance that hadn't restarted yet. Wait a few seconds and refresh the dashboard — the poll will retry automatically.

### Using GTM or custom API without a marker

Neither GTM nor unmarked custom API schemas can be detected from the HTML source. Use **Mark as active** in the integration panel after you've verified the integration is live.

## Step-by-step resolution

1. Open your live homepage in a browser and view the page source (`Ctrl+U` / `Cmd+Option+U`).
2. Search for your Project ID. If it's not there, the tag hasn't been deployed or is on the wrong template.
3. Check the exact attribute name: `data-project-id` for CDN, `project=` in the fetch URL for inline script, `data-instantschema="1"` on the schema tag for SDK.
4. If everything looks correct in source, wait 10–15 seconds and check the dashboard again — the poll will detect it on the next cycle.
5. For GTM or custom API: click **Mark as active** in the integration panel once you've confirmed the integration is running.

## Resetting detection

If you've switched integration methods or removed the integration, click **Disable** in the integration panel. This resets the status so detection runs again from scratch.
