Skip to main content

Python client for the SEMPITE AI Search Visibility API — check whether ChatGPT, Google AI, Perplexity, Gemini, and Claude know your brand.

Project description

sempite-python

Python client for the SEMPITE AI Search Visibility API — check whether AI engines (ChatGPT, Google AI, Perplexity, Gemini, Claude) know your brand, and whether they cite your website.

Zero dependencies (standard library only). Python 3.8+.

Install

pip install sempite

Or just copy src/sempite/__init__.py into your project — it's one file.

Get a key

Free plan — 10 checks/month, no card:

from sempite import SempiteClient
SempiteClient.request_free_key("you@company.com")   # key arrives by email

or sign up at sempite.com/ai-search-visibility-api.

Quickstart

from sempite import SempiteClient

client = SempiteClient("sk_live_...")   # or set the SEMPITE_API_KEY env var

result = client.check("Acme Coffee Roasters", domain="acmecoffee.com")

print(result["visibility_score"])              # 0-100, share of engines that know the brand
for engine, r in result["engines"].items():
    print(f"{engine}: present={r.get('present')} cites_site={r.get('cites_site')}")
    # r["snippet"] holds the first 400 chars of the engine's actual answer

Custom prompt, market, engine subset

result = client.check(
    "Acme Coffee Roasters",
    domain="acmecoffee.com",
    market="uk",                          # us (default), es, mx, uk
    prompt="Best specialty coffee roasters in London?",
    engines=["chatgpt", "perplexity"],    # default: every engine your plan includes
)

Usage / quota

print(client.usage())
# {'plan': 'starter', 'month': '2026-07', 'checks_used': 12,
#  'checks_quota': 250, 'checks_remaining': 238}

Engines & plans

Engine Key Free Starter / Pro
Google AI Mode google_ai
ChatGPT chatgpt
Perplexity perplexity
Gemini gemini
Claude claude

Free = 10 checks/month · Starter ($29/mo) = 250 · Pro ($99/mo) = 1,000. Rate limit: 10 requests/minute per key.

Errors

from sempite import SempiteClient, AuthError, QuotaError, RateLimitError, SempiteError

try:
    result = client.check("Acme")
except QuotaError as e:        # 402 — quota reached or engine needs a paid plan
    print(e, "→", e.upgrade_url)
except RateLimitError:         # 429 — slow down (10 req/min)
    ...
except AuthError:              # 401 — bad or revoked key
    ...
except SempiteError as e:      # anything else; e.status, e.payload
    ...

Response shape

{
  "brand": "Acme Coffee Roasters",
  "domain": "acmecoffee.com",
  "market": "us",
  "prompt": "Who is Acme Coffee Roasters?",
  "engines": {
    "google_ai": {"present": true, "cites_site": true, "snippet": "Acme Coffee Roasters is..."},
    "chatgpt":   {"present": true, "cites_site": false, "snippet": "..."}
  },
  "visibility_score": 100,
  "checks_used": 3,
  "checks_quota": 10,
  "plan": "free",
  "checked_at": "2026-07-19T15:04:05Z"
}

visibility_score = share of successfully-queried engines that recognized the brand (name present, no refusal). cites_site = the engine's answer mentioned your domain.

Links

API docs · Pricing · Free visibility check (no key) · AI Visibility Index — monthly research · SEMPITE

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sempite-0.1.0.tar.gz (5.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sempite-0.1.0-py3-none-any.whl (6.1 kB view details)

Uploaded Python 3

File details

Details for the file sempite-0.1.0.tar.gz.

File metadata

  • Download URL: sempite-0.1.0.tar.gz
  • Upload date:
  • Size: 5.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for sempite-0.1.0.tar.gz
Algorithm Hash digest
SHA256 6f25343f24ddc44ce2f11db3ceb9e9764e8ade7d3d10c1a709da6465fff19920
MD5 37e121ad703d4e11e156cb71bc61cc07
BLAKE2b-256 c5e63bfe6d1705606c21f8e6c2cd020fd891498e5e5eaf7040ba56f22f9cdbcd

See more details on using hashes here.

Provenance

The following attestation bundles were made for sempite-0.1.0.tar.gz:

Publisher: publish.yml on SEMPITEHQ/sempite-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sempite-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: sempite-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 6.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for sempite-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7a1dba8df75d7ad3ffc2c745b81b46c0bd8be5baa619bfcff68989a9bd18c883
MD5 e8ac4c884315c1841932a69a369d5823
BLAKE2b-256 052de5b14193686331b2670e75e9e12b21fe086cc62f70dc38438830794825fa

See more details on using hashes here.

Provenance

The following attestation bundles were made for sempite-0.1.0-py3-none-any.whl:

Publisher: publish.yml on SEMPITEHQ/sempite-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page