Public API Documentation
Authentication
To access the API, an AUTHORIZATION_TOKEN is required. This token can be generated and obtained from the settings page in our UI. Include this token in the header of your requests as follows:
Authorization: AUTHORIZATION_TOKEN
In order to create the Authorization Token, go to Settings → API Management.
Click on “Add new API Token” and assign a name for your new API Token. Save your changes.
Once you have your API Token created, you can click on the list item and copy your generated token value.
Endpoints
Locations
The locations endpoint allows you to retrieve locations from your business.
URL: https://public-api.eden.io/locations
Method: GET
Description: Retrieves locations associated with a business. By default returns only active floors and addresses. Supports filtering by type, parent location, and optionally including deactivated locations.
Headers: Include the Authorization header with your token.
Query Parameters:
type: Optional. Filter by location type. Values:floors_and_addresses(default when noparent_id),all,desks,rooms,floors,addresses. Whenparent_idis set, the default becomesall.parent_id: Optional. Relay ID of a location. When set, returns sublocations of that location. The default type filter becomesallwhen this parameter is used.include_deactivated: Optional. Set totrueto include deactivated locations. Default: only active locations are returned.
Response Format:
[ { "location_id": "TG9jYXRpb246MTIz", "parent_id": "TG9jYXRpb246NDU2", "title": "3rd Floor", "location_type": "floor", "deactivated_at": null, "visitor_types": [ { "visitor_type_id": "S25veDo6VmlzaXRvclR5cGU6MTIz", "title": "Employee" }, { "visitor_type_id": "S25veDo6VmlzaXRvclR5cGU6NDU2", "title": "Contractor" } ], "parent": { "location_id": "TG9jYXRpb246NDU2", "parent_id": "AB9jYdXRpb246sNDU3", "location_type": "address", "deactivated_at": null, "title": "Headquarters Building" } } ]Notes:
Results include all locations accessible to the authenticated user's business.
Parent locations (like buildings) will have child locations (like floors) associated with them.
The
parent_idwill be null for top-level locations.The
visitor_typesarray contains available visitor types for each location, which is useful when creating visitor invites.When no locations are found, the response will be:
{"message": "No items found"}.
Reservations
The reservations endpoint allows you to retrieve reservations from your business's ticket boards.
URL: https://public-api.eden.io/cola_reservations
Method: GET
Description: Retrieves all active reservations for a specified date and location.
Headers: Include the Authorization header with your token.
Query Parameters:
page: Optional. Page number for pagination. Defaults to 1.date: Optional. Format: YYYY-MM-DD. Defaults to today's date.location_id: Optional. Filters reservations by location. When omitted, returns reservations for all business locations.include_inactive_events: Optional. Given a true value, it includes canceled reservations. Default: false.
Response Format:
[ { "cola_reservation_id": "Q29sYTo6UmVzZXJ2YXRpb246MTIz", "start_at": "2023-06-01T09:00:00Z", "end_at": "2023-06-01T10:00:00Z", "checked_in_at": "2023-06-01T08:55:00Z", "checked_out_at": "2023-06-01T10:05:00Z", "status": "finished", "owner": { "customer_id": "Q3VzdG9tZXI6Nzg5", "name": "John Smith", "email": "[email protected]", "job_title": "Product Manager", "profile_image_uid": "profile_images/john_smith.jpg" }, "location": { "location_id": "TG9jYXRpb246NDU2", "title": "Conference Room A", "location_type": "Meeting Room" } } ]Notes:
Results are paginated with 25 items per page.
Reservations are sorted by start time in ascending order.
When no reservations are found, the response will be:
{"message": "No items found"}.The
statusfield indicates the current state of the reservation:scheduled | in_progress | finished | cancelled | released
Access logs
The access logs endpoint allows you to retrieve access logs from your business locations.
URL: https://public-api.eden.io/access_logs
Method: GET
Description: Fetches all visitors logs for a given date and location.
Headers: Include the Authorization header with your token.
Query Parameters:
start_date: Optional. Format: YYYY-MM-DD. Defaults to today's date.end_date: Optional. Defaults to one day afterstart_date. Format: YYYY-MM-DDlocation_id: Optional. Filters reservations by location. When omitted, returns reservations for all business locations.page: Optional. Page number for pagination. Defaults to 1.
Response Format:
[ { "access_log_id": "S25veDo6QWNjZXNzTG9nOjEyMw==", "point_of_contact": "Jane Doe", "visitor_type_title": "Interview Candidate", "formatted_reservation_date": "2023-06-01", "formatted_time": "2023-06-01T14:00:00Z", "formatted_exit_time": "2023-06-01T15:30:00Z", "legal_document_status": "Signed", "notes": "Candidate for Software Engineer position", "guest": { "guest_id": "S25veDo6R3Vlc3Q6NDU2", "name": "Alex Johnson", "email": "[email protected]", "notes": "Arriving by car" }, "location": { "location_id": "TG9jYXRpb246Nzg5", "title": "Headquarters", "location_type": "Office Building" } } ]Notes:
Results are sorted by reservation date and time in descending order (newest first).
The date range is limited to a maximum of 31 days between
start_dateandend_date.When no access logs are found, the response will be:
{"message": "No items found"}.The
legal_document_statusindicates whether required documents were signed by the visitor.Signed | Not Signed | Not Applicable
Time fields are formatted according to the business's timezone settings.
Create Visitor Invites
The visitor invites endpoint allows you to create invites for visitors to your business locations.
URL: https://public-api.eden.io/knox/invites
Method: POST
Description: Creates visitor invites for one or more guests to visit a specific location.
Headers: Include the Authorization header with your token.
Request Body Parameters:
{ "location_id": "TG9jYXRpb246NDU2", "visitor_type_id": "S25veDo6VmlzaXRvclR5cGU6Nzg5", "start_time": "2023-06-15T14:00:00Z", "end_time": "2023-06-15T15:00:00Z", "guests": [ { "name": "John Smith", "email": "[email protected]", "company": "Acme Inc", "notes": "Meeting about project collaboration", "send_invite": true } ] }Parameter Details:
location_id: Required. ID of the location where the visit will take place.visitor_type_id: Required. ID of the visitor type for this invite.start_time: Required. ISO 8601 formatted date and time when the visit begins.end_time: Optional. ISO 8601 formatted date and time when the visit ends.guests: Required. Array of guest information objects:name: Required. Full name of the guest.email: Required. Email address of the guest.company: Optional. Company or organization the guest represents.notes: Optional. Additional information about the guest or visit.send_invite: Optional. Boolean indicating whether to send an email invitation to the guest.
Response Format:
{ "message": "Invite created successfully", "invite": { "id": 123, "guest_name": "John Smith", "guest_email": "[email protected]", "location_name": "Headquarters Building", "start_time": "2023-06-15T14:00:00Z", "end_time": "2023-06-15T15:00:00Z", "created_at": "2023-06-10T09:30:00Z" } }Notes:
The user making the API request must have permission to invite guests.
The visitor type must be valid for the specified location.
When send_invite is true, an email invitation will be sent to the guest automatically.
Multiple guests can be included in a single request to invite a group of people for the same visit.
Error Responses:
Status Code | Description | Example Response |
401 | Unauthorized |
|
403 | Forbidden |
|
404 | Not Found |
|
422 | Unprocessable Entity |
|
Tickets
The tickets endpoint allows you to retrieve tickets from your business's ticket boards.
URL: https://public-api.eden.io/quip/tickets
Method: GET
Description: Retrieves tickets from your business's ticket boards.
Headers: Include the Authorization header with your token.
Query Parameters:
page: Optional. Page number for pagination. Defaults to 1.status: Optional. Filter tickets by status. Can be a column title, "deleted", or "archived".assigned_to_id: Optional. Filter tickets by assignee ID (GraphQL relay ID format).
Response Format:
[ { "ticket_id": "UXVpcDo6VGlja2V0OjEyMw==", "title": "Fix printer in conference room", "description": "The printer in the main conference room is not working properly.", "status": "In Progress", "created_at": "2023-05-15T10:30:00Z", "updated_at": "2023-05-16T14:20:00Z", "priority": { "id": "UXVpcDo6UHJpb3JpdHk6Nzg5", "name": "High" }, "due_at": "2023-05-20T17:00:00Z", "closed_at": null, "archived_at": null, "merged_at": null, "deleted_at": null, "location": { "location_id": "TG9jYXRpb246NDU2", "title": "Headquarters", "parent_id": null }, "assignee": { "customer_id": "Q3VzdG9tZXI6NDU2", "name": "Jane Doe", "email": "[email protected]", "job_title": "IT Support Specialist", "profile_image_uid": "profile_images/jane_doe.jpg" } } ]Notes:
Results are paginated with 50 items per page.
Tickets are sorted by creation date in descending order (newest first).
When no tickets are found, the response will be:
{"message": "No items found"}.The status parameter can be used to filter tickets by their column title or special statuses like "deleted" or "archived".
API Integration Patterns
The Eden Public API endpoints are designed to work together to enable common workflows. Here are some examples of how to use the endpoints together:
Visitor Invitation Workflow
Get Available Locations: Use the
GET /locationsendpoint to retrieve a list of all locations and their respective visitor types.Create Visitor Invite: Use the
POST /knox/invitesendpoint to create an invitation for a visitor, utilizing thelocation_idand appropriatevisitor_type_idobtained from the locations endpoint.View Visitor Logs: After the visit, use the
GET /access_logsendpoint to retrieve information about the visit, filtering by date and location.
Workspace Management Workflow
Browse Available Spaces: Use the
GET /locationsendpoint to get a list of all locations in your organization.Check Space Availability: Use the
GET /cola_reservationsendpoint with the desired date and location to see what reservations already exist.Monitor Space Usage: Use the
GET /access_logsendpoint to track visitor activity in your locations over time.
Issue Tracking Workflow
View Open Tickets: Use the
GET /quip/ticketsendpoint to retrieve tickets, filtering by status to focus on open issues.Associate Tickets with Locations: When resolving tickets, you can cross-reference the
location_idfields returned from both the tickets and locations endpoints.



