ClawSkills logoClawSkills

Eventbrite

通过托管 OAuth 集成 Eventbrite API。管理活动、场地、票种、订单和出席者。 当用户想要创建和管理时,请使用此技能

介绍

# Eventbrite

通过托管的 OAuth 身份验证访问 Eventbrite API。管理活动、场地、票种、订单、参与者等。

## Quick Start

```bash # Get current user python <<'EOF' import urllib.request, os, json req = urllib.request.Request('https://gateway.maton.ai/eventbrite/v3/users/me/') req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}') print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2)) EOF ```

## Base URL

``` https://gateway.maton.ai/eventbrite/{native-api-path} ```

将 `{native-api-path}` 替换为实际的 Eventbrite API 端点路径。网关将请求代理到 `www.eventbriteapi.com` 并自动注入您的 OAuth 令牌。

## Authentication

所有请求都需要在 Authorization 头中包含 Maton API 密钥:

``` Authorization: Bearer $MATON_API_KEY ```

**Environment Variable:** 将您的 API 密钥设置为 `MATON_API_KEY`:

```bash export MATON_API_KEY="YOUR_API_KEY" ```

### Getting Your API Key

1. 在 [maton.ai](https://maton.ai) 登录或创建账户 2. 前往 [maton.ai/settings](https://maton.ai/settings) 3. 复制您的 API 密钥

## Connection Management

在 `https://ctrl.maton.ai` 管理您的 Eventbrite OAuth 连接。

### List Connections

```bash python <<'EOF' import urllib.request, os, json req = urllib.request.Request('https://ctrl.maton.ai/connections?app=eventbrite&status=ACTIVE') req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}') print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2)) EOF ```

### Create Connection

```bash python <<'EOF' import urllib.request, os, json data = json.dumps({'app': 'eventbrite'}).encode() req = urllib.request.Request('https://ctrl.maton.ai/connections', data=data, method='POST') req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}') req.add_header('Content-Type', 'application/json') print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2)) EOF ```

### Get Connection

```bash python <<'EOF' import urllib.request, os, json req = urllib.request.Request('https://ctrl.maton.ai/connections/{connection_id}') req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}') print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2)) EOF ```

**Response:** ```json { "connection": { "connection_id": "a2dd9063-64b4-4fe2-b4c5-8dd711648244", "status": "ACTIVE", "creation_time": "2026-02-07T09:11:20.516013Z", "last_updated_time": "2026-02-07T09:14:35.273822Z", "url": "https://connect.maton.ai/?session_token=...", "app": "eventbrite", "metadata": {} } } ```

在浏览器中打开返回的 `url` 以完成 OAuth 授权。

### Delete Connection

```bash python <<'EOF' import urllib.request, os, json req = urllib.request.Request('https://ctrl.maton.ai/connections/{connection_id}', method='DELETE') req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}') print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2)) EOF ```

### Specifying Connection

如果您有多个 Eventbrite 连接,请使用 `Maton-Connection` 头指定要使用的连接:

```bash python <<'EOF' import urllib.request, os, json req = urllib.request.Request('https://gateway.maton.ai/eventbrite/v3/users/me/') req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}') req.add_header('Maton-Connection', 'a2dd9063-64b4-4fe2-b4c5-8dd711648244') print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2)) EOF ```

如果省略,网关将使用默认(最早)的活跃连接。

## API Reference

### User Operations

#### Get Current User

```bash GET /eventbrite/v3/users/me/ ```

**Response:** ```json { "emails": [{"email": "[email protected]", "verified": true, "primary": true}], "id": "1234567890", "name": "John Doe", "first_name": "John", "last_name": "Doe", "is_public": false, "image_id": null } ```

#### List User Organizations

```bash GET /eventbrite/v3/users/me/organizations/ ```

#### List User Orders

```bash GET /eventbrite/v3/users/me/orders/ ```

### Organization Operations

#### List Organization Events

```bash GET /eventbrite/v3/organizations/{organization_id}/events/ ```

Query parameters: - `status` - 按状态筛选:`draft`(草稿)、`live`(上线)、`started`(已开始)、`ended`(已结束)、`completed`(已完成)、`canceled`(已取消) - `order_by` - 排序方式:`start_asc`(开始时间升序)、`start_desc`(开始时间降序)、`created_asc`(创建时间升序)、`created_desc`(创建时间降序) - `time_filter` - 按时间筛选:`current_future`(当前及未来)、`past`(过去)

#### List Organization Venues

```bash GET /eventbrite/v3/organizations/{organization_id}/venues/ ```

#### Create Venue

```bash POST /eventbrite/v3/organizations/{organization_id}/venues/ Content-Type: application/json

{ "venue": { "name": "Conference Center", "address": { "address_1": "123 Main St", "city": "San Francisco", "region": "CA", "postal_code": "94105", "country": "US" } } } ```

### Event Operations

#### Get Event

```bash GET /eventbrite/v3/events/{event_id}/ ```

#### Create Event

活动必须在组织下创建:

```bash POST /eventbrite/v3/organizations/{organization_id}/events/ Content-Type: application/json

{ "event": { "name": {"html": "My Event"}, "description": {"html": "<p>Event description</p>"}, "start": { "timezone": "America/Los_Angeles", "utc": "2026-03-01T19:00:00Z" }, "end": { "timezone": "America/Los_Angeles", "utc": "2026-03-01T22:00:00Z" }, "currency": "USD", "online_event": false, "listed": true, "shareable": true, "capacity": 100, "category_id": "103", "format_id": "1" } } ```

#### Update Event

```bash POST /eventbrite/v3/events/{event_id}/ Content-Type: application/json

{ "event": { "name": {"html": "Updated Event Name"}, "capacity": 200 } } ```

#### Publish Event

```bash POST /eventbrite/v3/events/{event_id}/publish/ ```

#### Unpublish Event

```bash POST /eventbrite/v3/events/{event_id}/unpublish/ ```

#### Cancel Event

```bash POST /eventbrite/v3/events/{event_id}/cancel/ ```

#### Delete Event

```bash DELETE /eventbrite/v3/events/{event_id}/ ```

### Ticket Class Operations

#### List Ticket Classes

```bash GET /eventbrite/v3/events/{event_id}/ticket_classes/ ```

#### Create Ticket Class

```bash POST /eventbrite/v3/events/{event_id}/ticket_classes/ Content-Type: application/json

{ "ticket_class": { "name": "General Admission", "description": "Standard entry ticket", "quantity_total": 100, "cost": "USD,2500", "sales_start": "2026-01-01T00:00:00Z", "sales_end": "2026-02-28T23:59:59Z", "minimum_quantity": 1, "maximum_quantity": 10 } } ```

对于免费票,请省略 `cost` 字段或将 `free` 设置为 `true`。

#### Update Ticket Class

```bash POST /eventbrite/v3/events/{event_id}/ticket_classes/{ticket_class_id}/ Content-Type: application/json

{ "ticket_class": { "quantity_total": 150 } } ```

#### Delete Ticket Class

```bash DELETE /eventbrite/v3/events/{event_id}/ticket_classes/{ticket_class_id}/ ```

### Attendee Operations

#### List Event Attendees

```bash GET /eventbrite/v3/events/{event_id}/attendees/ ```

Query parameters: - `status` - 按状态筛选:`attending`(出席)、`not_attending`(不出席)、`unpaid`(未支付) - `changed_since` - ISO 8601 时间戳,用于获取在此之后发生变更的参与者

#### Get Attendee

```bash GET /eventbrite/v3/events/{event_id}/attendees/{attendee_id}/ ```

### Order Operations

#### List Event Orders

```bash GET /eventbrite/v3/events/{event_id}/orders/ ```

Query parameters: - `status` - 按状态筛选:`active`(活跃)、`inactive`(非活跃)、`all`(全部) - `changed_since` - ISO 8601 时间戳

#### Get Order

```bash GET /eventbrite/v3/orders/{order_id}/ ```

### Venue Operations

#### Get Venue

```bash GET /eventbrite/v3/venues/{venue_id}/ ```

#### Update Venue

```bash POST /eventbrite/v3/venues/{venue_id}/ Content-Type: application/json

{ "venue": { "name": "Updated Venue Name" } } ```

### Reference Data

#### List Categories

```bash GET /eventbrite/v3/categories/ ```

**Response:** ```json { "locale": "en_US", "pagination": {"object_count": 21, "page_number": 1, "page_size": 50}, "categories": [ {"id": "103", "name": "Music", "short_name": "Music"}, {"id": "101", "name": "Business & Professional", "short_name": "Business"}, {"id": "110", "name": "Food & Drink", "short_name": "Food & Drink"} ] } ```

#### Get Category

```bash GET /eventbrite/v3/categories/{category_id}/ ```

#### List Subcategories

```bash GET /eventbrite/v3/subcategories/ ```

#### List Formats

```bash GET /eventbrite/v3/formats/ ```

**Common formats:** - `1` - Conference(会议) - `2` - Seminar or Talk(研讨会或讲座) - `5` - Festival or Fair(节日或集市) - `6` - Concert or Performance(音乐会或演出) - `9` - Class, Training, or Workshop(课程、培训或研讨会) - `10` - Meeting or Networking Event(会议或社交活动) - `11` - Party or Social Gathering(聚会或社交集会)

#### List Countries

```bash GET /eventbrite/v3/system/countries/ ```

#### List Regions

```bash GET /eventbrite/v3/system/regions/ ```

## Pagination

Eventbrite 结合使用基于分页和基于 continuation(延续)的两种分页方式:

```bash GET /eventbrite/v3/organizations/{org_id}/events/?page_size=50 ```

**Response:** ```json { "pagination": { "object_count": 150, "page_number": 1, "page_size": 50, "page_count": 3, "has_more_items": true, "continuation": "eyJwYWdlIjogMn0" }, "events": [...] } ```

对于后续页面,请使用 `continuation` 令牌:

```bash GET /eventbrite/v3/organizations/{org_id}/events/?continuation=eyJwYWdlIjogMn0 ```

## Expansions

使用 `expand` 参数包含相关数据:

```bash GET /eventbrite/v3/events/{event_id}/?expand=venue,ticket_classes,category ```

Common expansions: - `venue` - 包含场地详情 - `ticket_classes` - 包含票种信息 - `category` - 包含类别详情 - `subcategory` - 包含子类别详情 - `format` - 包含形式详情 - `organizer` - 包含组织者信息

## Code Examples

### JavaScript

```javascript const response = await fetch( 'https://gateway.maton.ai/eventbrite/v3/users/me/', { headers: { 'Authorization': `Bearer ${process.env.MATON_API_KEY}` } } ); const user = await response.json(); ```

### Python

```python import os import requests

response = requests.get( 'https://gateway.maton.ai/eventbrite/v3/users/me/', headers={'Authorization': f'Bearer {os.environ["MATON_API_KEY"]}'} ) user = response.json() ```

## Notes

- 所有端点路径应以尾部斜杠 (`/`) 结尾 - 创建活动需要组织 - 请使用基于组织的端点 - 传统的基于用户的活动端点已弃用;请使用对等的组织端点 - 时间戳采用 ISO 8601 格式 (UTC) - 货币金额以最小单位(分)计 - 例如,"USD,2500" = $25.00 - 速率限制:每小时 1,000 次调用,每天 48,000 次调用 - 活动搜索 API 已不再公开可用(已于 2020 年 2 月弃用) - 重要提示:使用 curl 命令时,如果 URL 包含括号,请使用 `curl -g` 以禁用 glob 解析 - 重要提示:将 curl 输出通过管道传递给 `jq` 或其他命令时,在某些 shell 环境中,像 `$MATON_API_KEY` 这样的环境变量可能无法正确展开

## Error Handling

| Status | Meaning | |--------|---------| | 400 | 缺少 Eventbrite 连接或参数无效 | | 401 | Maton API 密钥无效或缺失 | | 403 | 未授权(请检查权限范围或使用组织端点) | | 404 | 未找到资源 | | 429 | 速率受限 | | 4xx/5xx | 来自 Eventbrite API 的透传错误 |

### Common Errors

**NOT_AUTHORIZED with legacy user endpoints:** ```json {"status_code": 403, "error": "NOT_AUTHORIZED", "error_description": "This user is not able to use legacy user endpoints, please use the organization equivalent."} ``` Solution: 使用 `/organizations/{org_id}/events/` 代替 `/users/me/owned_events/`

### Troubleshooting: API Key Issues

1. 检查是否设置了 `MATON_API_KEY` 环境变量:

```bash echo $MATON_API_KEY ```

2. 通过列出连接来验证 API 密钥是否有效:

```bash python <<'EOF' import urllib.request, os, json req = urllib.request.Request('https://ctrl.maton.ai/connections') req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}') print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2)) EOF ```

### Troubleshooting: Invalid App Name

1. 确保您的 URL 路径以 `eventbrite` 开头。例如:

- Correct: `https://gateway.maton.ai/eventbrite/v3/users/me/` - Incorrect: `https://gateway.maton.ai/v3/users/me/`

## Resources

- [Eventbrite API Documentation](https://www.eventbrite.com/platform/api) - [API Basics](https://www.eventbrite.com/platform/docs/api-basics) - [API Explorer](https://www.eventbrite.com/platform/docs/api-explorer) - [Maton Community](https://discord.com/invite/dBfFAcefs2) - [Maton Support](mailto:[email protected])

更多产品