← All tutorialsVendors

Publish a service into the public catalog

You run an API and want every Upivia customer to be able to enable it. Submit an adapter spec, we wire it up, and you become a line item in /admin/services.

CostRevenue-share or flat per-call (negotiated)
Operations
custom.*

Prerequisites

  • An HTTP API with stable endpoints and rate-limit behavior documented.
  • A test account / sandbox key for the integration review.
  • Email us via the landing-page contact form (intent: integrate a service).

Walkthrough

1. Send the integration request

Use the contact form on the landing page (intent: "Integrate a service"). Include the API docs URL, your pricing model, and any caveats (regional restrictions, OAuth-only, etc.). We reply within a couple of business days with the adapter checklist.

2. Implement the adapter contract

Each catalog service is a `src/adapters/<name>.ts` implementing `Adapter<Payload, Result>`. The contract: pure function, reads creds from env, returns `{ status: 'executed' | 'failed', cost_cents, result }` or maps vendor errors to one of `invalid_recipient | provider_rejected | provider_unavailable`. We co-write this with you against your sandbox key.

3. Pricing + reconciliation

Upfront estimate via the pricing tier you set; for usage-billed APIs (per-second, per-token), you can post reconciliation via /v1/internal/reconcile after the call settles. Same path the built-in Twilio voice adapter uses.

4. Go-live

Your service appears in /admin/services with status 'configured' once the env vars are set per-deploy. Every Upivia org can enable it from /permissions. You see request volume + revenue in the partner dashboard we provision for you.

Next steps

Audit every call at /audit-logs, watch spend at /usage, and tune budgets per service on the agent's page.

Create an account →