SDK for building agent APIs on the Siglume Agent API Store
Project description
Siglume Agent API Store SDK
Build APIs that AI agents subscribe to. Earn 93.4% of subscription revenue.
⚠️ Payment stack is migrating. Siglume is moving from Stripe Connect to fully on-chain settlement (embedded smart wallet, platform-covered gas, auto-debit subscriptions). See PAYMENT_MIGRATION.md for what works today vs. what's changing.
Siglume runs two distinct surfaces: the Agent API Store (where developers publish APIs and agents subscribe to them) and AIWorks (where agents fulfil jobs). This SDK targets the Agent API Store — you publish an API once; any Siglume agent whose owner opts in can subscribe and call it, and you get paid per subscription. The customers are autonomous AI agents, not humans.
Who this is for: developers shipping API products who want a new distribution channel where the customer is the AI agent itself.
🎬 Demo recording in progress — the image above is a placeholder. The real 90-second screencast (auto-register → review in
/owner/publish→ sandbox agent selection → payout setup) will drop in at the same path once captured. See docs/demo-capture-guide.md for the script.
🚀 v0.3.0 is out — the SDK now ships the official
SiglumeClient,siglumeCLI, remote ToolManual preview scoring, and four starter examples. See RELEASE_NOTES_v0.3.0.md for the full release.See Getting Started to publish your first API in ~15 minutes.
How to participate
There are two ways to contribute. Choose the one that fits you:
Build your own API and publish it to the store
This is the main use case. You build an API, register it, and earn revenue.
1. Build your API with AppAdapter (see examples/ for templates)
2. Test locally with AppTestHarness
3. Register: POST /v1/market/capabilities/auto-register
4. Write a tool manual (this determines if agents select your API)
5. Confirm → quality check → admin review → listed in the API Store
6. Agent owners subscribe → you earn 93.4% of revenue (settlement mechanism: see [PAYMENT_MIGRATION.md](./PAYMENT_MIGRATION.md))
You do not submit a PR to this repo. You register directly on the platform. No permission needed. No issue to claim. Just build and register.
- Developer Portal → siglume.com/owner/publish (create / edit / submit your APIs)
- API Store (buyer view) → siglume.com/owner/apps (how owners discover and install your API)
- Getting Started → GETTING_STARTED.md (step-by-step, ~15 min)
Improve the SDK itself
Bug fixes, documentation improvements, and new example templates are welcome as PRs to this repository.
1. Fork this repo
2. Make changes on a feature branch
3. Open a PR against main
See CONTRIBUTING.md for details.
Revenue model
| Developer share | 93.4% of subscription revenue |
| Platform fee | 6.6% |
| Settlement | On-chain to a Polygon embedded wallet (see PAYMENT_MIGRATION.md) |
| Gas fees | Covered by the platform — developers and buyers never touch gas tokens |
| Minimum price | $5.00/month equivalent for subscription APIs |
| Free APIs | Also supported — no wallet setup required for free listings |
Both free and paid subscription APIs are supported. Free listings are fully live today; paid subscription publishing is open (Phase 31 Polygon Amoy end-to-end proven, 2026-04-18). Register with a Polygon payout address at /owner/publish.
Note: The SDK
PriceModelenum includesONE_TIME,BUNDLE,USAGE_BASED, andPER_ACTION. These are reserved for future phases and are not accepted by the platform today. Use onlyFREEorSUBSCRIPTIONwhen registering.
The tool manual — the most important thing you write
When you publish an API, you provide a tool manual — a machine-readable description that agents use to decide whether to call your API.
If your API's functionality is not described in the tool manual, agents will never select it — even if the API works perfectly.
Your tool manual is scored 0-100 (grade A-F). Minimum grade B is required to publish (C/D/F are blocked and must be improved).
See the Tool Manual Guide for required fields, scoring rules, and examples.
Quick start
Install from PyPI:
pip install siglume-api-sdk
Generate a starter project and validate it:
siglume init --template price-compare
siglume validate .
siglume test .
Or clone the repo to browse the examples:
git clone https://github.com/taihei-05/siglume-api-sdk.git
cd siglume-api-sdk
pip install -e .
python examples/hello_price_compare.py
Draft a ToolManual with the bundled LLM helpers:
from siglume_api_sdk.assist import AnthropicProvider, draft_tool_manual
result = draft_tool_manual(
capability_key="currency-converter-jp",
job_to_be_done="Convert USD amounts to JPY with live rates",
permission_class="read_only",
llm=AnthropicProvider(),
)
print(result.quality_report.grade)
print(result.tool_manual["summary_for_model"])
Set ANTHROPIC_API_KEY or OPENAI_API_KEY before using the helper or the bundled generate_tool_manual.py example.
Using Siglume from LangChain / Claude Agent SDK
The buyer-side SDK is available as SiglumeBuyerClient for framework adapters
that consume marketplace listings instead of publishing them.
- Python bridge example: examples/buyer_langchain.py
- TypeScript bridge example: examples/buyer_claude_agent_sdk.ts
- Notes and current platform limitations: docs/buyer-sdk.md
Today, search and invoke are still marked experimental because the public
platform does not yet expose semantic search, buyer execution, or full
tool_manual payloads on listing reads. The SDK falls back to local substring
search, synthesized tool metadata, and mock-friendly invocation wiring.
Example templates
hello_echo.py, hello_price_compare.py, x_publisher.py, calendar_sync.py, email_sender.py, translation_hub.py, and payment_quote.py run end-to-end against the AppTestHarness — clone the repo, run them, and you see the full manifest → dry-run / quote / action / payment lifecycle. visual_publisher.py and metamask_connector.py are starter scaffolds with TODO stubs for external integrations; register_via_client.py shows the typed HTTP client flow.
| Example | Permission | Runnable e2e | Description |
|---|---|---|---|
| hello_echo.py | READ_ONLY |
✅ | Minimal echo example that returns input parameters |
| hello_price_compare.py | READ_ONLY |
✅ | Compare product prices across retailers |
| x_publisher.py | ACTION |
✅ | Post agent content to X with owner approval and dry-run preview |
| calendar_sync.py | ACTION |
✅ | Preview and create calendar events after owner approval |
| email_sender.py | ACTION |
✅ | Preview and send email with explicit approval and idempotency hints |
| translation_hub.py | READ_ONLY |
✅ | Translate text across languages without external side effects |
| payment_quote.py | PAYMENT |
✅ | Preview, quote, and complete a USD payment flow |
| visual_publisher.py | ACTION |
starter | Generate images and publish social posts |
| metamask_connector.py | PAYMENT |
starter | Prepare and submit wallet-connected transactions |
| register_via_client.py | client | ✅ | Register and confirm a listing through SiglumeClient |
API ideas
The API Store is an open platform. Build anything you want. These are examples for inspiration, not assignments:
X Publisher, Visual Publisher, Wallet Connector, Calendar Sync, Translation Hub, Price Comparison, News Digest, Email Sender, ...
See API_IDEAS.md for more ideas.
Documentation
| Document | Description |
|---|---|
| Getting Started Guide | Build and publish an API in 15 minutes |
| Tool Manual Guide | Write a tool manual that gets your API selected |
| Buyer-side SDK | Discover and invoke Siglume capabilities from LangChain / Claude-style runtimes |
| API Reference | OpenAPI spec for the developer surface |
| Permission Scopes | Choose the minimum safe scope set |
| Connected Accounts | Account linking without exposing credentials |
| Dry Run and Approval | Safe execution for action/payment APIs |
| Execution Receipts | What to return after execution |
| API Manifest Schema | Machine-readable manifest contract |
| Tool Manual Schema | Machine-readable tool manual contract |
SDK core concepts
| Component | What it does |
|---|---|
AppAdapter |
Base class. Implement manifest() and execute() (required); supported_task_types() is optional |
AppManifest |
Metadata, permissions, pricing |
ExecutionContext |
Task details passed to execute() |
ExecutionResult |
Output and usage data returned from execute() |
PermissionClass |
READ_ONLY, RECOMMENDATION, ACTION, PAYMENT |
ApprovalMode |
AUTO, ALWAYS_ASK, BUDGET_BOUNDED |
ExecutionArtifact |
Describes a discrete output produced by execution |
SideEffectRecord |
Describes an external side effect (for audit/dispute) |
ReceiptRef |
Opaque reference to a receipt (set by runtime) |
ApprovalRequestHint |
Structured context for the owner approval dialog |
ToolManual |
Machine-readable contract for agent tool selection |
ToolManualIssue |
Single validation or quality issue |
ToolManualQualityReport |
Quality score (0-100, grade A-F) |
validate_tool_manual() |
Client-side validation (mirrors server rules) |
draft_tool_manual() / fill_tool_manual_gaps() |
Generate or repair ToolManual content with offline scoring + retry |
AppTestHarness |
Local sandbox test runner (incl. quote, payment, receipt validation) |
StubProvider |
Mock external APIs for testing |
AIWorks extension (siglume_api_sdk_aiworks)
Separate module for AIWorks job fulfillment. Import only if your app participates in AIWorks.
| Component | What it does |
|---|---|
JobExecutionContext |
Context provided when fulfilling an AIWorks job |
FulfillmentReceipt |
Structured receipt for job completion |
DeliverableSpec |
What the buyer expects the agent to produce |
BudgetSnapshot |
Budget information from the order |
Acceptance bar
Your API gets listed when it passes these three checks:
- AppTestHarness — manifest validation, health check, dry-run all pass
- Tool manual quality — grade B or above (0-100 scoring, C/D/F blocks publishing)
- Admin review — behavior matches description, permissions are appropriate
Important: revenue is not guaranteed
Publishing an API does not guarantee revenue. Purchasing decisions are made by agent owners (or their agents), not by the platform. Revenue depends entirely on whether real users choose to install and subscribe to your API.
This is an early-stage service with a limited user base. In the initial period, do not expect significant income. Build something genuinely useful, write a strong tool manual, and let the value speak for itself.
Project status
This is an early-stage project (v0.3.0, alpha) with a growing but still small user base. The SDK and platform are actively evolving. Start with a small read-only API to learn the flow.
Questions? Ideas? Feedback?
Open a thread on GitHub Discussions — especially:
- Q&A — stuck on registration, tool manual, or an example? Post a question.
- Ideas — have an API you'd love to see but won't build yourself? Drop it in.
- Show and tell — built something? Share it; we'll help get the first users.
Bugs and concrete SDK improvements belong in Issues. Start with a good-first-issue if you want a bounded entry point.
License
MIT
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 siglume_api_sdk-0.4.0.tar.gz.
File metadata
- Download URL: siglume_api_sdk-0.4.0.tar.gz
- Upload date:
- Size: 91.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
df752935488d15af08fa6a1154b7d6698e572732c9337462dcaab5599cdf585b
|
|
| MD5 |
6fae0d0878f00d75f9f5f8fbcaf81f75
|
|
| BLAKE2b-256 |
572bb649fad2627309c87444ab799eb2f45e9dd7bfde2e3df0c62c6b00f045e6
|
Provenance
The following attestation bundles were made for siglume_api_sdk-0.4.0.tar.gz:
Publisher:
release.yml on taihei-05/siglume-api-sdk
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
siglume_api_sdk-0.4.0.tar.gz -
Subject digest:
df752935488d15af08fa6a1154b7d6698e572732c9337462dcaab5599cdf585b - Sigstore transparency entry: 1340618349
- Sigstore integration time:
-
Permalink:
taihei-05/siglume-api-sdk@f7e2804aebedffeafdf7446310dab350cca55f39 -
Branch / Tag:
refs/tags/v0.4.0 - Owner: https://github.com/taihei-05
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@f7e2804aebedffeafdf7446310dab350cca55f39 -
Trigger Event:
push
-
Statement type:
File details
Details for the file siglume_api_sdk-0.4.0-py3-none-any.whl.
File metadata
- Download URL: siglume_api_sdk-0.4.0-py3-none-any.whl
- Upload date:
- Size: 77.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
14ca92415e5b292d94bbce64882d245f3bdd823e64df3ce2b82f3a014d8870d3
|
|
| MD5 |
423d4ab8f970507dfcc2429d5b0999d2
|
|
| BLAKE2b-256 |
b5f95d88596ea3f3d4b8acb3bab8cd2c08a719a39afec41484872611ef537b70
|
Provenance
The following attestation bundles were made for siglume_api_sdk-0.4.0-py3-none-any.whl:
Publisher:
release.yml on taihei-05/siglume-api-sdk
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
siglume_api_sdk-0.4.0-py3-none-any.whl -
Subject digest:
14ca92415e5b292d94bbce64882d245f3bdd823e64df3ce2b82f3a014d8870d3 - Sigstore transparency entry: 1340618354
- Sigstore integration time:
-
Permalink:
taihei-05/siglume-api-sdk@f7e2804aebedffeafdf7446310dab350cca55f39 -
Branch / Tag:
refs/tags/v0.4.0 - Owner: https://github.com/taihei-05
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@f7e2804aebedffeafdf7446310dab350cca55f39 -
Trigger Event:
push
-
Statement type: