Aryeo MCP by usefulapi
Manage real-estate media orders, appointments, listings, customers and tasks in Aryeo.
¿Debería usar esto?
Calidad y seguridad
Hallazgos (1)
- LOWen aryeo_complete_task
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"aryeo": {
"url": "https://aryeo.usefulapi.io/mcp"
}
}
}Puntos de conexión remotos
https://aryeo.usefulapi.io/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (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.
Esquema de entrada
{
"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}.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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}.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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}.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢aryeo_get_task(task_id)
One task by id. GET /tasks/{id}.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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"
}Comunidad
Evidencia