← 返回
开发者工具 Key 中文

Talkspresso

Manage a Talkspresso business (services, appointments, products, clients, earnings, calendar) using the Talkspresso REST API. Use when the user wants to chec...
使用 Talkspresso REST API 管理 Talkspresso 业务(服务、预约、产品、客户、收益、日历)。当用户想要查看...
baron-talkspresso baron-talkspresso 来源
开发者工具 clawhub v1.0.0 1 版本 99907.7 Key: 需要
★ 0
Stars
📥 1,083
下载
💾 10
安装
1
版本
#latest

概述

Talkspresso

Manage a Talkspresso business via the REST API using curl and jq.

Setup

The user needs a TALKSPRESSO_API_KEY. If missing:

  1. Direct them to https://app.talkspresso.com/settings/api-keys to generate one
  2. If they don't have a Talkspresso account, direct them to https://talkspresso.com/signup
  3. Set it: export TALKSPRESSO_API_KEY="tsp_..."

If the user is new to Talkspresso, help them set up: profile, timezone, availability, first service.

API Pattern

All calls follow this pattern:

# GET
curl -s -H "Authorization: Bearer $TALKSPRESSO_API_KEY" \
  "https://api.talkspresso.com/ENDPOINT" | jq .data

# POST
curl -s -X POST -H "Authorization: Bearer $TALKSPRESSO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"key":"value"}' \
  "https://api.talkspresso.com/ENDPOINT" | jq .data

# PUT
curl -s -X PUT -H "Authorization: Bearer $TALKSPRESSO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"key":"value"}' \
  "https://api.talkspresso.com/ENDPOINT" | jq .data

# DELETE
curl -s -X DELETE -H "Authorization: Bearer $TALKSPRESSO_API_KEY" \
  "https://api.talkspresso.com/ENDPOINT" | jq .data

Use jq .data on every response. The API wraps all responses in { "data": ... }.

Quick Reference

Profile

# Get profile
curl -s -H "Authorization: Bearer $TALKSPRESSO_API_KEY" \
  "https://api.talkspresso.com/profile/me" | jq .data

# Update profile
curl -s -X PUT -H "Authorization: Bearer $TALKSPRESSO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"expert_title":"Executive Coach","about":"Short bio","bio":"Full bio","categories":["coaching"]}' \
  "https://api.talkspresso.com/profile" | jq .data

Key fields: expert_title, about, bio, categories (array), handle (URL slug), profile_photo.

Services (Video Calls, Workshops)

# List services
curl -s -H "Authorization: Bearer $TALKSPRESSO_API_KEY" \
  "https://api.talkspresso.com/service/me" | jq .data

# Create service
curl -s -X POST -H "Authorization: Bearer $TALKSPRESSO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title":"Strategy Call",
    "short_description":"1-on-1 strategy session",
    "long_description":"",
    "price":100,
    "duration":30,
    "logistics":{"session_type":"single","capacity_type":"single","capacity":1}
  }' \
  "https://api.talkspresso.com/service" | jq .data

# Update service
curl -s -X PUT -H "Authorization: Bearer $TALKSPRESSO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"title":"New Title","price":150}' \
  "https://api.talkspresso.com/service/SERVICE_ID" | jq .data

# Delete service
curl -s -X DELETE -H "Authorization: Bearer $TALKSPRESSO_API_KEY" \
  "https://api.talkspresso.com/service/SERVICE_ID" | jq .data

Service types (via logistics):

  • 1:1 call: {"capacity_type":"single","capacity":1}
  • Group session: {"capacity_type":"group","capacity":10}
  • Webinar: {"capacity_type":"group","capacity":50,"is_webinar":true}

Products (Digital Downloads)

# List products
curl -s -H "Authorization: Bearer $TALKSPRESSO_API_KEY" \
  "https://api.talkspresso.com/product/me" | jq .data

# Create product
curl -s -X POST -H "Authorization: Bearer $TALKSPRESSO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title":"Leadership Guide",
    "slug":"leadership-guide",
    "short_description":"Comprehensive guide for emerging leaders",
    "long_description":"Full description here...",
    "price":29,
    "product_type":"download",
    "status":"active"
  }' \
  "https://api.talkspresso.com/product" | jq .data

# AI-generate product details from description
curl -s -X POST -H "Authorization: Bearer $TALKSPRESSO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"description":"A guide about leadership for new managers","productType":"download"}' \
  "https://api.talkspresso.com/product/generate-details" | jq .data

# Update product
curl -s -X PUT -H "Authorization: Bearer $TALKSPRESSO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"price":39,"status":"active"}' \
  "https://api.talkspresso.com/product/PRODUCT_ID" | jq .data

# Delete product
curl -s -X DELETE -H "Authorization: Bearer $TALKSPRESSO_API_KEY" \
  "https://api.talkspresso.com/product/PRODUCT_ID" | jq .data

# Product analytics
curl -s -H "Authorization: Bearer $TALKSPRESSO_API_KEY" \
  "https://api.talkspresso.com/product/analytics" | jq .data

# List purchases
curl -s -H "Authorization: Bearer $TALKSPRESSO_API_KEY" \
  "https://api.talkspresso.com/product/purchases" | jq .data

Product types: download, video, bundle. Status: draft, active, archived.

Appointments & Scheduling

# List appointments (upcoming by default)
curl -s -H "Authorization: Bearer $TALKSPRESSO_API_KEY" \
  "https://api.talkspresso.com/appointments/me?status=upcoming" | jq .data

# Get specific appointment
curl -s -H "Authorization: Bearer $TALKSPRESSO_API_KEY" \
  "https://api.talkspresso.com/appointments/APT_ID" | jq .data

# Check available time slots
curl -s -X POST -H "Authorization: Bearer $TALKSPRESSO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"date":"2026-02-20","interval":30,"provider_id":"PROVIDER_ID"}' \
  "https://api.talkspresso.com/appointments/slots" | jq .data

# Create appointment (does NOT send email)
curl -s -X POST -H "Authorization: Bearer $TALKSPRESSO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "client_name":"Jane Smith",
    "client_email":"jane@example.com",
    "service_id":"SERVICE_ID",
    "scheduled_date":"2026-02-20",
    "scheduled_time":"10:00",
    "is_complimentary":true,
    "skip_email":true
  }' \
  "https://api.talkspresso.com/appointments/invite" | jq .data

# Send the invitation email (after reviewing)
curl -s -X POST -H "Authorization: Bearer $TALKSPRESSO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}' \
  "https://api.talkspresso.com/appointments/APT_ID/resend-invite" | jq .data

# Approve pending booking
curl -s -X POST -H "Authorization: Bearer $TALKSPRESSO_API_KEY" \
  "https://api.talkspresso.com/appointments/APT_ID/approve" | jq .data

# Cancel appointment
curl -s -X POST -H "Authorization: Bearer $TALKSPRESSO_API_KEY" \
  "https://api.talkspresso.com/appointments/APT_ID/cancel" | jq .data

Important: Always create appointments with skip_email: true first. Show the user the details. Only send the invitation email after they confirm.

Clients

# List clients (optional search)
curl -s -H "Authorization: Bearer $TALKSPRESSO_API_KEY" \
  "https://api.talkspresso.com/client/my?search=jane" | jq .data

# Get client details + booking history
curl -s -H "Authorization: Bearer $TALKSPRESSO_API_KEY" \
  "https://api.talkspresso.com/client/CLIENT_ID/appointments" | jq .data

# Get session history (summaries, action items)
curl -s -H "Authorization: Bearer $TALKSPRESSO_API_KEY" \
  "https://api.talkspresso.com/client/CLIENT_ID/session-history" | jq .data

Earnings

# Get transactions
curl -s -H "Authorization: Bearer $TALKSPRESSO_API_KEY" \
  "https://api.talkspresso.com/transaction/my?limit=50" | jq .data

Calendar & Availability

# Get calendar settings (timezone, availability windows)
curl -s -H "Authorization: Bearer $TALKSPRESSO_API_KEY" \
  "https://api.talkspresso.com/calendar/me" | jq .data

# Update timezone
curl -s -X PUT -H "Authorization: Bearer $TALKSPRESSO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"timezone":"America/New_York"}' \
  "https://api.talkspresso.com/calendar" | jq .data

# Update availability windows
curl -s -X PUT -H "Authorization: Bearer $TALKSPRESSO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"availability":{"Monday":{"is_selected":true,"start_time":"09:00","end_time":"17:00"}}}' \
  "https://api.talkspresso.com/calendar" | jq .data

File Uploads

# Upload image
curl -s -X POST -H "Authorization: Bearer $TALKSPRESSO_API_KEY" \
  -F "file=@/path/to/image.jpg" \
  "https://api.talkspresso.com/file/upload/image" | jq .data

# Upload video
curl -s -X POST -H "Authorization: Bearer $TALKSPRESSO_API_KEY" \
  -F "file=@/path/to/video.mp4" \
  "https://api.talkspresso.com/file/upload/video" | jq .data

# Upload file (PDF, doc, etc)
curl -s -X POST -H "Authorization: Bearer $TALKSPRESSO_API_KEY" \
  -F "file=@/path/to/document.pdf" \
  "https://api.talkspresso.com/file/upload/file" | jq .data

# Set profile photo (upload, then update profile)
CDN_URL=$(curl -s -X POST -H "Authorization: Bearer $TALKSPRESSO_API_KEY" \
  -F "file=@/path/to/photo.jpg" \
  "https://api.talkspresso.com/file/upload/image" | jq -r .data)
curl -s -X PUT -H "Authorization: Bearer $TALKSPRESSO_API_KEY" \
  -H "Content-Type: application/json" \
  -d "{\"profile_photo\":\"$CDN_URL\"}" \
  "https://api.talkspresso.com/profile" | jq .data

# Attach file to product
curl -s -X POST -H "Authorization: Bearer $TALKSPRESSO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"file_type":"pdf","file_name":"Guide.pdf","file_url":"CDN_URL","file_size":12345}' \
  "https://api.talkspresso.com/product/PRODUCT_ID/files" | jq .data

File types for products: pdf, video, audio, image, zip, presentation, other.

Booking Link

The public booking page URL is: https://talkspresso.com/HANDLE

A specific service: https://talkspresso.com/HANDLE/SERVICE_SLUG

Get the handle from the profile (handle field).

Workflows

New User Setup

  1. Get profile to see current state
  2. Update profile: expert_title, about, bio
  3. Set timezone in calendar
  4. Set availability windows
  5. Create first service (start with a free 15-min intro call)
  6. Share booking link: https://talkspresso.com/HANDLE

Create a Product from Scratch

  1. Ask what the product is about
  2. Use AI to generate details: POST /product/generate-details
  3. Create the product with generated details
  4. If the user has a file, upload it and attach to the product
  5. Share the product link

Schedule a Session

  1. Search for the client: GET /client/my?search=name
  2. List services to pick the right one
  3. Check availability for the date
  4. Create appointment with skip_email: true
  5. Show details to user for confirmation
  6. Only then send the invite email

Revenue Check

  1. Get transactions: GET /transaction/my
  2. Calculate this month's total from payment transactions
  3. Show upcoming appointments count
  4. Show booking link for sharing

Rules

  • Never send invites without confirmation. Always create with skip_email: true, show the user, then send.
  • Stripe required for paid sessions. If the user hasn't connected Stripe, they can only create free services and free products.
  • Get provider_id from the profile (id field) when needed for availability checks.
  • Slugs are auto-generated from titles if not provided. Lowercase, hyphens, no special chars.
  • Timezone comes from calendar settings, not the user model. Always check GET /calendar/me.

Additional Endpoints

For full API reference including notifications, testimonials, recordings, promo codes, file library, messaging, Google Calendar sync, and organization features, see references/api.md.

版本历史

共 1 个版本

  • v1.0.0 当前
    2026-03-29 09:31 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

business-ops

Discord

steipete
当需要通过discord工具控制Discord时使用:发送消息、添加反应、发布或上传表情包、上传表情、创建投票、管理帖子/置顶/搜索、获取权限或成员/角色/频道信息,或在Discord私信或频道中处理管理操作。
★ 77 📥 37,859
business-ops

Resume Assistant

wscats
帮助求职者润色、定制、评分并导出简历,提供详细的检查清单审查和多格式支持。
★ 20 📥 21,312
business-ops

Trello

steipete
使用 Trello REST API 管理看板、列表和卡片
★ 161 📥 41,115