Skip to content

Introduction

The Aryeo API provides access to the Aryeo platform.

Languages
Servers
Mock server
https://docs.aryeo.com/_mock/api/aryeo/
Production
https://api.aryeo.com/v1/

Addresses

Operations related to addresses. Addresses provide standardized address data.

Operations

Appointments

Operations related to appointments. Appointments are bookings for services that can be rescheduled, cancelled, and confirmed.

Operations

Company Users

Operations related to company users. Companies capture media for their customers. Company users represent photographers, videographers, administrators, and other staff.

Operations

Customer Users

Operations related to customer users. Customers receive media from companies. Customer users represent real-estate agents, assistants, listing coordinators, and brokerage members.

Operations

Discounts

Operations related to discounts. Discounts support percentage or fixed-amount discounts, and coupon codes.

Operations

Listings

Operations related to listings. Listings are the core entity that connects properties with media services.

Operations

Notes

Operations related to notes. Notes are contextual comments across various entities including orders, listings, customers, and appointments.

Operations

Order Forms

Operations related to order forms. Order forms are the customer-facing booking interfaces for service requests, product selection, and appointment scheduling.

Operations

Order Items

Operations related to order items. Order items are the individual line items within orders.

Operations

Orders

Operations related to orders. Orders are the service orders from customers.

Operations

Payroll

Operations related to payroll.

Operations

Products

Operations related to products. Products consist of the categories and offerings for services and products.

Operations

Scheduling

Operations related to scheduling. Scheduling operations provide information about service provider availability.

Operations

Request

Create block.

undocumented: false
external: true
Security
Token
Bodyapplication/json

BlockPostPayload

company_team_member_idsArray of strings or null(uuid)

The IDs of the company team members assigned to the block.

Example: ["123e4567-e89b-12d3-a456-426614174000"]
user_idsArray of strings or null(uuid)

The IDs of the users assigned to the block.

Example: ["123e4567-e89b-12d3-a456-426614174000"]
start_atstring(date-time)= 20 charactersrequired

The start time of the block (ISO 8601 format).

Example: "2020-10-04T12:15:00Z"
end_atstring(date-time)= 20 charactersrequired

The end time of the block (ISO 8601 format).

Example: "2020-10-04T12:30:00Z"
titlestring[ 0 .. 255 ] charactersrequired

The title of the block.

Example: "Other appointment"
descriptionstring or null[ 0 .. 2000 ] characters

The description of the block.

Example: "This is a description of the block."
const resp = await fetch(
  `https://docs.aryeo.com/_mock/api/aryeo/blocks`,
  {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      Authorization: 'Bearer <YOUR_TOKEN_HERE>'
    },
    body: JSON.stringify({
      company_team_member_ids: [
        '123e4567-e89b-12d3-a456-426614174000'
      ],
      user_ids: [
        '123e4567-e89b-12d3-a456-426614174000'
      ],
      start_at: '2020-10-04T12:15:00Z',
      end_at: '2020-10-04T12:30:00Z',
      title: 'Other appointment',
      description: 'This is a description of the block.'
    })
  }
);

const data = await resp.json();
console.log(data);

Responses

CalendarEventResource

Bodyapplication/json
statusstring[ 0 .. 255 ] charactersrequired

What was the state of the request?

Example: "success"
dataobject(CalendarEvent)

A calendar event.

timestampstring or null(date-time)= 20 characters

The request timestamp (ISO 8601).

Example: "2021-06-30T20:30:00Z"
Response
application/json
{ "status": "success", "data": { "id": "123e4567-e89b-12d3-a456-426614174000", "type": "appointment", "title": "Other appointment", "description": "sdjsudsudsds", "start_at": "2020-10-04T12:15:00Z", "end_at": "2020-10-04T12:30:00Z", "is_all_day": true, "duration": 60, "is_busy": true, "requires_confirmation": true }, "timestamp": "2021-06-30T20:30:00Z" }

Request

Delete block.

undocumented: false
external: true
Security
Token
Path
block_idstring(uuid)= 36 characters^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[89ab][0...required

The ID of a block. UUID Version 4.

Example: 00000000-0000-4000-8000-000000000000
const blockId = '00000000-0000-4000-8000-000000000000';
const resp = await fetch(
  `https://docs.aryeo.com/_mock/api/aryeo/blocks/${blockId}`,
  {
    method: 'DELETE',
    headers: {
      Authorization: 'Bearer <YOUR_TOKEN_HERE>'
    }
  }
);

if (resp.status === 204) {
  console.log('success');
} else {
  const data = await resp.text();
  console.log(data);
}

Responses

No Content

Response
No content

Request

Get block.

undocumented: false
external: true
Security
Token
Path
block_idstring(uuid)= 36 characters^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[89ab][0...required

The ID of a block. UUID Version 4.

Example: 00000000-0000-4000-8000-000000000000
const blockId = '00000000-0000-4000-8000-000000000000';
const resp = await fetch(
  `https://docs.aryeo.com/_mock/api/aryeo/blocks/${blockId}`,
  {
    method: 'GET',
    headers: {
      Authorization: 'Bearer <YOUR_TOKEN_HERE>'
    }
  }
);

const data = await resp.text();
console.log(data);

Responses

CalendarBlockResource

Bodyapplication/json
statusstring[ 0 .. 255 ] charactersrequired

What was the state of the request?

Example: "success"
dataobject(CalendarBlock)

A calendar block.

timestampstring or null(date-time)= 20 characters

The request timestamp (ISO 8601).

Example: "2021-06-30T20:30:00Z"
Response
application/json
{ "status": "success", "data": { "id": "123e4567-e89b-12d3-a456-426614174000", "type": "appointment", "title": "Other appointment", "description": "sdjsudsudsds", "start_at": "2020-10-04T12:15:00Z", "end_at": "2020-10-04T12:30:00Z", "is_all_day": true, "duration": 60, "is_busy": true, "users": [ { "object": "PERSONAL_ACCESS_TOKEN", "id": "00000000-0000-4000-8000-000000000000", "email": "john.doe@gmail.com", "first_name": "John", "last_name": "Doe", "full_name": "John Doe", "internal_notes": "Internal notes for the user.", "status": "active", "phone": "123456789", "avatar_url": "https://picsum.photos/300", "relationship": "owner", "sso_users": [ { … } ], "is_super": true, "verification_status": "verified", "password_expiration_days": 30, "timezone": "America/New_York", "created_at": "2021-06-30T20:30:00Z" } ], "company_team_members": [ { "object": "COMPANY_TEAM_MEMBER", "id": "00000000-0000-4000-8000-000000000000", "calendar_color": "#FF0000", "permissions": [ { … } ], "restrictions": [ {} ], "is_service_provider": true, "external_id": "1234567890", "company_user": { "object": "PERSONAL_ACCESS_TOKEN", "id": "00000000-0000-4000-8000-000000000000", "email": "john.doe@gmail.com", "first_name": "John", "last_name": "Doe", "full_name": "John Doe", "internal_notes": "Internal notes for the user.", "status": "active", "phone": "123456789", "avatar_url": "https://picsum.photos/300", "relationship": "owner", "sso_users": [ … ], "is_super": true, "verification_status": "verified", "password_expiration_days": 30, "timezone": "America/New_York", "created_at": "2021-06-30T20:30:00Z" }, "has_owner_role": true, "is_owner": true, "invitation_accepted_at": "2025-04-01T05:59:59.999999Z", "role": "ADMIN", "status": "active", "is_active": true, "is_invited": true, "is_revoked": true, "scheduling_priority": 1, "created_at": "2025-04-01T05:59:59.999999Z", "require_appointment_confirmation": true } ] }, "timestamp": "2021-06-30T20:30:00Z" }

Request

Update block.

undocumented: false
external: true
Security
Token
Path
block_idstring(uuid)= 36 characters^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[89ab][0...required

The ID of a block. UUID Version 4.

Example: 00000000-0000-4000-8000-000000000000
const blockId = '00000000-0000-4000-8000-000000000000';
const resp = await fetch(
  `https://docs.aryeo.com/_mock/api/aryeo/blocks/${blockId}`,
  {
    method: 'PUT',
    headers: {
      Authorization: 'Bearer <YOUR_TOKEN_HERE>'
    }
  }
);

const data = await resp.text();
console.log(data);

Responses

CalendarEventResource

Bodyapplication/json
statusstring[ 0 .. 255 ] charactersrequired

What was the state of the request?

Example: "success"
dataobject(CalendarEvent)

A calendar event.

timestampstring or null(date-time)= 20 characters

The request timestamp (ISO 8601).

Example: "2021-06-30T20:30:00Z"
Response
application/json
{ "status": "success", "data": { "id": "123e4567-e89b-12d3-a456-426614174000", "type": "appointment", "title": "Other appointment", "description": "sdjsudsudsds", "start_at": "2020-10-04T12:15:00Z", "end_at": "2020-10-04T12:30:00Z", "is_all_day": true, "duration": 60, "is_busy": true, "requires_confirmation": true }, "timestamp": "2021-06-30T20:30:00Z" }

Request

List regions.

undocumented: true
external: true
Security
Token
const resp = await fetch(
  `https://docs.aryeo.com/_mock/api/aryeo/regions`,
  {
    method: 'GET',
    headers: {
      Authorization: 'Bearer <YOUR_TOKEN_HERE>'
    }
  }
);

const data = await resp.text();
console.log(data);

Responses

200

Bodyapplication/json
object
Response
application/json
{}

Request

Get scheduling assignment.

undocumented: true
external: true
Security
Token
const resp = await fetch(
  `https://docs.aryeo.com/_mock/api/aryeo/scheduling/assignment`,
  {
    method: 'GET',
    headers: {
      Authorization: 'Bearer <YOUR_TOKEN_HERE>'
    }
  }
);

const data = await resp.text();
console.log(data);

Responses

200

Bodyapplication/json
object
Response
application/json
{}

Request

List available dates. Availability can be listed using a specific start & end date range, or using a timeframe. When using a timeframe, the page parameter can be used to flip through weeks, months, etc.

external: true
Security
Token
Query
filter[user_ids][]Array of strings(uuid)

The IDs of users whose availability will be listed. UUID Version 4.

Example: filter[user_ids][]=00000000-0000-4000-8000-000000000000
filter[appointment_id]string= 36 characters^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[89ab][0...

Appointment ID used to list availability for an existing order

Example: filter[appointment_id]=00000000-0000-4000-8000-000000000000
filter[start_at]string(date-time)= 20 characters

Returns availability after start_at

Example: filter[start_at]=2021-01-01T13:00:00Z
filter[end_at]string(date-time)= 20 characters

Returns availability before end_at

Example: filter[end_at]=2021-01-02T13:00:00Z
filter[timeframe]string[ 1 .. 5 ] characters

Returns availability for a specific timeframe. Used instead of start_at & end_at

Enum"DAY""WEEK""MONTH""YEAR"
Example: filter[timeframe]=MONTH
durationinteger[ 1 .. 360 ]

Duration of the event to schedule. Required if appointment_id isn't specified

Example: duration=60
intervalinteger[ 1 .. 360 ]

Interval of bookable timeslots starting at x minutes on the hour . Required if appointment_id isn't specified

Example: interval=15
timezonestring[ 3 .. 50 ] charactersrequired

The timezone of the client. Available dates results will be localized to this timezone

Example: timezone=CST
pageinteger>= 1

The requested page of results. Use this parameter to flip through pages when using the timeframe filter

Example: page=1
per_pageinteger

The number of results per page. Only applies when using a date range

Example: per_page=5
const query = new URLSearchParams({timezone: 'CST'}).toString();

const resp = await fetch(
  `https://docs.aryeo.com/_mock/api/aryeo/scheduling/available-dates?${query}`,
  {
    method: 'GET',
    headers: {
      Authorization: 'Bearer <YOUR_TOKEN_HERE>'
    }
  }
);

const data = await resp.text();
console.log(data);

Responses

CalendarDayCollection

Bodyapplication/json
statusstring[ 0 .. 255 ] charactersrequired

What was the state of the request?

Example: "success"
dataArray of objects or null(CalendarDay)

A collection of objects.

metaobject(CalendarDayCollectionMeta)

Metadata about a calendar day paginated response.

linksobject(PaginationLinks)

Related links for a paginated response.

timestampstring or null(date-time)= 20 characters

The request timestamp (ISO 8601).

Example: "2021-06-30T20:30:00Z"
Response
application/json
{ "status": "success", "data": [ { "date": "2021-01-01", "is_available": true } ], "meta": { "group_id": "00000000-0000-4000-8000-000000000000", "company_id": "00000000-0000-4000-8000-000000000000", "company_team_member_ids": [ "00000000-0000-4000-8000-000000000000" ], "user_ids": [ "00000000-0000-4000-8000-000000000000" ], "appointment_id": "00000000-0000-4000-8000-000000000000", "start_at": "2021-06-30T20:30:00Z", "end_at": "2021-06-30T21:30:00Z", "timezone": "CST", "is_twilight": true, "interval": 30, "duration": 30, "current_page": 1, "timeframe": "DAY", "timeframe_period": { "startDate": "2025-04-01T05:59:59.999999Z", "endDate": "2025-04-01T05:59:59.999999Z", "startDateIncluded": true, "endDateIncluded": true }, "from": 1, "last_page": 4, "links": [ { "url": "https://admin.aryeo.test/api/v1/companies?page=2", "label": "2", "active": true, "page": 2 } ], "path": "https://api.aryeo.com/v1/{path}", "per_page": 15, "to": 15, "total": 50 }, "links": { "first": "https://api.aryeo.com/v1/{path}?page=1", "last": "https://api.aryeo.com/v1/{path}?page=10", "prev": "https://api.aryeo.com/v1/{path}?page=2", "next": "https://api.aryeo.com/v1/{path}?page=3" }, "timestamp": "2021-06-30T20:30:00Z" }

Request

List available timeslots. Timeslots are returned for the entire day in the local timezone.

Results are returned in UTC!

external: true
Security
Token
Query
filter[user_ids][]Array of strings(uuid)

The IDs of users whose appointments will be listed. UUID Version 4.

Example: filter[user_ids][]=00000000-0000-4000-8000-000000000000
filter[appointment_id]string= 36 characters^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[89ab][0...

Appointment ID used to list availability for an existing order

Example: filter[appointment_id]=00000000-0000-4000-8000-000000000000
durationinteger[ 1 .. 360 ]

Duration of the event to schedule. Required if appointment_id isn't specified

Example: duration=60
intervalinteger[ 1 .. 360 ]

Interval of bookable timeslots starting at x minutes on the hour . Required if appointment_id isn't specified

Example: interval=25
pageinteger>= 1

The requested page of results

Example: page=1
per_pageinteger>= 1

The number of results per page. Only applies when using a date range

Example: per_page=5
datestring(date)= 10 charactersrequired

The date to list available timeslots

Example: date=2021-01-01
timezonestring[ 3 .. 50 ] charactersrequired

The timezone is used to determine the start and end time of the specified date to list a full day of results.

Example: timezone=CST
const query = new URLSearchParams({
  date: '2021-01-01',
  timezone: 'CST'
}).toString();

const resp = await fetch(
  `https://docs.aryeo.com/_mock/api/aryeo/scheduling/available-timeslots?${query}`,
  {
    method: 'GET',
    headers: {
      Authorization: 'Bearer <YOUR_TOKEN_HERE>'
    }
  }
);

const data = await resp.text();
console.log(data);

Responses

TimeslotCollection

Bodyapplication/json
statusstring[ 0 .. 255 ] charactersrequired

What was the state of the request?

Example: "success"
dataArray of objects or null(Timeslot)

A collection of objects.

metaobject(CalendarDayCollectionMeta)

Metadata about a calendar day paginated response.

linksobject(PaginationLinks)

Related links for a paginated response.

timestampstring or null(date-time)= 20 characters

The request timestamp (ISO 8601).

Example: "2021-06-30T20:30:00Z"
Response
application/json
{ "status": "success", "data": [ { "start_at": "2021-01-01T00:00:00Z", "end_at": "2021-01-01T00:30:00Z", "users": [ { "object": "PERSONAL_ACCESS_TOKEN", "id": "00000000-0000-4000-8000-000000000000", "email": "john.doe@gmail.com", "first_name": "John", "last_name": "Doe", "full_name": "John Doe", "internal_notes": "Internal notes for the user.", "status": "active", "phone": "123456789", "avatar_url": "https://picsum.photos/300", "relationship": "owner", "sso_users": [ … ], "is_super": true, "verification_status": "verified", "password_expiration_days": 30, "timezone": "America/New_York", "created_at": "2021-06-30T20:30:00Z" } ] } ], "meta": { "group_id": "00000000-0000-4000-8000-000000000000", "company_id": "00000000-0000-4000-8000-000000000000", "company_team_member_ids": [ "00000000-0000-4000-8000-000000000000" ], "user_ids": [ "00000000-0000-4000-8000-000000000000" ], "appointment_id": "00000000-0000-4000-8000-000000000000", "start_at": "2021-06-30T20:30:00Z", "end_at": "2021-06-30T21:30:00Z", "timezone": "CST", "is_twilight": true, "interval": 30, "duration": 30, "current_page": 1, "timeframe": "DAY", "timeframe_period": { "startDate": "2025-04-01T05:59:59.999999Z", "endDate": "2025-04-01T05:59:59.999999Z", "startDateIncluded": true, "endDateIncluded": true }, "from": 1, "last_page": 4, "links": [ { "url": "https://admin.aryeo.test/api/v1/companies?page=2", "label": "2", "active": true, "page": 2 } ], "path": "https://api.aryeo.com/v1/{path}", "per_page": 15, "to": 15, "total": 50 }, "links": { "first": "https://api.aryeo.com/v1/{path}?page=1", "last": "https://api.aryeo.com/v1/{path}?page=10", "prev": "https://api.aryeo.com/v1/{path}?page=2", "next": "https://api.aryeo.com/v1/{path}?page=3" }, "timestamp": "2021-06-30T20:30:00Z" }

Request

List schedule item groupings.

undocumented: true
external: true
Security
Token
const resp = await fetch(
  `https://docs.aryeo.com/_mock/api/aryeo/scheduling/item-groupings`,
  {
    method: 'GET',
    headers: {
      Authorization: 'Bearer <YOUR_TOKEN_HERE>'
    }
  }
);

const data = await resp.text();
console.log(data);

Responses

200

Bodyapplication/json
object
Response
application/json
{}

Tags

Operations related to tags. Tags are used to organize and categorize content using a flexible tagging system.

Operations

Tasks

Operations related to tasks. Tasks are used to track work items, assignments, and completion status.

Operations

Videos

Operations related to videos.

Operations