SDKs

Client libraries

TypeScript and Python models are generated from the spec, and a review test fails when they drift. Go keeps a route catalog checked against the route files. None of the SDKs is on a package registry yet, so install from source.

TypeScript

@pyrosync/sdk

Source: packages/sdk. Models generated into packages/sdk/src/generated/v1.ts.

pnpm add ./path/to/pyrosync/packages/sdk
import { PyroSyncClient } from '@pyrosync/sdk';
const client = new PyroSyncClient({ apiUrl: 'https://app.pyrosync.com', apiKey: process.env.PYROSYNC_API_KEY! });
const page = await client.v1.listTargets({ query: { limit: 25 } });

Python

pyrosync

Source: sdks/python. Models generated into sdks/python/pyrosync/generated.py.

pip install ./path/to/pyrosync/sdks/python
from pyrosync import PyroSyncClient
client = PyroSyncClient(api_url="https://app.pyrosync.com", api_key=os.environ["PYROSYNC_API_KEY"])
result = await client.scrape("https://example.com")

Go

github.com/Girard-Media/pyrosync/sdks/go

Source: sdks/go. Hand-written client.

go get github.com/Girard-Media/pyrosync/sdks/go
client, err := pyrosync.New("https://app.pyrosync.com", os.Getenv("PYROSYNC_API_KEY"))
result, err := client.Scrape(ctx, map[string]any{"url": "https://example.com"})

Rust

pyrosync

Source: sdks/rust. Hand-written client.

cargo add --path ./path/to/pyrosync/sdks/rust
let client = pyrosync::Client::new("https://app.pyrosync.com", std::env::var("PYROSYNC_API_KEY")?, pyrosync::StdTransport)?;
let body = client.scrape(&pyrosync::ScrapeRequest { url: "https://example.com".into() })?;

Java

com.pyrosync.PyroSyncClient

Source: sdks/java. Hand-written client.

Copy sdks/java/src into your build (no registry artifact yet).
PyroSyncClient client = new PyroSyncClient("https://app.pyrosync.com", System.getenv("PYROSYNC_API_KEY"));
String body = client.scrape(new PyroSyncClient.ScrapeRequest("https://example.com"));