CONNECT APP
Build with Obolus
Obolus Relocation Finance Hub - Net Pay, Cost of Living, Budget
Business Management
- API key
MCP
Give your agent Obolus tools
Every Obolus action is exposed as an MCP tool on Pipedream's remote server. Point a client at it with your end user's ID and Connect resolves that user's Obolus account for each tool call — you store no tokens.
// accessToken: mint a short-lived token with the Connect SDK — see the MCP guide
const transport = new StreamableHTTPClientTransport(
new URL("https://remote.mcp.pipedream.net/v3"),
{
requestInit: {
headers: {
Authorization: `Bearer ${accessToken}`,
"x-pd-project-id": "{project_id}",
"x-pd-environment": "production",
"x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
"x-pd-app-slug": "obolus",
},
},
},
)
const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)
const { tools } = await mcp.listTools()
// e.g. run Calculate Net Salary:
const result = await mcp.callTool({
name: "obolus-berechne",
arguments: {
country: "Country",
taxYear: 10,
},
})# access_token: mint a short-lived token with the Connect SDK — see the MCP guide
headers = {
"Authorization": f"Bearer {access_token}",
"x-pd-project-id": "{project_id}",
"x-pd-environment": "production",
"x-pd-external-user-id": "{external_user_id}", # any stable ID for this user in your system
"x-pd-app-slug": "obolus",
}
async with streamablehttp_client("https://remote.mcp.pipedream.net/v3", headers=headers) as (read, write, _):
async with ClientSession(read, write) as session:
await session.initialize()
tools = await session.list_tools()
# e.g. run Calculate Net Salary:
result = await session.call_tool("obolus-berechne", {
"country": "Country",
"taxYear": 10,
})API PROXY
Call the Obolus API directly
For an endpoint with no pre-built tool, the Connect proxy forwards your request to the Obolus API with the connected user's credentials attached. You store no tokens and write no refresh logic.
const resp = await pd.proxy.get({
externalUserId: "{external_user_id}", // any stable ID for this user in your system
accountId: "apn_xxxxxxx",
url: "https://api.example.com/v1/me",
})
// Any allowed Obolus endpoint works here. Pipedream attaches the
// connected account's credentials to the outgoing request.# The path segment is the target URL, URL-safe base64 encoded:
# https://api.example.com/v1/me
curl "https://api.pipedream.com/v1/connect/{project_id}/proxy/aHR0cHM6Ly9hcGkuZXhhbXBsZS5jb20vdjEvbWU?external_user_id={external_user_id}&account_id=apn_xxxxxxx" \
-H "Authorization: Bearer {access_token}" \
-H "x-pd-environment: production"SDK
Run Obolus actions from your backend
Connect a user's Obolus account once, then run Calculate Net Salary on their behalf from your own code — TypeScript, Python, or plain HTTP.
import { PipedreamClient } from "@pipedream/sdk"
const pd = new PipedreamClient({
projectId: process.env.PIPEDREAM_PROJECT_ID!,
clientId: process.env.PIPEDREAM_CLIENT_ID!,
clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
projectEnvironment: "production",
})
const result = await pd.actions.run({
id: "obolus-berechne",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
obolus: { authProvisionId: "apn_xxxxxxx" },
country: "Country",
taxYear: 10,
},
})from pipedream import Pipedream
pd = Pipedream(
client_id="{oauth_client_id}",
client_secret="{oauth_client_secret}",
project_id="{project_id}",
project_environment="production",
)
result = pd.actions.run(
id="obolus-berechne",
external_user_id="{external_user_id}", # any stable ID for this user in your system
configured_props={
"obolus": {"authProvisionId": "apn_xxxxxxx"},
"country": "Country",
"taxYear": 10,
},
)curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
-H "Content-Type: application/json" \
-H "X-PD-Environment: production" \
-H "Authorization: Bearer {access_token}" \
-d '{
"external_user_id": "{external_user_id}",
"id": "obolus-berechne",
"configured_props": {
"obolus": { "authProvisionId": "apn_xxxxxxx" },
"country": "Country",
"taxYear": 10
}
}'TOOLS
Obolus actions
On-demand operations your product or agent can configure and run on behalf of a connected user.
-
Calculate Net Salary
actionUse this only for detailed net salary and payroll calculation for one country and one or two people. Inputs and outputs are country-polymorphic: the same field name can map to different tax, social security, or payroll concepts depending on the selected country and tax system. For comparing salary, tax, or net income across multiple countries, use Compare Salary Across Countries instead. See the documentationRead-onlyv0.0.2 -
Compare Salary Across Countries
actionUse this when the user asks to compare salary, net income, tax burden, or social contributions across multiple countries. This is the default action for prompts like "compare a EUR 50,000 salary in Germany, Ireland, the United States, and Canada". Do not use Calculate Net Salary for multi-country comparisons unless the user asks for detailed payroll in one specific country. See the documentationRead-onlyv0.0.2
No Obolus triggers are available yet.
- App slug
- obolus
- Authentication
- API key
- Categories
- Business Management
- Actions
- 2
- Triggers
- 0
- API proxy
- Available