Official Python SDK for the Synoppy web-data API — scrape, screenshot, crawl, map, extract, classify, enrich, and images.
Project description
synoppy (Python)
Give your AI agents the whole web. Synoppy is the web-data layer for AI agents — one key to read, crawl, map, extract, classify & enrich any site, plus screenshots and image scraping. Clean, structured, LLM-ready data, with no scraping stack to run.
Get a free key → · Docs · synoppy.com
pip install synoppy
Quickstart
import os
from synoppy import Synoppy
client = Synoppy(api_key=os.environ["SYNOPPY_API_KEY"])
# Read any URL → clean markdown (force JS rendering + settle delay)
page = client.read(
"https://stripe.com/blog",
formats=["markdown"],
render="auto",
wait_ms=500,
)
print(page["markdown"])
print(page["metadata"]["rendered"], page["metadata"]["bytesIn"])
# Screenshot a URL → PNG data URL
shot = client.screenshot("https://stripe.com", full_page=True)
print(shot["screenshot"][:40], shot["statusCode"])
# Crawl a site
site = client.crawl("https://example.com", limit=25)
print(site["count"], "of", site["discovered"], "pages")
# AI structured extraction (prompt, a.k.a. instruction)
result = client.extract("https://news.ycombinator.com", prompt="Return { title, summary, topics }")
print(result["data"], result["usage"])
# Brand intelligence — from a url, a domain, or a work email
brand = client.enrich(domain="linear.app")
print(brand["colors"], brand["fonts"], brand["socials"])
Credits
Every successful response includes creditsUsed (number) and
creditsRemaining (number or None) so you can track metered usage:
page = client.read("https://stripe.com")
print("used", page["creditsUsed"], "remaining", page["creditsRemaining"])
Methods
| Method | Endpoint | Notes |
|---|---|---|
read(url, formats=, only_main_content=, timeout_ms=, render=, wait_ms=) / scrape(...) |
POST /api/scrape |
render is True/False/"auto" |
screenshot(url, full_page=, wait_ms=, timeout_ms=) |
POST /api/screenshot |
returns a PNG data URL; can 503 RENDER_UNAVAILABLE |
crawl(url, limit=) |
POST /api/crawl |
limit 1–25 · requires a key |
map(url) / sitemap(url) |
POST /api/map |
|
extract(url, prompt=, instruction=) |
POST /api/extract |
instruction aliases prompt · AI · requires a key |
classify(url, labels=) |
POST /api/classify |
NAICS/SIC by default, or your own labels · AI · requires a key |
enrich(url=, domain=, email=) / brand(...) |
POST /api/brand |
pass one of url / domain / work email |
images(url) |
POST /api/images |
Every response also carries creditsUsed and creditsRemaining.
act() is coming soon — /api/act is not live yet, and calling this
method raises NotImplementedError.
Errors
from synoppy import SynoppyError
try:
client.crawl("https://example.com")
except SynoppyError as err:
print(err.code, err.status, err)
MIT licensed.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file synoppy-1.1.0.tar.gz.
File metadata
- Download URL: synoppy-1.1.0.tar.gz
- Upload date:
- Size: 5.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7b7eeebfbb3db6f7b99b93cd6d1162d5ff99279488db79d9c01681e606ef1332
|
|
| MD5 |
a457d65a68e25cc4420424a80be3ad23
|
|
| BLAKE2b-256 |
6cdcb62ac8b912de3f1cc9229416518086167a1349a9f75fe74918ab6e1a5e8d
|
File details
Details for the file synoppy-1.1.0-py3-none-any.whl.
File metadata
- Download URL: synoppy-1.1.0-py3-none-any.whl
- Upload date:
- Size: 6.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3c845005e2b30c21483b1e3560edb717c62fe6e244f1eab74cbdb4d8345aebaf
|
|
| MD5 |
9ed94b5670f511f7225b4cb2a559562f
|
|
| BLAKE2b-256 |
445396b56d28886c703c8b40e8aff4399ace0bed96e8a813e3532286ed0f976d
|