AgendaPro MCP by usefulapi

Read AgendaPro bookings, slots, clients, services and sales; create, update and cancel bookings.

¿Debería usar esto?

Calidad y seguridad

A
Calidad de la descripción
100%
Integridad del esquema
93%
Calidad de los nombres
78%
Riesgo de envenenamiento
100%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Hallazgos (3)

  • LOWTool 'agendapro_list_service_categories' name length outside 3-30 rangeen agendapro_list_service_categories
  • LOWTool 'agendapro_list_client_custom_attributes' name length outside 3-30 rangeen agendapro_list_client_custom_attributes
  • LOWTool 'agendapro_list_custom_attributes' name length outside 3-30 rangeen agendapro_list_custom_attributes

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~6,405Tokens (definiciones de herramientas)
~2.0 KBTamaño de respuesta típico
Impacto significativo en la atención (5.00% del contexto de 128k)

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": {
    "agendapro": {
      "url": "https://agendapro.usefulapi.io/mcp"
    }
  }
}

Puntos de conexión remotos

https://agendapro.usefulapi.io/mcpstreamable-http

Qué puede hacer

Inventario de herramientas

Herramientas (24)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟢agendapro_list_locations(active, page, per_page)

List the business's locations (sucursales / locales): id, name, address, phone, email, timezone, opening hours and country. Location ids are needed for bookings, slots and sales filters. GET /v3/locations.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "active": {
      "description": "Only active (true) or inactive (false) locations.",
      "type": "boolean"
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass pagination.next_page from the previous reply.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "per_page": {
      "description": "Results per page, 1-100 (default 30).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢agendapro_get_location(location_id)

One location by id, with address, coordinates, timezone and weekly opening hours. GET /v3/locations/{id}.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "location_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "AgendaPro location id."
    }
  },
  "required": [
    "location_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢agendapro_list_services(provider_id, page, per_page)

List the services (treatments, classes, sessions) the business offers: id, name, price, duration, type, category, whether online booking/payment is on, and the location. Service ids are needed to book. GET /v3/services.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "provider_id": {
      "description": "Only services this provider performs.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass pagination.next_page from the previous reply.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "per_page": {
      "description": "Results per page, 1-100 (default 30).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢agendapro_get_service(service_id)

One service by id, including its category, images and the providers who perform it. GET /v3/services/{id}.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "service_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "AgendaPro service id."
    }
  },
  "required": [
    "service_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢agendapro_list_service_categories(page, per_page)

List service categories, ordered as the business arranges them. GET /v3/categories.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "page": {
      "description": "Page number, from 1 (default 1). Pass pagination.next_page from the previous reply.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "per_page": {
      "description": "Results per page, 1-100 (default 30).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢agendapro_list_providers(location_ids, service_ids, public_name, active, sort_by, ...)

List service providers (the staff who take bookings): id, public name, location, active flag, online-booking flag and working hours. Provider ids are needed to book. GET /v3/providers.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "location_ids": {
      "description": "Only providers at these locations.",
      "minItems": 1,
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "integer",
        "exclusiveMinimum": 0,
        "maximum": 9007199254740991
      }
    },
    "service_ids": {
      "description": "Only providers who perform these services.",
      "minItems": 1,
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "integer",
        "exclusiveMinimum": 0,
        "maximum": 9007199254740991
      }
    },
    "public_name": {
      "description": "Partial match on the provider's public name.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "active": {
      "description": "Only active (true) or inactive (false) providers.",
      "type": "boolean"
    },
    "sort_by": {
      "description": "Field to sort by, e.g. public_name.",
      "type": "string",
      "pattern": "^[a-z_]{1,40}$"
    },
    "order_by": {
      "description": "Sort direction.",
      "type": "string",
      "enum": [
        "asc",
        "desc"
      ]
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass pagination.next_page from the previous reply.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "per_page": {
      "description": "Results per page, 1-100 (default 30).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢agendapro_get_provider(provider_id)

One service provider by id, with biography, images and working hours including breaks. GET /v3/providers/{id}.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "provider_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "AgendaPro provider id."
    }
  },
  "required": [
    "provider_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢agendapro_list_bookings(client_id, location_id, service_id, service_provider_id, scheduled, ...)

List bookings (reservas / appointments) with time, status, service, provider, client id, location, price and the linked sale. AgendaPro requires at least ONE of client_id, location_id, service_id or service_provider_id; dates only narrow the result. A sale may be a membership covering several bookings, so do not total amounts by sale id. GET /v3/bookings.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "client_id": {
      "description": "Bookings of this client.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "location_id": {
      "description": "Bookings at this location.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "service_id": {
      "description": "Bookings of this service.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "service_provider_id": {
      "description": "Bookings of this provider.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "scheduled": {
      "description": "Filter by the scheduled flag.",
      "type": "boolean"
    },
    "status_id": {
      "description": "Filter by booking status id (see the status object on a booking).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "start_date": {
      "description": "Bookings from this date, yyyy-mm-dd.",
      "type": "string",
      "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
    },
    "end_date": {
      "description": "Bookings until this date, yyyy-mm-dd.",
      "type": "string",
      "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass pagination.next_page from the previous reply.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "per_page": {
      "description": "Results per page, 1-100 (default 30).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢agendapro_get_booking(booking_id)

One booking by id with status, service, provider, client id, location, prices, notes and the linked sale. GET /v3/bookings/{id}.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "booking_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "AgendaPro booking id."
    }
  },
  "required": [
    "booking_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢agendapro_list_available_slots(location_id, start_date, service_id, provider_id)

Free booking time windows at a location on one date (optionally for one service and/or provider): start/end time, provider, plus a metadata summary (service duration, slot count). Use before creating a booking. GET /v3/available_slots.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "location_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Location to check."
    },
    "start_date": {
      "type": "string",
      "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
      "description": "The date to check, yyyy-mm-dd."
    },
    "service_id": {
      "description": "Only slots for this service.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "provider_id": {
      "description": "Only slots of this provider.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "location_id",
    "start_date"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴agendapro_create_booking(start_time, end_time, service_id, provider_id, client_id, ...)

WRITE: create a booking for an existing client, service, provider and location. Check agendapro_list_available_slots first. status_id must be a non-cancelled status: copy the status.id of an existing booking (agendapro_list_bookings). AgendaPro does NOT send email/SMS/WhatsApp notifications for bookings created through the API. Not idempotent: calling twice books twice. POST /v3/bookings.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "start_time": {
      "type": "string",
      "description": "Start, ISO 8601 with a timezone offset, e.g. 2026-03-10T10:00:00-03:00 (use the location's timezone)."
    },
    "end_time": {
      "description": "End; defaults to start + the service duration.",
      "type": "string"
    },
    "service_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Service id."
    },
    "provider_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Service provider id."
    },
    "client_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Client id (agendapro_search_clients / agendapro_create_client)."
    },
    "location_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Location id."
    },
    "status_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "A non-cancelled booking status id."
    },
    "price": {
      "description": "Price as a decimal string; defaults to the service price.",
      "type": "string",
      "pattern": "^\\d{1,12}(\\.\\d{1,4})?$"
    },
    "notes": {
      "description": "Booking notes.",
      "anyOf": [
        {
          "type": "string",
          "maxLength": 4000
        },
        {
          "type": "null"
        }
      ]
    },
    "time_resource_id": {
      "description": "Time resource id; required when the service needs one.",
      "anyOf": [
        {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "start_time",
    "service_id",
    "provider_id",
    "client_id",
    "location_id",
    "status_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴agendapro_update_booking(booking_id, start_time, end_time, service_id, provider_id, ...)

WRITE: change an existing booking (partial update: only the fields you pass change): move it, switch service/provider/location, change status, price or notes. The merchant's customer policy applies: a change too close to the start time, or past the maximum number of changes, is refused with HTTP 422 and must not be retried. PATCH /v3/bookings/{id}.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "booking_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "AgendaPro booking id."
    },
    "start_time": {
      "description": "New start, ISO 8601 with a timezone offset.",
      "type": "string"
    },
    "end_time": {
      "description": "New end, ISO 8601 with a timezone offset.",
      "type": "string"
    },
    "service_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "provider_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "client_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "location_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "status_id": {
      "description": "New booking status id (copy from another booking's status.id).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "price": {
      "type": "string",
      "pattern": "^\\d{1,12}(\\.\\d{1,4})?$"
    },
    "notes": {
      "description": "New notes; null clears them.",
      "anyOf": [
        {
          "type": "string",
          "maxLength": 4000
        },
        {
          "type": "null"
        }
      ]
    },
    "time_resource_id": {
      "description": "New time resource id; null removes the assigned resource.",
      "anyOf": [
        {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "booking_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴agendapro_cancel_booking(booking_id)

WRITE: cancel a booking. This cannot be undone through the API. The merchant's customer policy applies: a cancellation that is disabled, too close to the start time or past the maximum number of changes is refused with HTTP 422 (tell the user the merchant does not allow it; do not retry). Confirm with the user before calling. PATCH /v3/bookings/{id}/cancel.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "booking_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "AgendaPro booking id to cancel."
    }
  },
  "required": [
    "booking_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢agendapro_list_clients(page, per_page)

List the business's clients (customers) page by page: name, email, phone, identification number, address, birth date, record number, active flag. Personal data: only use it for the task at hand. To find one person use agendapro_search_clients. GET /v3/clients.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "page": {
      "description": "Page number, from 1 (default 1). Pass pagination.next_page from the previous reply.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "per_page": {
      "description": "Results per page, 1-100 (default 30).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢agendapro_search_clients(q, limit)

Find clients by free text (name, email, phone, identification number or record number): a short ranked list with id, full name, email, phone. The fastest way to get a client_id. GET /v3/clients/quick-search.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "q": {
      "type": "string",
      "minLength": 1,
      "maxLength": 50,
      "description": "Search text, max 50 characters."
    },
    "limit": {
      "description": "Max results, 1-25 (default 10).",
      "type": "integer",
      "minimum": 1,
      "maximum": 25
    }
  },
  "required": [
    "q"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢agendapro_get_client(client_id)

One client by id with contact details, address, birth date, record number and active flag. GET /v3/clients/{id}.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "client_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "AgendaPro client id."
    }
  },
  "required": [
    "client_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢agendapro_list_client_custom_attributes(client_id)

The custom attribute values stored for one client (id, name, datatype, value). GET /v3/clients/{id}/custom_attributes.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "client_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "AgendaPro client id."
    }
  },
  "required": [
    "client_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢agendapro_list_custom_attributes

The custom client fields the business defined (id, name, datatype, mandatory, group, choices). Use the template ids when setting custom_attributes on a client. GET /v3/custom_attributes.

Esquema de entrada

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴agendapro_create_client(first_name, last_name, email, phone, identification_number, ...)

WRITE: create a new client. first_name is required and at least one of last_name, email or phone must also be given (AgendaPro's rule). Search first (agendapro_search_clients) to avoid duplicates; not idempotent. No message is sent to the client. POST /v3/clients.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "first_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 255,
      "description": "First name."
    },
    "last_name": {
      "description": "Last name. On update, an empty string clears the stored value.",
      "type": "string",
      "maxLength": 255
    },
    "email": {
      "description": "Email (stored lowercase).",
      "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,}$"
    },
    "phone": {
      "description": "Phone in E.164 format, e.g. +56912345678.",
      "type": "string",
      "pattern": "^\\+[1-9]\\d{6,14}$"
    },
    "identification_number": {
      "description": "National identification number (RUT, DNI, CURP...). On update, an empty string clears the stored value.",
      "type": "string",
      "maxLength": 255
    },
    "address": {
      "description": "Street address. On update, an empty string clears the stored value.",
      "type": "string",
      "maxLength": 255
    },
    "district": {
      "description": "District or neighborhood. On update, an empty string clears the stored value.",
      "type": "string",
      "maxLength": 255
    },
    "city": {
      "description": "City. On update, an empty string clears the stored value.",
      "type": "string",
      "maxLength": 255
    },
    "region": {
      "description": "Region or state. On update, an empty string clears the stored value.",
      "type": "string",
      "maxLength": 255
    },
    "age": {
      "description": "Age in years.",
      "type": "integer",
      "minimum": 1,
      "maximum": 130
    },
    "gender": {
      "description": "0 = other, 1 = female, 2 = male.",
      "anyOf": [
        {
          "type": "number",
          "const": 0
        },
        {
          "type": "number",
          "const": 1
        },
        {
          "type": "number",
          "const": 2
        }
      ]
    },
    "birth_day": {
      "description": "Day of birth, 1-31.",
      "type": "integer",
      "minimum": 1,
      "maximum": 31
    },
    "birth_month": {
      "description": "Month of birth, 1-12.",
      "type": "integer",
      "minimum": 1,
      "maximum": 12
    },
    "birth_year": {
      "description": "Year of birth.",
      "type": "integer",
      "minimum": 1900,
      "maximum": 2100
    },
    "custom_attributes": {
      "description": "Custom attribute values to set.",
      "maxItems": 100,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991,
            "description": "Custom attribute template id (agendapro_list_custom_attributes)."
          },
          "value": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "number"
              },
              {
                "type": "boolean"
              }
            ]
          }
        },
        "required": [
          "id",
          "value"
        ]
      }
    }
  },
  "required": [
    "first_name"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴agendapro_update_client(client_id, first_name, last_name, email, phone, ...)

WRITE: change an existing client (partial update: only the fields you pass change; it overwrites the stored value). PATCH /v3/clients/{id}.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "client_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "AgendaPro client id."
    },
    "first_name": {
      "description": "First name.",
      "type": "string",
      "minLength": 1,
      "maxLength": 255
    },
    "last_name": {
      "description": "Last name. On update, an empty string clears the stored value.",
      "type": "string",
      "maxLength": 255
    },
    "email": {
      "description": "Email (stored lowercase).",
      "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,}$"
    },
    "phone": {
      "description": "Phone in E.164 format, e.g. +56912345678.",
      "type": "string",
      "pattern": "^\\+[1-9]\\d{6,14}$"
    },
    "identification_number": {
      "description": "National identification number (RUT, DNI, CURP...). On update, an empty string clears the stored value.",
      "type": "string",
      "maxLength": 255
    },
    "address": {
      "description": "Street address. On update, an empty string clears the stored value.",
      "type": "string",
      "maxLength": 255
    },
    "district": {
      "description": "District or neighborhood. On update, an empty string clears the stored value.",
      "type": "string",
      "maxLength": 255
    },
    "city": {
      "description": "City. On update, an empty string clears the stored value.",
      "type": "string",
      "maxLength": 255
    },
    "region": {
      "description": "Region or state. On update, an empty string clears the stored value.",
      "type": "string",
      "maxLength": 255
    },
    "age": {
      "description": "Age in years.",
      "type": "integer",
      "minimum": 1,
      "maximum": 130
    },
    "gender": {
      "description": "0 = other, 1 = female, 2 = male.",
      "anyOf": [
        {
          "type": "number",
          "const": 0
        },
        {
          "type": "number",
          "const": 1
        },
        {
          "type": "number",
          "const": 2
        }
      ]
    },
    "birth_day": {
      "description": "Day of birth, 1-31.",
      "type": "integer",
      "minimum": 1,
      "maximum": 31
    },
    "birth_month": {
      "description": "Month of birth, 1-12.",
      "type": "integer",
      "minimum": 1,
      "maximum": 12
    },
    "birth_year": {
      "description": "Year of birth.",
      "type": "integer",
      "minimum": 1900,
      "maximum": 2100
    },
    "custom_attributes": {
      "description": "Custom attribute values to set.",
      "maxItems": 100,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991,
            "description": "Custom attribute template id (agendapro_list_custom_attributes)."
          },
          "value": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "number"
              },
              {
                "type": "boolean"
              }
            ]
          }
        },
        "required": [
          "id",
          "value"
        ]
      }
    }
  },
  "required": [
    "client_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢agendapro_list_sales(paid_at_start, paid_at_end, location_id, client_id, page, ...)

List sales (ventas): status (partially_paid, paid, canceled, refunded), paid and pending amounts, paid-at time, location, client id and the payment transactions. Filter by paid date range, location or client. GET /v3/sales.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "paid_at_start": {
      "description": "Sales paid from this date (inclusive), yyyy-mm-dd.",
      "type": "string",
      "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
    },
    "paid_at_end": {
      "description": "Sales paid until this date (inclusive), yyyy-mm-dd.",
      "type": "string",
      "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
    },
    "location_id": {
      "description": "Sales at this location.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "client_id": {
      "description": "Sales to this client.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass pagination.next_page from the previous reply.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "per_page": {
      "description": "Results per page, 1-100 (default 30).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢agendapro_get_sale(sale_id)

One sale by id with amounts, status, location and its payment transactions (amount, paid-at, payment method). GET /v3/sales/{id}.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "sale_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "AgendaPro sale id."
    }
  },
  "required": [
    "sale_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢agendapro_list_products(active, search, product_category_id, product_brand_id, product_display_id, ...)

List retail products in the catalog: name, SKU, price, active flag, category, brand and display. GET /v3/products.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "active": {
      "description": "Only active (true) or inactive (false) products.",
      "type": "boolean"
    },
    "search": {
      "description": "Free text over product name and SKU.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "product_category_id": {
      "description": "Category id, or 'none' for products without a category.",
      "type": "string",
      "pattern": "^(\\d{1,18}|none)$"
    },
    "product_brand_id": {
      "description": "Brand id, or 'none'.",
      "type": "string",
      "pattern": "^(\\d{1,18}|none)$"
    },
    "product_display_id": {
      "description": "Display id, or 'none'.",
      "type": "string",
      "pattern": "^(\\d{1,18}|none)$"
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass pagination.next_page from the previous reply.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "per_page": {
      "description": "Results per page, 1-100 (default 30).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢agendapro_get_product(product_id)

One catalog product by id with description, SKU, price, category, brand and display. GET /v3/products/{id}.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "product_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "AgendaPro product id."
    }
  },
  "required": [
    "product_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada24 herramientas