Bart

Learn how to use Bart with Composio

Overview

SLUG: BART

Description

BART (Bay Area Rapid Transit) provides public transportation services in the San Francisco Bay Area.

Authentication Details

generic_api_key
stringRequired
generic_api_key
stringRequired

Connecting to Bart

Create an auth config

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

1

Select App

Navigate to Bart.

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 Bart 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 API Key

1from composio import Composio
2
3# Replace these with your actual values
4bart_auth_config_id = "ac_YOUR_BART_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 Bart 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, bart_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 Bart 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=["BART"])
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: Get BART Available Schedules

Description

Tool to retrieve a list of currently released bart schedules. use when you need schedule versioning info.

Action Parameters

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Route Info

Description

Tool to fetch detailed information about a specific bart route. use when you know the route number (1–12) or need all routes configuration. call after confirming the route id.

Action Parameters

date
string
route
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get GTFS-RT Trip Updates

Description

Tool to fetch real-time trip updates in gtfs-realtime format. use when you need the latest live trip information as raw protobuf.

Action Parameters

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Download GTFS Static Schedule Feed

Description

Tool to download the static gtfs feed (google transit.zip). use when needing the latest gtfs schedule data.

Action Parameters

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get BART Schedule Arrive

Description

Tool to retrieve schedule information based on a specified arrival time. use when planning trips arriving by a given time.

Action Parameters

a
integerDefaults to 2
b
integerDefaults to 2
date
string
dest
stringRequired
l
integer
orig
stringRequired
time
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get BART Schedule Depart

Description

Tool to get schedule information based on a specified depart time. use when planning trips from an origin to a destination with time constraints after confirming station codes.

Action Parameters

a
integer
b
integer
date
string
dest
stringRequired
json
stringDefaults to y
l
integer
orig
stringRequired
time
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Service Advisories

Description

Tool to fetch current bart service advisories. use when you need up-to-date system-wide or station-level alerts before presenting or planning transit routes.

Action Parameters

orig
stringDefaults to all

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Station Info

Description

Tool to fetch detailed information for a specified bart station. use after you have a station's abbreviation. (e.g., get station info for 'balb')

Action Parameters

orig
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get BART API Version

Description

Stub action for bart api version retrieval.

Action Parameters

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get BART Stations

Description

Stub action for bart stations retrieval.

Action Parameters

Action Response

data
objectRequired
error
string
successful
booleanRequired