ECI Solutions Registrant Appointments API

The Registrant Appointments API from ECI Solutions — 3 operation(s) for registrant appointments.

Operations 6

GET /registrants/{registrantId}/appointments Retrieve a registrant's appointments #
POST /registrants/{registrantId}/appointments Create an appointment #
GET /registrants/{registrantId}/appointments/{appointmentId} Retrieve a single appointment #
PUT /registrants/{registrantId}/appointments/{appointmentId} Update an appointment #
DELETE /registrants/{registrantId}/appointments/{appointmentId} Delete an appointment #
POST /registrants/{registrantId}/appointments/{appointmentId}/email-confirmations Send email confirmations for an already existing appointment #

Documentation

Specifications

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/eci-solutions-registrant-appointments-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

eci-solutions-registrant-appointments-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Lasso Registrant Appointments API
  description: 'Overview


    Use this API to manage Registrant, Project, and Inventory data within Lasso CRM.'
  version: 1.0.39
servers:
- url: https://api.lassocrm.com/v1
  description: Production endpoint
tags:
- name: Registrant Appointments
paths:
  /registrants/{registrantId}/appointments:
    parameters:
    - in: path
      name: registrantId
      required: true
      schema:
        type: string
    get:
      summary: Retrieve a registrant's appointments
      operationId: get_registrants_appointments
      tags:
      - Registrant Appointments
      security:
      - JwtAuthorizer: []
      responses:
        200:
          description: Appointments found.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AppointmentRead'
        401:
          $ref: '#/components/responses/Unauthorized'
        403:
          $ref: '#/components/responses/Forbidden'
        404:
          $ref: '#/components/responses/NotFound'
        500:
          $ref: '#/components/responses/InternalServerError'
    post:
      summary: Create an appointment
      operationId: post_registrants_appointments
      tags:
      - Registrant Appointments
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AppointmentCreate'
      security:
      - JwtAuthorizer: []
      responses:
        201:
          description: Appointment successfully created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppointmentRead'
        400:
          $ref: '#/components/responses/BadRequest'
        401:
          $ref: '#/components/responses/Unauthorized'
        403:
          $ref: '#/components/responses/Forbidden'
        404:
          $ref: '#/components/responses/NotFound'
        500:
          $ref: '#/components/responses/InternalServerError'
  /registrants/{registrantId}/appointments/{appointmentId}:
    parameters:
    - in: path
      name: registrantId
      required: true
      schema:
        type: string
    - in: path
      name: appointmentId
      required: true
      schema:
        type: string
    get:
      summary: Retrieve a single appointment
      operationId: get_registrants_appointments_by_id
      tags:
      - Registrant Appointments
      security:
      - JwtAuthorizer: []
      responses:
        200:
          description: Appointment found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppointmentRead'
        401:
          $ref: '#/components/responses/Unauthorized'
        403:
          $ref: '#/components/responses/Forbidden'
        404:
          $ref: '#/components/responses/NotFound'
        500:
          $ref: '#/components/responses/InternalServerError'
    put:
      summary: Update an appointment
      operationId: put_registrants_appointments_by_id
      description: Update an appointment. This will overwrite all of the appointments data with the entity provided in the request payload. To avoid accidentally deleting appointment data, first perform a GET on the same resource, then modify the returned entity, and finally apply the entity through this PUT method.
      tags:
      - Registrant Appointments
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AppointmentUpdate'
      security:
      - JwtAuthorizer: []
      responses:
        200:
          description: Appointment successfully updated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppointmentRead'
        400:
          $ref: '#/components/responses/BadRequest'
        401:
          $ref: '#/components/responses/Unauthorized'
        403:
          $ref: '#/components/responses/Forbidden'
        404:
          $ref: '#/components/responses/NotFound'
        500:
          $ref: '#/components/responses/InternalServerError'
    delete:
      summary: Delete an appointment
      operationId: delete_registrants_appointments_by_id
      tags:
      - Registrant Appointments
      security:
      - JwtAuthorizer: []
      responses:
        204:
          description: Appointment Deleted
        401:
          $ref: '#/components/responses/Unauthorized'
        403:
          $ref: '#/components/responses/Forbidden'
        500:
          $ref: '#/components/responses/InternalServerError'
  /registrants/{registrantId}/appointments/{appointmentId}/email-confirmations:
    parameters:
    - in: path
      name: registrantId
      required: true
      schema:
        type: string
    - in: path
      name: appointmentId
      required: true
      schema:
        type: string
    post:
      summary: Send email confirmations for an already existing appointment
      operationId: post_registrants_appointments_email_confirmation
      tags:
      - Registrant Appointments
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/AppointmentEmailConfirmationRecipient'
      security:
      - JwtAuthorizer: []
      responses:
        200:
          description: Email confirmations successfully sent.
        400:
          $ref: '#/components/responses/BadRequest'
        401:
          $ref: '#/components/responses/Unauthorized'
        403:
          $ref: '#/components/responses/Forbidden'
        404:
          $ref: '#/components/responses/NotFound'
        500:
          $ref: '#/components/responses/InternalServerError'
components:
  responses:
    BadRequest:
      description: 'The request could not be processed due to invalid input:

        - Is the request payload malformed?

        - Are all required fields present?

        - Are field values of the expected type (ie, number format, date format)?

        - Are field values within the expected constraints (ie, greater than max size of string)?

        - Are query params of the expected format?


        Check the body model for more documentation on field constraints and limits.

        '
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/StandardError'
    Unauthorized:
      description: The request has not been fulfilled because it lacks valid authentication credentials
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/StandardError'
    InternalServerError:
      description: Receiving a 5xx response indicates an error on Lasso's end. Please contact us to report the problem
    NotFound:
      description: The specified resource was not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/StandardError'
    Forbidden:
      description: The provided authentication credentials does not have sufficient privileges to access this resource
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/StandardError'
  schemas:
    AppointmentCreate:
      type: object
      title: Appointment Create
      required:
      - name
      - startTime
      - endTime
      properties:
        name:
          type: string
          example: Design Center Selections
        description:
          type: string
          example: Come on in and make it yours
        details:
          type: string
          example: Appointment to make selection
        startTime:
          type: string
          format: datetime
          description: When the appointment is scheduled to start. Datetimes are in ISO-8601 UTC format.
          example: '2019-01-31T18:30:00Z'
        endTime:
          type: string
          format: datetime
          description: When the appointment is scheduled to end. Datetimes are in ISO-8601 UTC format.
          example: '2019-01-31T19:30:00Z'
        location:
          type: string
          example: 4601 US-377, Brownwood, TX 76801, United States
        isPublic:
          type: boolean
          example: false
        status:
          type: string
          enum:
          - Open
          - Tentative
          - Confirmed
          - Cancelled
          - Completed
          - No Show
        sendEmailConfirmation:
          type: array
          items:
            $ref: '#/components/schemas/AppointmentEmailConfirmationRecipient'
        scheduledSmsReminders:
          type: array
          items:
            $ref: '#/components/schemas/AppointmentSmsReminderRecipient'
        createdBy:
          $ref: '#/components/schemas/Creator'
    AppointmentRead:
      title: Appointment Read
      type: object
      properties:
        name:
          type: string
          example: Design Center Selections
        description:
          type: string
          example: Come on in and make it yours
        details:
          type: string
          example: Appointment to make selection
        startTime:
          type: string
          format: datetime
          description: When the appointment is scheduled to start. Datetimes are in ISO-8601 UTC format.
          example: '2019-01-31T18:30:00Z'
        endTime:
          type: string
          format: datetime
          description: When the appointment is scheduled to end. Datetimes are in ISO-8601 UTC format.
          example: '2019-01-31T19:30:00Z'
        location:
          type: string
          example: 4601 US-377, Brownwood, TX 76801, United States
        isPublic:
          type: boolean
          example: false
        status:
          type: string
          enum:
          - Open
          - Tentative
          - Confirmed
          - Cancelled
          - Completed
          - No Show
        appointmentId:
          type: string
          example: '123'
        scheduledSmsReminders:
          type: array
          items:
            $ref: '#/components/schemas/AppointmentSmsReminderRecipient'
        createdBy:
          $ref: '#/components/schemas/Creator'
        _links:
          $ref: '#/components/schemas/AppointmentLinks'
    StandardError:
      type: object
      title: Standard Error
      description: A standard error response format.
      properties:
        errorCode:
          type: integer
          example: 4xx
        error:
          type: string
          description: A summary of the error
          example: A summary of the error
        errorMessage:
          type: string
          description: Details of the error
          example: Details of the error
    AppointmentSmsReminderRecipient:
      type: object
      title: AppointmentReminderRecipient
      properties:
        phone:
          type: string
          minLength: 1
          maxLength: 20
          example: 123-456-7890
        message:
          type: string
          example: 'Del Boca Vista: your appt is Today at 9:45 am with Andrew. Call 123.456.7890 to contact us. Reply STOP to opt out'
    Creator:
      type: object
      title: Creator
      description: 'Determines the user that created this entity based on an ordered set of Heuristics:

        - if creator is null or empty, then default to user: Lasso Autobot

        - if userId is provided, then lookup user by id, respond with 400 level error if specified user does not exist

        - if user first and last name are provided, then lookup user by name, otherwise default to user: Lasso Autobot

        '
      properties:
        firstName:
          type: string
          example: John
        lastName:
          type: string
          example: Smith
        userId:
          type: string
          example: 123
    AppointmentUpdate:
      type: object
      title: Appointment Update
      required:
      - name
      - startTime
      - endTime
      properties:
        name:
          type: string
          example: Design Center Selections
        description:
          type: string
          example: Come on in and make it yours
        details:
          type: string
          example: Appointment to make selection
        startTime:
          type: string
          format: datetime
          description: When the appointment is scheduled to start. Datetimes are in ISO-8601 UTC format.
          example: '2019-01-31T18:30:00Z'
        endTime:
          type: string
          format: datetime
          description: When the appointment is scheduled to end. Datetimes are in ISO-8601 UTC format.
          example: '2019-01-31T19:30:00Z'
        location:
          type: string
          example: 4601 US-377, Brownwood, TX 76801, United States
        isPublic:
          type: boolean
          example: false
        status:
          type: string
          enum:
          - Open
          - Tentative
          - Confirmed
          - Cancelled
          - Completed
          - No Show
        scheduledSmsReminders:
          type: array
          items:
            $ref: '#/components/schemas/AppointmentSmsReminderRecipient'
        createdBy:
          $ref: '#/components/schemas/Creator'
    AppointmentEmailConfirmationRecipient:
      type: object
      title: Appointment Confirmation Recipient
      required:
      - email
      properties:
        firstName:
          type: string
          example: John
        lastName:
          type: string
          example: Smith
        email:
          type: string
          minLength: 1
          maxLength: 50
          example: test_registrant@lassocrm.com
    AppointmentLinks:
      type: object
      properties:
        self:
          type: string
          description: Link to the appointment
          example: /registrants/456/appointments/123
        update:
          type: string
          description: Link to update the appointment
          example: /registrants/456/appointments/123
        delete:
          type: string
          description: Link to delete the appointment
          example: /registrants/456/appointments/123
  securitySchemes:
    JwtAuthorizer:
      type: http
      scheme: bearer
      bearerFormat: JWT