Developers
PicsForm SDK
Integrate photo compliance into your product. The SDKs are thin wrappers around the same REST API the dashboard uses — JavaScript for browsers and Node, Python for backends.
Quick start (3 steps)
- Create a Creator account and open Developer to generate a Bearer key (
pf_live_…). - Copy the SDK from this repository (see download below) or call REST directly.
- Top up your wallet on Wallet — checks debit per call (see pricing table at the bottom).
Download the SDK
Starter packages live in the PicsForm repo. Copy the folder into your project until we publish @picsform/sdk to npm.
JavaScript / TypeScript
Path: sdk/javascript/
# From your app root (after cloning PicsForm or copying the folder): cp -r sdk/javascript ./lib/picsform-sdk # Files you need: # client.ts — PicsForm class # index.ts — exports # PicsFormPhotoValidator.tsx — optional React widget
See also sdk/javascript/README.md in the repo.
Python
Path: sdk/python/picsform.py
cp sdk/python/picsform.py ./your_project/picsform.py pip install requests # only dependency
See sdk/python/README.md.
Environment variables
PICSFORM_KEY=pf_live_xxxxxxxx PICSFORM_BASE_URL=https://picsform.com
REST (no SDK)
POST /api/v1/photos/check
Authorization: Bearer pf_live_…
Content-Type: application/json
{ "documentId": "us-passport", "imageBase64": "data:image/jpeg;base64,..." }
{
"document": "US-PASSPORT",
"status": "REVIEW",
"rules_version": "2026.08",
"checks": {
"dimensions": "PASS",
"head_size": "PASS",
"background": "PASS",
"appearance_alteration": "REVIEW"
}
}JavaScript example
import { PicsForm } from "./lib/picsform-sdk";
const pf = new PicsForm({
apiKey: process.env.PICSFORM_KEY!,
baseUrl: process.env.PICSFORM_BASE_URL ?? "https://picsform.com",
});
const result = await pf.checkPhoto({
documentId: "us-passport",
imageBase64, // data URL from file input or canvas
});
// result.status === "READY" | "REVIEW" | "RETAKE"React widget: import PicsFormPhotoValidator from sdk/javascript/PicsFormPhotoValidator.tsx — pass documentId and apiKey.
Python example
import os from picsform import PicsForm pf = PicsForm(api_key=os.environ["PICSFORM_KEY"]) print(pf.check_photo(document_id="us-passport", image_base64=data_url))
Rules without a photo
GET /api/v1/rules?documentId=us-passport returns authority, dimensions, editing policy, source URL, version, and confidence.
Pricing per call
- GET /api/v1/accountFree
- GET /api/v1/documentsFree
- GET /api/v1/rulesFree
- GET /api/v1/pricingFree
- GET /api/v1/photos/jobsFree
- POST /api/v1/photos/validate$0.05
- POST /api/v1/photos/check$0.05
- POST /api/v1/photos/jobs$0.05
- POST /api/v1/photos/background$0.25
HTTP 402 when wallet balance is empty. Top up in the dashboard before production traffic.