Stack exchange

Learn how to use Stack exchange with Composio

Overview

SLUG: STACK_EXCHANGE

Description

Stack Exchange is a network of Q&A communities where users ask questions, share knowledge, and collaborate on topics like coding, math, and more

Authentication Details

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

Connecting to Stack exchange

Create an auth config

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

1

Select App

Navigate to [Stack exchange](https://platform.composio.dev/marketplace/Stack exchange).

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 Stack exchange 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
4stack_exchange_auth_config_id = "ac_YOUR_STACK_EXCHANGE_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 Stack exchange: {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, stack_exchange_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}")

Tools

Executing tools

To prototype you can execute some tools to see the responses and working on the [Stack exchange toolkit’s playground](https://app.composio.dev/app/Stack exchange)

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=["STACK_EXCHANGE"])
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 Collectives

Description

Tool to retrieve all collectives on a stack exchange site in alphabetical order. use when you need to list collectives for display or filtering.

Action Parameters

fromdate
integer
max
string
min
string
order
string
page
integer
pagesize
integer
site
stringRequired
sort
string
todate
integer

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Collective Questions

Description

Tool to retrieve questions associated with the specified collective. use when you have a collective id and need its questions for a site.

Action Parameters

filter
string
fromdate
integer
id
stringRequired
max
integer
min
integer
order
stringDefaults to desc
page
integerDefaults to 1
pagesize
integerDefaults to 30
site
stringRequired
sort
stringDefaults to activity
todate
integer

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Collective Tags

Description

Tool to retrieve tags associated with specified collectives. use when you need collective tags for display or analysis after confirming which collectives to query.

Action Parameters

access_token
string
collective_ids
array
filter
string
key
string
page
integerDefaults to 1
pagesize
integerDefaults to 30
site
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Comments

Description

Tool to retrieve comments from a specified stack exchange site. use when you need to list comments with optional filters and sorting.

Action Parameters

filter
string
fromdate
integer
max
integer
min
integer
order
string
page
integer
pagesize
integer
site
stringRequired
sort
string
todate
integer

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Comment Flag Options

Description

Tool to fetch valid flag options for a given comment. use when you need to know which flags a user can raise before submitting. requires authenticated access.

Action Parameters

access_token
string
filter
string
ids
stringRequired
key
string
preview
boolean
site
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Revisions By IDs

Description

Tool to retrieve revisions for specific posts by their ids. use when you need to examine the edit history of posts by providing semicolon-delimited ids.

Action Parameters

filter
string
fromdate
integer
ids
stringRequired
page
integer
pagesize
integer
site
stringRequired
todate
integer

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Search Questions

Description

Tool to search the site for questions meeting certain criteria. use after defining tags or keywords to locate relevant questions. at least one of 'tagged' or 'intitle' must be set.

Action Parameters

access_token
string
filter
string
fromdate
integer
intitle
string
key
string
max
integer
min
integer
nottagged
array
order
string
page
integer
pagesize
integer
site
stringRequired
sort
string
tagged
array
todate
integer

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Sites

Description

Tool to retrieve all stack exchange sites and their api site parameter values. use when you need to discover available sites for api calls.

Action Parameters

filter
string
page
integer
pagesize
integer

Action Response

data
objectRequired
error
string
successful
booleanRequired