pip install circle-so-python-sdkCircle.so uses different auth schemes per API:
- Admin API V2: Uses
Token AUTH_TOKENheader (server-side admin token) - Headless Auth: Uses
Bearer AUTH_TOKENheader (admin token to generate member tokens) - Headless Client V1: Uses
Bearer ACCESS_TOKENheader (member access token)
from circle import CircleClient
# Create client with your admin API token
client = CircleClient(api_token="YOUR_ADMIN_TOKEN")
# Admin API -- manage your community
community = client.admin.get_community()
members = client.admin.list_community_members(per_page=20)
# Headless Auth -- get a member access token
token = client.auth.create_auth_token(email="member@example.com")
# Headless Client -- act as a member
member_client = CircleClient(
api_token=token.access_token,
community_url="https://your-community.circle.so"
)
spaces = member_client.headless.list_spaces()from circle import AsyncCircleClient
async with AsyncCircleClient(api_token="YOUR_TOKEN") as client:
community = await client.admin.get_community()
members = await client.admin.list_community_members()from circle import CircleClient
from circle.pagination import paginate
client = CircleClient(api_token="YOUR_TOKEN")
# Iterate all members across all pages
for member in paginate(client.admin.community.list_community_members, per_page=100):
print(member.name)from circle import CircleClient, AuthenticationError, NotFoundError
client = CircleClient(api_token="YOUR_TOKEN")
try:
member = client.admin.community.show_community_member(99999)
except NotFoundError as e:
print(f"Not found: {e}")
except AuthenticationError as e:
print(f"Auth failed: {e}")