Beeminder

Learn how to use Beeminder with Composio

Overview

SLUG: BEEMINDER

Description

Beeminder is an online goal-tracking service that uses financial incentives—pledge money on your objectives and forfeit it if you don’t keep up—to help you achieve your goals.

Authentication Details

client_id
stringRequired
client_secret
stringRequired
oauth_redirect_uri
stringDefaults to https://backend.composio.dev/api/v1/auth-apps/add
scopes
string
bearer_token
string
bearer_token
stringRequired

Connecting to Beeminder

Create an auth config

Use the dashboard to create an auth config for the Beeminder toolkit. This allows you to connect multiple Beeminder accounts to Composio for agents to use.

1

Select App

Navigate to Beeminder.

2

Configure Auth Config Settings

Select among the supported auth schemes of and configure them here.

3

Create and Get auth config ID

Click “Create Beeminder Auth Config”. After creation, copy the displayed ID starting with ac_. This is your auth config ID. This is not a sensitive ID — you can save it in environment variables or a database. This ID will be used to create connections to the toolkit for a given user.

Connect Your Account

Using OAuth2

1from composio import Composio
2
3# Replace these with your actual values
4beeminder_auth_config_id = "ac_YOUR_BEEMINDER_CONFIG_ID" # Auth config ID created above
5user_id = "0000-0000-0000" # UUID from database/application
6
7composio = Composio()
8
9
10def authenticate_toolkit(user_id: str, auth_config_id: str):
11 connection_request = composio.connected_accounts.initiate(
12 user_id=user_id,
13 auth_config_id=auth_config_id,
14 )
15
16 print(
17 f"Visit this URL to authenticate Beeminder: {connection_request.redirect_url}"
18 )
19
20 # This will wait for the auth flow to be completed
21 connection_request.wait_for_connection(timeout=15)
22 return connection_request.id
23
24
25connection_id = authenticate_toolkit(user_id, beeminder_auth_config_id)
26
27# You can also verify the connection status using:
28connected_account = composio.connected_accounts.get(connection_id)
29print(f"Connected account: {connected_account}")

Using API Key

1from composio import Composio
2
3# Replace these with your actual values
4beeminder_auth_config_id = "ac_YOUR_BEEMINDER_CONFIG_ID" # Auth config ID created above
5user_id = "0000-0000-0000" # UUID from database/app
6
7composio = Composio()
8
9def authenticate_toolkit(user_id: str, auth_config_id: str):
10 # Replace this with a method to retrieve an API key from the user.
11 # Or supply your own.
12 user_api_key = input("[!] Enter API key")
13
14 connection_request = composio.connected_accounts.initiate(
15 user_id=user_id,
16 auth_config_id=auth_config_id,
17 config={"auth_scheme": "API_KEY", "val": user_api_key}
18 )
19
20 # API Key authentication is immediate - no redirect needed
21 print(f"Successfully connected Beeminder for user {user_id}")
22 print(f"Connection status: {connection_request.status}")
23
24 return connection_request.id
25
26
27connection_id = authenticate_toolkit(user_id, beeminder_auth_config_id)
28
29# You can verify the connection using:
30connected_account = composio.connected_accounts.get(connection_id)
31print(f"Connected account: {connected_account}")

Tools

Executing tools

To prototype you can execute some tools to see the responses and working on the Beeminder toolkit’s playground

Python
1from composio import Composio
2from openai import OpenAI
3import json
4
5openai = OpenAI()
6composio = Composio()
7
8# User ID must be a valid UUID format
9user_id = "0000-0000-0000" # Replace with actual user UUID from your database
10
11tools = composio.tools.get(user_id=user_id, toolkits=["BEEMINDER"])
12
13print("[!] Tools:")
14print(json.dumps(tools))
15
16def invoke_llm(task = "What can you do?"):
17 completion = openai.chat.completions.create(
18 model="gpt-4o",
19 messages=[
20 {
21 "role": "user",
22 "content": task, # Your task here!
23 },
24 ],
25 tools=tools,
26 )
27
28 # Handle Result from tool call
29 result = composio.provider.handle_tool_calls(user_id=user_id, response=completion)
30 print(f"[!] Completion: {completion}")
31 print(f"[!] Tool call result: {result}")
32
33invoke_llm()

Tool List

Tool Name: Authenticate and Redirect User

Description

Tool to authenticate a user and redirect them to a given url. use when sending a user into the beeminder web ui directly after oauth or token validation.

Action Parameters

redirect_to_url
stringRequired
username
stringDefaults to me

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Create Charge

Description

Tool to create a new charge for a user. use when billing a user outside of goal pledges; supports dryrun mode.

Action Parameters

amount
numberRequired
dryrun
boolean
note
string
user_id
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get all goals

Description

Tool to retrieve all goals for a specified user. use when listing a user's active goals.

Action Parameters

username
stringRequired

Action Response

data
arrayRequired
error
string
successful
booleanRequired

Tool Name: Get Archived Goals

Description

Tool to retrieve archived goals for a specified user. use when you need to inspect a user's past archived goals.

Action Parameters

username
stringRequired

Action Response

data
arrayRequired
error
string
successful
booleanRequired

Tool Name: Get Beeminder User Information

Description

Tool to retrieve information about a specified beeminder user. use when you need to fetch details like timezone, goals, urgency, or deleted goals after authenticating successfully.

Action Parameters

associations
boolean
datapoints_count
integer
diff_since
integer
skinny
boolean
username
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired