Aryeo MCP by usefulapi
Manage real-estate media orders, appointments, listings, customers and tasks in Aryeo.
我该使用它吗
质量与安全性
发现(1)
- LOW在 aryeo_complete_task 中
基于对工具定义和协议合规性的自动分析。
上下文开销
这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。
安装
一键安装
将以下内容添加到你的 `claude_desktop_config.json` 文件中:
{
"mcpServers": {
"aryeo": {
"url": "https://aryeo.usefulapi.io/mcp"
}
}
}远程端点
https://aryeo.usefulapi.io/mcpstreamable-http它能做什么
工具清单
工具(24)
🟢aryeo_list_orders(search, payment_status, fulfillment_status, appointment_start_after, appointment_start_before, ...)
List the orders of your Aryeo company (newest first by default), with payment status, fulfillment status, totals and links. Filter by search text (address or customer), payment/fulfillment status, appointment date range, tags or assigned users. GET /orders.
输入模式
{
"type": "object",
"properties": {
"search": {
"description": "Orders whose address or customer matches this text, e.g. a street name.",
"type": "string",
"minLength": 1,
"maxLength": 255
},
"payment_status": {
"description": "Only orders with this payment status.",
"type": "string",
"enum": [
"PAID",
"PARTIALLY_PAID",
"UNPAID"
]
},
"fulfillment_status": {
"description": "Only orders with this fulfillment status.",
"type": "string",
"enum": [
"FULFILLED",
"PARTIALLY_FULFILLED",
"UNFULFILLED"
]
},
"appointment_start_after": {
"type": "string",
"description": "Only orders with an appointment starting after this moment. ISO 8601 date-time with a timezone, e.g. 2026-10-01T13:00:00Z."
},
"appointment_start_before": {
"type": "string",
"description": "Only orders with an appointment starting before this moment. ISO 8601 date-time with a timezone, e.g. 2026-10-01T13:00:00Z."
},
"creator_group_id": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
"description": "Only orders owned by this creator group (UUID)."
},
"tag_ids": {
"description": "Orders carrying any of these tag ids.",
"maxItems": 50,
"type": "array",
"items": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}
},
"user_ids": {
"description": "Orders that have appointments with any of these user ids (user ids = company_user.id from aryeo_list_team_members, not the team member id).",
"maxItems": 50,
"type": "array",
"items": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}
},
"sort": {
"description": "Comma-separated sort fields; a leading - sorts descending. Default -created_at.",
"type": "string",
"maxLength": 100,
"pattern": "^[A-Za-z0-9_.,-]+$"
},
"include": {
"description": "Comma-separated relations to expand. Examples: items, listing, customer, appointments, appointments.users, unconfirmed_appointments, order_form, discounts, discounts.coupon. An unknown value makes Aryeo reply with the allowed list.",
"type": "string",
"maxLength": 255,
"pattern": "^[A-Za-z0-9_.,]+$"
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"per_page": {
"description": "Results per page, 1-100 (Aryeo default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢aryeo_get_order(order_id, include)
One order by id: customer, address, status, totals, payment and invoice links. Add include=items,appointments,listing,customer for the line items and visits. GET /orders/{id}.
输入模式
{
"type": "object",
"properties": {
"order_id": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
"description": "Aryeo order id (UUID)."
},
"include": {
"description": "Comma-separated relations to expand. Examples: items, listing, customer, appointments, appointments.users, unconfirmed_appointments, order_form, discounts, discounts.coupon. An unknown value makes Aryeo reply with the allowed list.",
"type": "string",
"maxLength": 255,
"pattern": "^[A-Za-z0-9_.,]+$"
}
},
"required": [
"order_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴aryeo_update_order_notes(order_id, internal_notes)
REPLACE the internal notes of an order (visible to your team only, not to the customer). The whole note is overwritten: read the order first and send the full new text. An empty string clears the notes. PUT /orders/{id}/notes.
输入模式
{
"type": "object",
"properties": {
"order_id": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
"description": "Aryeo order id (UUID)."
},
"internal_notes": {
"type": "string",
"maxLength": 2550,
"description": "The complete new internal notes (max 2550 characters) (replaces the old text)."
}
},
"required": [
"order_id",
"internal_notes"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢aryeo_list_appointments(tense, statuses, start_after, start_before, user_ids, ...)
List appointments (shoots/visits), by default the SCHEDULED ones, newest start first. Filter by upcoming/past, status, a start-time window or the assigned users. Use include=order,order.address,users to see where and who. GET /appointments.
输入模式
{
"type": "object",
"properties": {
"tense": {
"description": "Only upcoming or only past appointments.",
"type": "string",
"enum": [
"UPCOMING",
"PAST"
]
},
"statuses": {
"description": "Appointment statuses to return (Aryeo default: SCHEDULED).",
"maxItems": 3,
"type": "array",
"items": {
"type": "string",
"enum": [
"SCHEDULED",
"UNSCHEDULED",
"CANCELED"
]
}
},
"start_after": {
"type": "string",
"description": "Only appointments starting at or after this moment. ISO 8601 date-time with a timezone, e.g. 2026-10-01T13:00:00Z."
},
"start_before": {
"type": "string",
"description": "Only appointments starting at or before this moment. ISO 8601 date-time with a timezone, e.g. 2026-10-01T13:00:00Z."
},
"user_ids": {
"description": "Only appointments of these user ids (user ids = company_user.id from aryeo_list_team_members, not the team member id).",
"maxItems": 50,
"type": "array",
"items": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}
},
"sort": {
"description": "Comma-separated sort fields; a leading - sorts descending. Default -start_at.",
"type": "string",
"maxLength": 100,
"pattern": "^[A-Za-z0-9_.,-]+$"
},
"include": {
"description": "Comma-separated relations to expand. Examples: owner, items, users, order, order.address, order.customer, order.customerGroup, order.listing, order.items, items.product_variant. An unknown value makes Aryeo reply with the allowed list.",
"type": "string",
"maxLength": 255,
"pattern": "^[A-Za-z0-9_.,]+$"
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"per_page": {
"description": "Results per page, 1-100 (Aryeo default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢aryeo_get_appointment(appointment_id, include)
One appointment by id: status, start/end, duration, assigned users and items. GET /appointments/{id}.
输入模式
{
"type": "object",
"properties": {
"appointment_id": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
"description": "Aryeo appointment id (UUID)."
},
"include": {
"description": "Comma-separated relations to expand. Examples: owner, items, users, order, order.address, order.customer, order.listing, order.items, items.product_variant. An unknown value makes Aryeo reply with the allowed list.",
"type": "string",
"maxLength": 255,
"pattern": "^[A-Za-z0-9_.,]+$"
}
},
"required": [
"appointment_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴aryeo_cancel_appointment(appointment_id, notify)
CANCEL an appointment. With notify=true Aryeo sends a cancellation notice to the order's customer (an email/message to a third party); with notify=false nobody is told. Cancelling can trigger fees or free the slot for other bookings. PUT /appointments/{id}/cancel.
输入模式
{
"type": "object",
"properties": {
"appointment_id": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
"description": "Aryeo appointment id (UUID)."
},
"notify": {
"type": "boolean",
"description": "true = notify the order's customer of the cancellation; false = cancel silently. Required: decide explicitly."
}
},
"required": [
"appointment_id",
"notify"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴aryeo_reschedule_appointment(appointment_id, start_at, end_at, notify)
MOVE an appointment to a new start and end time. With notify=true Aryeo sends a reschedule notice to the order's customer (a message to a third party). Check availability first (aryeo_list_available_timeslots). PUT /appointments/{id}/reschedule.
输入模式
{
"type": "object",
"properties": {
"appointment_id": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
"description": "Aryeo appointment id (UUID)."
},
"start_at": {
"type": "string",
"description": "New start. ISO 8601 date-time with a timezone, e.g. 2026-10-01T13:00:00Z."
},
"end_at": {
"type": "string",
"description": "New end. ISO 8601 date-time with a timezone, e.g. 2026-10-01T13:00:00Z."
},
"notify": {
"type": "boolean",
"description": "true = notify the order's customer of the new time; false = move silently. Required: decide explicitly."
}
},
"required": [
"appointment_id",
"start_at",
"end_at",
"notify"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢aryeo_list_available_timeslots(date, timezone, appointment_id, order_id, order_item_ids, ...)
Bookable timeslots for ONE day (in the given timezone) for a proposed or existing appointment. Give either appointment_id, or duration + interval (minutes). Optionally restrict to users and tie it to an order. GET /scheduling/available-timeslots.
输入模式
{
"type": "object",
"properties": {
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "The day to list, yyyy-mm-dd."
},
"timezone": {
"type": "string",
"minLength": 1,
"maxLength": 50,
"description": "Timezone that defines the day (required by Aryeo), e.g. America/Chicago."
},
"appointment_id": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
"description": "Existing appointment to find a new time for (UUID)."
},
"order_id": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
"description": "Order to calculate availability for (UUID)."
},
"order_item_ids": {
"description": "Order item ids of the proposed appointment.",
"maxItems": 50,
"type": "array",
"items": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}
},
"user_ids": {
"description": "Only slots where all of these users are free (user ids = company_user.id from aryeo_list_team_members, not the team member id).",
"maxItems": 50,
"type": "array",
"items": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}
},
"duration": {
"description": "Appointment length in minutes (required without appointment_id).",
"type": "integer",
"minimum": 1,
"maximum": 360
},
"interval": {
"description": "Slot start interval in minutes (required without appointment_id).",
"type": "integer",
"minimum": 1,
"maximum": 360
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"per_page": {
"description": "Results per page, 1-100 (Aryeo default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"required": [
"date",
"timezone"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢aryeo_list_available_dates(start_at, end_at, timeframe, timezone, appointment_id, ...)
Days that still have availability for a proposed or existing appointment: give a start/end range or a timeframe, plus either appointment_id or duration + interval (minutes). GET /scheduling/available-dates.
输入模式
{
"type": "object",
"properties": {
"start_at": {
"type": "string",
"description": "Availability after this moment. ISO 8601 date-time with a timezone, e.g. 2026-10-01T13:00:00Z."
},
"end_at": {
"type": "string",
"description": "Availability before this moment. ISO 8601 date-time with a timezone, e.g. 2026-10-01T13:00:00Z."
},
"timeframe": {
"description": "A named timeframe instead of start_at/end_at (see Aryeo docs: use page to move through weeks/months).",
"type": "string",
"enum": [
"DAY",
"WEEK",
"MONTH",
"YEAR"
]
},
"timezone": {
"type": "string",
"minLength": 1,
"maxLength": 50,
"description": "Client timezone (required by Aryeo); results are localized to it, e.g. America/Chicago."
},
"appointment_id": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
"description": "Existing appointment to find a new date for (UUID)."
},
"order_id": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
"description": "Order to calculate availability for (UUID)."
},
"order_item_ids": {
"description": "Order item ids of the proposed appointment.",
"maxItems": 50,
"type": "array",
"items": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}
},
"user_ids": {
"description": "Only dates where all of these users are free (user ids = company_user.id from aryeo_list_team_members, not the team member id).",
"maxItems": 50,
"type": "array",
"items": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}
},
"duration": {
"description": "Appointment length in minutes (required without appointment_id).",
"type": "integer",
"minimum": 1,
"maximum": 360
},
"interval": {
"description": "Slot start interval in minutes (required without appointment_id).",
"type": "integer",
"minimum": 1,
"maximum": 360
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"per_page": {
"description": "Results per page, 1-100 (Aryeo default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"required": [
"timezone"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢aryeo_list_listings(search, address, list_agent, status, active, ...)
List the property listings of your Aryeo company (address, status, price, bedrooms, delivery status, thumbnails). Filter by search text, address, listing agent, status, price/size ranges or delivery status. GET /listings.
输入模式
{
"type": "object",
"properties": {
"search": {
"description": "Listings with a field matching this text.",
"type": "string",
"minLength": 1,
"maxLength": 255
},
"address": {
"description": "Listings whose address matches, e.g. 123 Main St.",
"type": "string",
"minLength": 1,
"maxLength": 255
},
"list_agent": {
"description": "Listings whose listing or co-listing agent matches, e.g. John Doe.",
"type": "string",
"minLength": 1,
"maxLength": 255
},
"status": {
"description": "Only listings with this status.",
"type": "string",
"enum": [
"DRAFT",
"COMING_SOON",
"FOR_LEASE",
"FOR_SALE",
"PENDING_SALE",
"PENDING_LEASE",
"FOR_RENT",
"SOLD",
"LEASED",
"OFF_MARKET"
]
},
"active": {
"description": "true = only listings with an active status (coming soon, for sale/lease, pending, sold, leased).",
"type": "boolean"
},
"price_min": {
"description": "Minimum price.",
"type": "number",
"minimum": 0
},
"price_max": {
"description": "Maximum price.",
"type": "number",
"minimum": 0
},
"square_feet_min": {
"description": "Minimum square feet.",
"type": "number",
"minimum": 0
},
"square_feet_max": {
"description": "Maximum square feet.",
"type": "number",
"minimum": 0
},
"bedrooms_min": {
"description": "Minimum bedrooms.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"bedrooms_max": {
"description": "Maximum bedrooms.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"bathrooms_min": {
"description": "Minimum bathrooms.",
"type": "number",
"minimum": 0
},
"bathrooms_max": {
"description": "Maximum bathrooms.",
"type": "number",
"minimum": 0
},
"delivery_status": {
"description": "Only listings with this media delivery status.",
"type": "string",
"enum": [
"DELIVERED",
"UNDELIVERED",
"SCHEDULED"
]
},
"sort": {
"description": "Comma-separated sort fields; a leading - sorts descending. Default -created_at.",
"type": "string",
"maxLength": 100,
"pattern": "^[A-Za-z0-9_.,-]+$"
},
"include": {
"description": "Comma-separated relations to expand. Examples: list_agent, co_list_agent, images, files, videos, floor_plans, interactive_content, property_website, orders.appointments. An unknown value makes Aryeo reply with the allowed list.",
"type": "string",
"maxLength": 255,
"pattern": "^[A-Za-z0-9_.,]+$"
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"per_page": {
"description": "Results per page, 1-100 (Aryeo default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢aryeo_get_listing(listing_id, include)
One listing by id: address, status, price, lot/building details, agents. Add include=images,videos,orders.appointments for media and visits. GET /listings/{id}.
输入模式
{
"type": "object",
"properties": {
"listing_id": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
"description": "Aryeo listing id (UUID)."
},
"include": {
"description": "Comma-separated relations to expand. Examples: list_agent, co_list_agent, images, files, videos, floor_plans, interactive_content, property_website, orders.appointments. An unknown value makes Aryeo reply with the allowed list.",
"type": "string",
"maxLength": 255,
"pattern": "^[A-Za-z0-9_.,]+$"
}
},
"required": [
"listing_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢aryeo_get_listing_stats(listing_id)
Viewing statistics of a listing's property website (visits, views). GET /listings/{id}/stats.
输入模式
{
"type": "object",
"properties": {
"listing_id": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
"description": "Aryeo listing id (UUID)."
}
},
"required": [
"listing_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢aryeo_list_customers(search, name, email, email_domain, phone, ...)
List your customers (the agents, brokerages and teams who order from you) with contact details and balances. Filter by name, email, email domain, phone or search text. GET /customers.
输入模式
{
"type": "object",
"properties": {
"search": {
"description": "Customers matching this text.",
"type": "string",
"minLength": 1,
"maxLength": 255
},
"name": {
"description": "Customers with this name.",
"type": "string",
"minLength": 1,
"maxLength": 255
},
"email": {
"description": "Customers with this exact email address.",
"type": "string",
"minLength": 1,
"maxLength": 255
},
"email_domain": {
"description": "Customers whose email is on this domain, e.g. gmail.com.",
"type": "string",
"minLength": 1,
"maxLength": 255
},
"phone": {
"description": "Customers with this phone number.",
"type": "string",
"minLength": 1,
"maxLength": 255
},
"customer_team_ids": {
"description": "Comma-separated customer team ids.",
"type": "string",
"minLength": 1,
"maxLength": 255
},
"sort": {
"description": "Comma-separated sort fields; a leading - sorts descending. Default -created_at.",
"type": "string",
"maxLength": 100,
"pattern": "^[A-Za-z0-9_.,-]+$"
},
"include": {
"description": "Comma-separated relations to expand. Example: users. An unknown value makes Aryeo reply with the allowed list.",
"type": "string",
"maxLength": 255,
"pattern": "^[A-Za-z0-9_.,]+$"
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"per_page": {
"description": "Results per page, 1-100 (Aryeo default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡aryeo_create_customer(owner_first_name, owner_last_name, email, phone, team_name, ...)
Create a customer (an agent or brokerage that can place orders) in your Aryeo company from an owner name and email. Look the email up with aryeo_list_customers first to avoid duplicates. Aryeo may email the new customer an invitation. POST /customers.
输入模式
{
"type": "object",
"properties": {
"owner_first_name": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "First name of the customer owner."
},
"owner_last_name": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "Last name of the customer owner."
},
"email": {
"type": "string",
"maxLength": 255,
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"description": "Email address of the customer owner."
},
"phone": {
"description": "Phone number, e.g. 555-123-4567.",
"type": "string",
"maxLength": 50
},
"team_name": {
"description": "Name of the customer's team.",
"type": "string",
"maxLength": 200
},
"office_name": {
"description": "Name of the office or brokerage.",
"type": "string",
"maxLength": 200
},
"website_url": {
"description": "Website URL.",
"type": "string",
"maxLength": 255,
"format": "uri"
},
"license_number": {
"description": "Real estate license number.",
"type": "string",
"maxLength": 100
},
"description": {
"description": "Description of the customer.",
"type": "string",
"maxLength": 2000
},
"timezone": {
"description": "Default timezone, e.g. America/Chicago.",
"type": "string",
"maxLength": 50
}
},
"required": [
"owner_first_name",
"owner_last_name",
"email"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢aryeo_list_products(search, include_inactive, type, category_ids, sort, ...)
List your services/products (main products and add-ons) with type, active state and variants. Inactive products are hidden unless include_inactive is true. GET /products.
输入模式
{
"type": "object",
"properties": {
"search": {
"description": "Products with a field matching this text.",
"type": "string",
"minLength": 1,
"maxLength": 255
},
"include_inactive": {
"description": "true = also return inactive products.",
"type": "boolean"
},
"type": {
"description": "Only main products or only add-ons.",
"type": "string",
"enum": [
"MAIN",
"ADDON"
]
},
"category_ids": {
"description": "Only products in these category ids.",
"maxItems": 50,
"type": "array",
"items": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
}
},
"sort": {
"description": "Comma-separated sort fields; a leading - sorts descending. Default title.",
"type": "string",
"maxLength": 100,
"pattern": "^[A-Za-z0-9_.,-]+$"
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"per_page": {
"description": "Results per page, 1-100 (Aryeo default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢aryeo_list_product_categories(search, sort, page, per_page)
List the product categories (use the ids to filter aryeo_list_products). GET /product-categories.
输入模式
{
"type": "object",
"properties": {
"search": {
"description": "Categories with a field matching this text.",
"type": "string",
"minLength": 1,
"maxLength": 255
},
"sort": {
"description": "Comma-separated sort fields; a leading - sorts descending. Default title.",
"type": "string",
"maxLength": 100,
"pattern": "^[A-Za-z0-9_.,-]+$"
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"per_page": {
"description": "Results per page, 1-100 (Aryeo default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢aryeo_list_coupons(search, sort, include, page, per_page)
List discount coupons (name, percent or amount off, active state, times redeemed). GET /coupons.
输入模式
{
"type": "object",
"properties": {
"search": {
"description": "Coupons whose name matches.",
"type": "string",
"minLength": 1,
"maxLength": 255
},
"sort": {
"description": "Comma-separated sort fields; a leading - sorts descending. Default -created_at.",
"type": "string",
"maxLength": 100,
"pattern": "^[A-Za-z0-9_.,-]+$"
},
"include": {
"description": "Comma-separated relations to expand. Examples: promotion_codes, discountables. An unknown value makes Aryeo reply with the allowed list.",
"type": "string",
"maxLength": 255,
"pattern": "^[A-Za-z0-9_.,]+$"
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"per_page": {
"description": "Results per page, 1-100 (Aryeo default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢aryeo_list_order_forms(page, per_page)
List your order forms (the public booking forms customers use), with title, URL and scheduling settings. GET /order-forms.
输入模式
{
"type": "object",
"properties": {
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"per_page": {
"description": "Results per page, 1-100 (Aryeo default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢aryeo_list_team_members(search, include, page, per_page)
List your company's team members (photographers and staff) with role, status, service-provider flag and permissions. Each member has two ids: the member `id` (for aryeo_list_team_member_events and as the task assignee company_team_member_id) and `company_user.id` (the USER id, for the user_ids filters of orders, appointments, timeslots and dates). company_user is included by default. GET /company-team-members.
输入模式
{
"type": "object",
"properties": {
"search": {
"description": "Team members matching this text.",
"type": "string",
"minLength": 1,
"maxLength": 255
},
"include": {
"description": "Comma-separated relations to expand. Default: company_user. Example: company_user. An unknown value makes Aryeo reply with the allowed list.",
"type": "string",
"maxLength": 255,
"pattern": "^[A-Za-z0-9_.,]+$"
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"per_page": {
"description": "Results per page, 1-100 (Aryeo default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢aryeo_list_team_member_events(team_member_id, start, end, type, include_unscheduled)
A team member's calendar between two moments: appointments, blocks, external events and buffers. Use aryeo_list_team_members for the id. GET /company-team-members/{id}/events.
输入模式
{
"type": "object",
"properties": {
"team_member_id": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
"description": "Company team member id (UUID)."
},
"start": {
"type": "string",
"description": "Start of the window. ISO 8601 date-time with a timezone, e.g. 2026-10-01T13:00:00Z."
},
"end": {
"type": "string",
"description": "End of the window. ISO 8601 date-time with a timezone, e.g. 2026-10-01T13:00:00Z."
},
"type": {
"description": "Only events of this type.",
"type": "string",
"enum": [
"APPOINTMENT",
"CALENDAR_BLOCK",
"EXTERNAL",
"BUFFER",
"DECLINED_APPOINTMENT",
"UNSCHEDULED_APPOINTMENT"
]
},
"include_unscheduled": {
"description": "true = include unscheduled appointments.",
"type": "boolean"
}
},
"required": [
"team_member_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢aryeo_list_tasks
List tasks (to-dos such as editing or delivery steps) with assignee, due date and completion state. GET /tasks.
输入模式
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢aryeo_get_task(task_id)
One task by id. GET /tasks/{id}.
输入模式
{
"type": "object",
"properties": {
"task_id": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
"description": "Aryeo task id (UUID)."
}
},
"required": [
"task_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡aryeo_create_task(name, description, due_at, company_team_member_id)
Create a task, optionally with a description, due date and an assignee (a company team member id). POST /tasks.
输入模式
{
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255,
"description": "Task name."
},
"description": {
"description": "Task description.",
"type": "string",
"maxLength": 5000
},
"due_at": {
"type": "string",
"description": "Due date. ISO 8601 date-time with a timezone, e.g. 2026-10-01T13:00:00Z."
},
"company_team_member_id": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
"description": "Company team member to assign the task to (UUID)."
}
},
"required": [
"name"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴aryeo_complete_task(task_id, completed_at)
Mark a task completed (now, or at the given time). PUT /tasks/{id}/complete.
输入模式
{
"type": "object",
"properties": {
"task_id": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
"description": "Aryeo task id (UUID)."
},
"completed_at": {
"type": "string",
"description": "Completion time (default: now). ISO 8601 date-time with a timezone, e.g. 2026-10-01T13:00:00Z."
}
},
"required": [
"task_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}社区
证据