Skip to main content
Pay for a service from your spend-capped delegation and return the vendor’s response. This charges real funds. Needs a credential (API key or OAuth commerce grant). Always read get_service first and pass its requestShape.endpoints[].payServiceArgs through as-is — it carries slug / path / method, and for a verified endpoint a pre-filled body (and sometimes search / headers); don’t drop those and rebuild your own. Where an example filled a path parameter, path already holds that example’s entity (not a {placeholder}) — swap in the entity you want rather than looking for a placeholder to replace. Auth: key / grant · Charges: real funds

Arguments

A bare slug reaches the service’s base URL. For a multi-endpoint API that is a 404, not a purchase — pass the endpoint’s path. Only a single-endpoint service is callable by slug alone.

Returns

The vendor’s response plus the payment record. A paid result also carries delegationId and budget (the spending budget after this call):
  • paid: true with a non-2xx upstreamStatus may still have cost the merchant price.
  • The request block rides on every result that resolved the endpoint (already_paid, payment_failed, …), not only the paid one.
  • budget: null means it couldn’t be read this time — not that it’s zero; call get_budget.
  • payable: false (with protocol, priceLabel, network, note; never the upstream URL) means the service isn’t on a payable rail — nothing charged.

Outcomes and refusals

Async services: set fresh: true on every poll, including the first. An async service returns a taskId, then you poll a status endpoint with the same id. Without fresh, every later poll reuses the first poll’s idempotency key and gets the first poll’s stored answer (or already_paid) back, so the status never advances. fresh makes each poll a distinct, separately-billed call. Leave fresh off the submit and off any retry of a call whose outcome is unsure.

Try it

Ask your assistant:
Pay openweather-mpp for the current weather in Lisbon and show me the response.
Call it directly (⚠️ charges real funds — rehearse on https://mcp.sandbox.nevermined.app/mcp first):