Documentation
Registering Your Own Tools
Anyone with a signed-in account can add their own API to Sigma Domain. You do not need to email us, and you do not need us to run anything for you.
A "tool" here is a declarative API-call definition — a name, an endpoint, a method, its parameters and how it authenticates. The assistant calls that endpoint on your behalf when a conversation needs it. It does not run code you upload. If your service is reachable over HTTPS and you can describe its endpoints, it can be a tool.
The fastest path: Quick Add
- Open a chat and click Toolkit in the input toolbar.
- In the AI Toolkit panel, click + Add Tool.
- Paste any one of these into the box:
- an OpenAPI / Swagger spec (JSON or YAML)
- code with JSDoc comments
- a plain-English description of the endpoint
- Click parse. The assistant extracts the name, description, endpoint, method, parameters, categories and auth type, and shows them for review.
- Correct anything it got wrong, then Save.
The tool is live immediately — there is no review queue. It is attributed to your account as the author, so you can find it later by filtering the toolkit by your name.
Paste a full OpenAPI spec if you have one. It is the only input that carries parameter types, required-ness and response shapes precisely. A prose description works, but you will spend the time you saved correcting the parsed parameters.
Other ways in
Ask in chat
Type Import the Twilio API, or Import this API: <docs URL>. The assistant
finds or fetches the documentation, crawls it for endpoints, and shows you what
it found before anything is saved.
Use this when the service is well-known or has public docs, and you would rather not hunt down its spec yourself.
As a job
Create a job to import the <service> API. The job runs the whole pipeline —
discovery, endpoint extraction, parameter mapping, auth setup — and survives
you closing the tab. Use it for large APIs where a single pass would be slow.
Bulk discovery (operators)
api-crawler-track (port 5320) pulls catalogues from apis.guru and
Postman and imports them in batches. This is how the shared library got to
thousands of functions. It is an operator tool, not part of the self-serve flow
— you do not need it to register your own API.
Authentication
Pick the auth type that matches your API when you review the parsed tool:
| Your API uses | Choose |
|---|---|
| Nothing — fully open | none |
| A key in a header or query param | apikey |
| A bearer token | bearer |
| OAuth2 | oauth2 |
Credentials are entered per-user, not baked into the tool definition. Publishing a tool publishes the shape of the call, not your key — the first person to use it supplies their own credentials.
Before you publish: everything you add is PUBLIC
This is the one thing to get right, because it is easy to miss.
Quick Add has no privacy control. Every tool saved through it goes in as
is_internal = false and is_guest_accessible = true, with status = 'active'
— meaning it is immediately visible in the shared toolkit and callable by anyone,
including signed-out guests.
So:
- Do not register an internal or private API this way. Even though your credentials stay yours, the endpoint, its parameters and its description become public, and unauthenticated endpoints become publicly callable.
- Only self-register APIs you are happy to have listed publicly.
- If you need a private tool today, it has to be flagged
is_internaldirectly inai.openai_functions— the browse queries honouris_internal = false OR author_id = <you>, so the mechanism exists, it is just not exposed in the Quick Add UI yet.
After it is saved
- Find it: Toolkit → filter by author, service or category.
- Use it: just describe what you want; the assistant matches your request to the function. You can also call it directly from the toolkit.
- Fix it: re-saving with the same tool
idupdates the existing row rather than creating a duplicate, so correcting a wrong parameter is an edit, not a cleanup job. - Check what it did: see Tool Execution History.
When it goes wrong
| Symptom | Usually means |
|---|---|
| "Tool name and description are required" | The parse produced neither — the input was too vague. Give it a spec or a concrete endpoint. |
| Parsed with no parameters | Prose input. Paste the OpenAPI spec, or add them by hand on the review screen. |
| Saved but the assistant never picks it | The description does not read like the request. Describe when to use it, not what it returns. |
| Calls fail with 401 | Auth type is wrong, or credentials were never supplied for your account. |
Related
- Importing Tools — the import pipeline in more depth
- Functions and Tools — how the function system works
- Authentication — OAuth and API-key handling