Agencies
Create property
Section titled “Create property”Once the client has registered, he can start to synchronize those properties that require a virtual tour. To add a registered client’s property you must provide a property identifier and some basic data. You can also include other optional data to improve the browsing experience within a virtual tour.
If the request is completed successfully the API will return the Floorfy id_floorfy identifier of the property which you will need to save and link to the property you have just added.
Below are the URL and the parameters to register a property. The parameters must be sent in a JSON object to the URL indicated in the format shown in the example.
POST Method
Section titled “POST Method” https://api.floorfy.com/api/property/add?tk={ tk_agency }Parameters
Section titled “Parameters”| Field | Type | Description | Requirement |
|---|---|---|---|
| data | Object | Root element. | Required |
| id_origin | String | ID origin of the property. | Required |
| property_type | Integer | Identifier of the type of property. Floorfy supports the following property types:
| Optional |
| contract_type | Integer | Ad/contract type identifier. Floorfy supports the following ad/contract types:
| Optional |
| property_status | Integer | Identifier of the state of the property. A property can have these two types of status:
| Optional |
| amount | Float | Price of the property or monthly rent. | Optional |
| title | String | Title of the property or of the advertisement. | Optional |
| description | String | Textual description of the property or of the advertisement. Character limit: 4096. | Optional |
| rooms | Integer | Number of rooms. | Optional |
| bathrooms | Integer | Number of bathrooms. | Optional |
| living_area | Float | Total square meters of living space. | Optional |
| total_area | Float | Total square meters of the property. | Optional |
| location | Object | List of location data:
| Required |
| photographer | String | Email of the photographer (Floorfy’s username) that you wish to associate with the property. If there is an associated photographer, the property will only be accessible to this photographer; otherwise, it will be accessible to all the photographers of the agency that owns the property. | Optional |
| time_type | String | before for initial visits, after for final visits. | Optional |
| agent | Integer | ID of the agent to whom the property will be assigned. | Optional |
| year_building | Integer | Property construction year. | Optional |
| facilities | Array | Facilities available for the property:
| Optional |
| id_folder | Integer | Folder ID where the property will be saved. If not provided, the property will not be assigned to any folder. | Optional |
| id_watermark | Integer | Watermark ID to assign to the property. If an integer ID is provided and it exists, this watermark will be assigned to the property. If null is sent, any custom watermark assigned to the property will be removed, and the property will revert to using the agency’s default generic watermark. | Optional |
| Field | Type | Description |
|---|---|---|
| status | Integer | Result of the request: 0: Success1: Error |
| message | String | Informative message about the result of the request. |
| id_floorfy | Integer | Floorfy identifier of the property. |
Example
Section titled “Example”https://api.floorfy.com/api/property/add?tk=a_5723h3278 { "data": { "id_origin": "991121", "property_type": 2, "contract_type": 1, "property_status": 1, "amount": 3132, "title": "Piso en venta en buen estado con vistas al mar", "description": "Este piso está situado enfrente del paseo marítimo...", "rooms": 4, "bathrooms": 2, "living_area": 323, "total_area": 1132, "location": { "city": "Hospitalet del Llobregat", "address": "Rambla generalitat", "province": "Barcelona", "number": 32, "door": 1, "floor": 4, }, "photographer": "photographer@floorfy.com", "time_type": "after", "agent": 553, "facilities": [1, 2, 38, 50], "id_folder": 456, "id_watermark": 35 } } { "status": 0, "message": "Agency updated successfully", "id_floorfy": "991121" }Read property
Section titled “Read property”Get details from a specific property
GET Method
Section titled “GET Method” https://api.floorfy.com/api/properties/{id}?tk={tk_agency}Parameters
Section titled “Parameters”| Field | Type | Description |
|---|---|---|
| status | Integer | Result of the request: 0: Success1: Error |
| message | String | Informative message about the result of the request. |
| id | String | Floorfy identifier of the property. |
| tour | String | URL of the property. |
| idFloorfy | Integer | Floorfy identifier of the property. |
| youtube_url | String | URL of the video on YouTube. |
| video_url | String | URL of the video on Floorfy. |
| images | List | List of URLs with the flat images of the property. |
| imgs_watermark | List | List of URLs with the flat watermark images of the property. |
| bounded_floorplan | String | URL of the PDF of the bounded floorplan. |
| scaled_floorplan | String | URL of the scaled floorplan PDF. |
| uploaded_floorplan | String | URL of the uploaded floorplan PDF. |
| scaled_floorplan_images | Array | Array of scaled floorplan images. |
| bounded_floorplan_images | Array | Array of bounded floorplan images. |
| uploaded_floorplan_images | Array | Array of uploaded floorplan images. |
| last_upload_date | Date | Date of the last image uploaded to the property. |
| is_published | Boolean | Indicates if the tour is published. |
| property_type | Integer | Type of the property. |
| contract_type | Integer | Contract type. |
| amount | Integer | Cost of the property. |
| title | String | Property title. |
| description | String | Explanation of the property. |
| rooms | Integer | Number of rooms. |
| bathrooms | Integer | Number of bathrooms. |
| living_area | Integer | House area in square meters. |
| total_area | Integer | Total area of the property in square meters. |
| property_status | Integer | Status of the property: 1: Property is active0: Property is archived |
| version | Integer | Property version. |
| location | Object | List of location data:
|
| extras | Object | List of extra features the property has:
|
| id_folder | Integer | ID of the folder where the property is saved. Can be null. |
| id_watermark | Integer | Watermark ID assigned to the property. Can be null. |
Example
Section titled “Example”https://api.floorfy.com/api/properties/114?tk=da3d34dew5 { "status": 0, "message": "Property exists",
"id": "114", "tour": "https://floorfy.com/tour/114", "youtube_url": "https://www.youtube.com/watch?v=ZLTM0wV0rtk", "video_url": "https://floorfymdpd.s3-eu-west-1.amazonaws.com/path/name.mp4", "images": { 0: "https://floorfymdpd.s3-eu-west-1.amazonaws.com/path/name.jpg", 1: "https://floorfymdpd.s3-eu-west-1.amazonaws.com/path/name.jpg", 2: "https://floorfymdpd.s3-eu-west-1.amazonaws.com/path/name.jpg" }, "imgs_watermark": { 0: "https://floorfymdpd.s3-eu-west-1.amazonaws.com/path/name.jpg", 1: "https://floorfymdpd.s3-eu-west-1.amazonaws.com/path/name.jpg", 2: "https://floorfymdpd.s3-eu-west-1.amazonaws.com/path/name.jpg" }, "bounded_floorplan": "https://floorfymdpd.s3.eu-west-1.amazonaws.com/path/name_acotado.pdf", "scaled_floorplan": "https://floorfymdpd.s3.eu-west-1.amazonaws.com/path/name.pdf", "uploaded_floorplan": "https://floorfymdpd.s3.eu-west-1.amazonaws.com/path/name_uploaded.pdf", "scaled_floorplan_images": [ "https://floorfy-img-local-k.s3-eu-west-1.amazonaws.com/img/properties/2/1701/tourimages/croquis_scaled-65d8a19429576.jpg", "https://floorfy-img-local-k.s3-eu-west-1.amazonaws.com/img/properties/2/1701/tourimages/croquis_scaled-65d8a195635ac.jpg", "https://floorfy-img-local-k.s3-eu-west-1.amazonaws.com/img/properties/2/1701/tourimages/croquis_scaled-65d8a19687505.jpg" ], "bounded_floorplan_images": [ "https://floorfy-img-local-k.s3-eu-west-1.amazonaws.com/img/properties/2/1701/tourimages/croquis_acotated-65d8a194badf5.jpg", "https://floorfy-img-local-k.s3-eu-west-1.amazonaws.com/img/properties/2/1701/tourimages/croquis_acotated-65d8a1960109c.jpg", "https://floorfy-img-local-k.s3-eu-west-1.amazonaws.com/img/properties/2/1701/tourimages/croquis_acotated-65d8a19717d01.jpg" ], "uploaded_floorplan_images": [], "last_upload_date": "2022-07-27 14:34:28", "is_published": "true", "property_type": "2", "contract_type": "1", "property_status": "3", "title": "Piso en venta en buen estado con vistas al mar", "description": "Este piso está situado enfrente del paseo marítimo...", "rooms": "4", "bathrooms": "2", "living_area": "323", "total_area": "1132", "property_status": 1, "version": 2, "location": { "city": "Hospitalet del Llobregat", "address": "Rambla generalitat", "number": "32", "door": "4", "floor": "2" }, "extras": { "photographer": "photographer@floorfy.com" }, "id_folder": 456, "id_watermark": 35 }Update property
Section titled “Update property”You can update the data of a property after registration, for example if the price changes or if you want to archive the property. Below is the URL for updating the data of a property. The parameters are the same as those used to register the property, in this case the id_origin parameter is the only required parameter. In addition, if the same property has several versions, the version parameter can be added indicating which version to update, if it’s not added, the latest version will be updated.
POST Method
Section titled “POST Method” https://api.floorfy.com/api/property/update?tk={ tk_agency }Parameters
Section titled “Parameters”This uses the same parameters that are used to create the property, and the additional ones that we show below.
| Field | Type | Description | Requirement |
|---|---|---|---|
| data | Object | Root element. | Required |
| deleted | Boolean | true to delete the property. | Optional |
Example
Section titled “Example”https://api.floorfy.com/api/property/update?tk=a_5723h3278 { "data": { "id_origin": "544", "property_status": 0, "title": "New title" } } { "status": 0, "message": "Property updated successfully", "id_floorfy": 115 }Get properties
Section titled “Get properties”List of the tours that belong to the user owner of the token.
POST Method
Section titled “POST Method” https://api.floorfy.com/api/properties?tk={tk_agency}Parameters
Section titled “Parameters”| Field | Type | Description | Requirement |
|---|---|---|---|
| page | Integer | Page (Must be a number greater than 0). Default: 1. | Optional |
| email_user | String | Email of an agency user. If provided, only tours assigned to that user are returned. | Optional |
| Field | Type | Description |
|---|---|---|
| status | Integer | Result of the request: 0: Success1: Error |
| message | String | In case of error, informative message about the result of the request. |
| total | Integer | Number of properties. |
| current_page_total | Integer | Number of properties on the current page. |
| page | Integer | Current page. |
| properties | Array | List of properties:
|
| email_user | String | Email of the user assigned to the property. Can be null if no user is assigned. |
| id_folder | Integer | ID of the folder containing the property. Can be null if the property is not assigned to any folder. |
Example
Section titled “Example”https://api.floorfy.com/api/properties?tk=da3d34dew5 { "data": { "page": "1", "email_user": "user@agency.com" } } { "status": 0, "total": 4245, "current_page_total": 1245, "page": 2, "properties": [ { "id": "1714", "id_ext": "VI000030655635", "active": "true", "publish_status": "3" } ], "email_user": "photographer@agency.com", "id_folder": null }Upload panorama
Section titled “Upload panorama”To include equirectangular (spherical) images to a virtual tour, you must provide a property identifier and some basic information. If the request is completed successfully, the API will return a message like the one in the example. The URL and the parameters to add an image to the property are detailed below. The parameters must be sent in a JSON object to the indicated URL in the format that you will see in the example.
POST Method
Section titled “POST Method” https://api.floorfy.com/api/scene/upload?tk={ tk_agency }Parameters
Section titled “Parameters”| Field | Type | Description | Requirement |
|---|---|---|---|
| data | Object | Root element. | Required |
| id_origin | String | ID origin property identifier. | Required |
| room_type | String | Scene room name. | Optional |
| file | String | Valid base64 equirectangular image. | Required |
| Field | Type | Description |
|---|---|---|
| status | Integer | Result of the request: 0: Success1: Error |
| message | String | Informative message about the result of the request. |
| id_floorfy | String | Floorfy identifier of the property. |
Example
Section titled “Example”https://api.floorfy.com/api/scene/upload?tk=a_5723h3278 { "data": { "id_origin": "544", "room_type": "Living room", "file": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/ 4gxYSUNDX1BST0ZJTEUAAQEAAAxITGlubwIQAABtbnRyUkdCIFhZWiAHzgACAAkABgAxAABhY3NwTVNGVAAAAABJRUMgc1JHQgAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLUhQICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFjcHJ0AAABUAAAADNkZXNjAAABhAAAAGx3dHB0AAAB8AAAABRia3B0AAACBAAAABRyWFlaAAACGAAAABRnWFlaAAACLAAAABRiWFlaAAACQAAAABRkbW5kAAACVAAAAHBkbWRkAAACxAAAAIh2dWVkAAADTAAAAIZ2aWV3AAAD1AAAACRsdW1pAAAD+AAAABRtZWFzAAAEDAAAACR0ZWNoAAAEMAAAAAxyVFJDAAAEPAAACAxnVFJDAAAEPAAACAxiVFJDAAAEPAAACAx0ZXh0AAAAAENvcHlyaWdodCAoYykgMTk5OCBIZXdsZXR0LVBhY2thcmQgQ29tcGFueQAAZGVzYwAAAAAAAAASc1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAABJzUkdCIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAPNRAAEAAAABFsxYWVogAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAABvogAAOPUAAAOQWFlaIAAAAAAAAGKZAAC3hQAAGNpYWVogAAAAAAAAJKAAAA+EAAC2z2Rlc2MAAAAAAAAAFklFQyBodHRwOi8vd3d3LmllYy5jaAAAAAAAAAAAAAAAFklFQyBodHRwOi8vd3d3LmllYy5jaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkZXNjAAAAAAAAAC5JRUMgNjE5NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91ciBzcGFjZSAtIHNSR0IAAAAAAAAAAAAAAC5JRUMgNjE5NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91ciBzcGFjZSAtIHNSR0IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZGVzYwAAAAA", "version": 1 } } { "status": 0, "message": "Scene uploaded successfully", "id_floorfy": 115 }Upload list of panoramas
Section titled “Upload list of panoramas”To include equirectangular (spherical) images to a virtual tour, you must provide a property identifier and some basic information. If the request is completed successfully, the API will return a message like the one in the example. The URL and the parameters to add an image to the property are detailed below. The parameters must be sent in a JSON object to the indicated URL in the format that you will see in the example.
POST Method
Section titled “POST Method”https://api.floorfy.com/api/multiple/scene/upload?tk={ tk_agency }Parameters
Section titled “Parameters”| Field | Type | Description | Requirement |
|---|---|---|---|
| data | Object | Root element. | Required |
| id_origin | String | ID origin property identifier. | Required |
| files | Array | List of strings with image URLs to download. | Required |
| Field | Type | Description |
|---|---|---|
| status | Integer | Result of the request: 0: Success1: Error |
| message | String | Informative message about the result of the request. |
| id_floorfy | String | Floorfy identifier of the property. |
Example
Section titled “Example”https://api.floorfy.com/api/multiple/scene/upload?tk=a_5723h3278 { "data": { "id_origin": "544", "files": ["https://site.com/imagepath1.jpg", "https://site.com/imagepath2.jpg"], } } { "status": 0, "message": "Scenes processed: 23", "id_floorfy": 115 }Process tour
Section titled “Process tour”When the images are uploaded to the virtual tour, we can request the edition services. For this we must provide a property identifier and some basic data. If the request is completed successfully, the API will return a message like the one in the example. The URL and the necessary parameters are detailed below, these must be sent in a JSON object to the indicated URL with the format that you will see in the example.
Prices
Section titled “Prices”To request services you must have a payment method and an active subscription associated with your account.
- Virtual tour: The 360 assembly is FREE, the 3D one costs 15€.
- Floorplan: The dimensioned and scaled plan of the property costs 15€.
- Discount: If the 3D assembly + floorplan are requested on the same property, the total price will be 19€.
POST Method
Section titled “POST Method”https://api.floorfy.com/api/services/request?tk={ tk_agency }Parameters
Section titled “Parameters”It’s required to send at least one of the two parameters.
| Field | Type | Description | Requirement |
|---|---|---|---|
| data | Object | Root element. | Required |
| type | String | Select the assembly type:
| Optional |
| floorplan | Boolean | true or false to request floorplan. If the parameter is not sent, it will be interpreted as false. | Optional |
| Field | Type | Description |
|---|---|---|
| status | Integer | Request result: 0: Success1: Error |
| message | String | Informative message about the result of the request. |
| id_floorfy | String | Floorfy identifier of the property. |
Example
Section titled “Example”https://api.floorfy.com/api/services/request?tk=a_5723h3278 { "data": { "id_origin": "544", "type": "3D", "floorplan": false } } { "status": 0, "message": "Services requested successfully", "id_floorfy": 115 }Get tour status
Section titled “Get tour status”At any time you can consult Floorfy through the API if Floorfy has already registered one of its properties or if you want to know if the virtual tour of the property has already been carried out and is available. To do this you must provide us with the id of the property and the API will respond with status 0 and with the id of Floorfy in case the property is already registered at Floorfy.
POST Method
Section titled “POST Method”https://api.floorfy.com/api/property/exists?tk={ tk_agency }Parameters
Section titled “Parameters”| Field | Type | Description | Requirement |
|---|---|---|---|
| data | Object | Root element. | Required |
| id_origin | String | ID origin of the property. | Required |
| Field | Type | Description |
|---|---|---|
| status | Integer | Result of the request: 0: Success1: Error |
| message | String | Informative message about the result of the request. |
| id_floorfy | String | Floorfy identifier of the property. |
| has_tour | Integer | Result of the request: 1: Property with available tour0: Property without available tour |
| property_status | Integer | Result of the request: 1: Property is active0: Property is archived |
| prop_history | Object | List with the URLs of different versions of the property, with the version as the key. |
Example
Section titled “Example”https://api.floorfy.com/api/property/exists?tk=da3d34dew5 { "data": { "id_origin": "9191121" } } { "status": 0, "message": "Property exists", "id_floorfy": 580, "has_tour": 1, "property_status": 1, "prop_history": { 1: "https://floorfy.com/tour/100", 2: "https://floorfy.com/tour/234", 3: "https://floorfy.com/tour/580" }, }Edit tour with your ID
Section titled “Edit tour with your ID”To open the Floorfy tour editor directly from a property’s file in your system, without requiring the user’s authentication in Floorfy, you can include in the property’s edition file, or anywhere else, an iframe, link or button with the following address:
https://agency.floorfy.com/tour/edit?tk={ tk_agency }&id={ external_id }Edit tour with Floorfy ID
Section titled “Edit tour with Floorfy ID”To open the Floorfy tour editor directly from a property’s file in your system, without requiring the user’s authentication in Floorfy, you can include in the property’s edition file, or anywhere else, a link or button with the following address:
https://agency.floorfy.com/tour/edit/{ id_floorfy }?tk={ tk_agency }Include the id_floorfy that you have obtained in the reply to add a property and add as TK the tk_agency that identifies the agency and that you obtained when you registered the client. If the data is correct the user will enter the Floorfy tour editor with the session open and will be able to start editing the virtual tour.
Visualize tour
Section titled “Visualize tour”When the tour is generated it will be accessible through the following URL: https://floorfy.com/tour/{id_floorfy}. If you want to integrate the tour display into your portal, please request the integration guide from info@floorfy.com.
Get tours
Section titled “Get tours”The list of tours published using pagination will be available to Floorfy through the API. For this it will only be necessary to send a number that refers to the desired page. Each page has a limit of 3000 properties.
POST Method
Section titled “POST Method” https://api.floorfy.com/api/published/ready?tk={ tk_agency }Parameters
Section titled “Parameters”| Field | Type | Description | Requirement |
|---|---|---|---|
| page | Integer | Page (Must be a number greater than 0). Default: 1. | Optional |
| Field | Type | Description |
|---|---|---|
| status | Integer | Result of the request: 0: Success1: Error |
| message | String | In case of error, informative message about the result of the request. |
| total | Integer | Number of properties. |
| current_page_total | Integer | Number of properties on the current page. |
| page | Integer | Current page. |
| properties | Array | List of properties:
|
Example
Section titled “Example”https://api.floorfy.com/api/published/ready?tk=da3d34dew5 { "data": { "page": "1" } } { "status": 0, "total": 3000, "properties": [ { "id": "VI000030655635", "tour": "https://floorfy.com/tour/360", "videocall": true } ] }Create user
Section titled “Create user”In addition to the main user of the agency, an account can have other users who can access the account and manage the content of the properties.
The limit of agents that each account can have is established in the subscription plan. Once the agent is created, he will receive an email to activate his account.
The URL and parameters to register an agent are detailed below. The parameters must be sent in a JSON object to the indicated URL with the format that you will see in the example.
POST Method
Section titled “POST Method”https://api.floorfy.com/api/agent/add?tk={ tk_agency }Parameters
Section titled “Parameters”| Field | Type | Description | Requirement |
|---|---|---|---|
| data | Object | Root element. | Required |
| String | Agent email. | Required | |
| name | String | Agent name. | Optional |
| surname | String | Agent surname. | Optional |
| phone | String | Agent contact telephone number. | Optional |
| list_all_properties | Boolean | Whether the agent can see all properties or only those assigned to them. Default: true. | Optional |
| is_read_only | Boolean | Whether the agent has read-only permissions. If true, the agent can only view properties but cannot modify them. Default: false. | Optional |
| folders | Array of Integers | Array of folder IDs to assign to the agent. The agent will only have access to properties within these folders (and their subfolders). If not provided, defaults to empty array (agent has no folder restrictions). | Optional |
| Field | Type | Description |
|---|---|---|
| status | Integer | Result of the request: 0: Success1: Error |
| message | String | Informative message about the result of the request. |
Example
Section titled “Example”https://api.floorfy.com/api/agent/add?tk=p_as889h2e829jo { "data": { "email": "agent1@floorfy.com", "name": "John", "surname": "Smith", "phone": "938237283", "list_all_properties": true, "is_read_only": false, "folders": [1, 2, 3] } } { "status": 0, "message": "Agent added successfully", }Update user
Section titled “Update user”This endpoint allows you to update an existing user’s information. The user must belong to the authenticated agency. The email address serves as the identifier to locate the agent and cannot be modified.
Only the email field is required to identify the agent. All other fields are optional. If a field is provided, it will be updated. If a field is omitted, the current value is preserved.
Important: When updating folders, the provided array completely replaces the agent’s current folder assignments. To remove all folder assignments, send an empty array [].
The URL and parameters to update an agent are detailed below. The parameters must be sent in a JSON object to the indicated URL with the format shown in the example.
POST Method
Section titled “POST Method”https://api.floorfy.com/api/agent/update?tk={ tk_agency }Parameters
Section titled “Parameters”| Field | Type | Description | Requirement |
|---|---|---|---|
| data | Object | Root element. | Required |
| String | Agent email. | Required | |
| name | String | Agent name. | Optional |
| surname | String | Agent surname. | Optional |
| phone | String | Agent contact telephone number. | Optional |
| list_all_properties | Boolean | Whether the agent can see all properties or only those assigned to them. Default: true. | Optional |
is_read_only | Boolean | Whether the agent has read-only permissions. If true, the agent can only view properties but cannot modify them. Only updates if provided. | Optional |
folders | Array of Integers | Array of folder IDs to assign to the agent. Replaces all current folder assignments. To remove all folders, send an empty array []. Only updates if provided. | Optional |
| Field | Type | Description |
|---|---|---|
| status | Integer | Result of the request: 0: Success1: Error |
| message | String | Informative message about the result of the request. |
Example
Section titled “Example”https://api.floorfy.com/api/agent/update?tk=p_as889h2e829jo { "data": { "email": "agent1@floorfy.com", "name": "John", "surname": "Smith", "phone": "938237283", "list_all_properties": true, "is_read_only": true, "folders": [5, 6] } } { "status": 0, "message": "Agent added successfully", }Partial Update Example
Section titled “Partial Update Example”You can update only specific fields. Fields not included in the request will remain unchanged:
Request:
{ "data": { "email": "agent1@floorfy.com", "name": "John Updated", "is_read_only": true }}In this example, only name and is_read_only will be updated. All other fields (surname, phone, list_all_properties, folders) will remain as they were.
Get user by email
Section titled “Get user by email”Retrieves agent information by email address within the authenticated user’s agency.
POST Method
Section titled “POST Method”https://api.floorfy.com/api/agent/get?tk={ tk_agency }Parameters
Section titled “Parameters”| Field | Type | Description | Requirement |
|---|---|---|---|
| data | Object | Root element. | Required |
| String | Email address of the agent to retrieve. | Required |
| Field | Type | Description |
|---|---|---|
| status | Integer | Result of the request: 0: Success1: Error |
| message | String | In case of error, informative message about the result of the request. |
| id | Integer | Agent ID. |
| token | String | Agent token. |
| String | Agent email address. |
Example
Section titled “Example”https://api.floorfy.com/api/agent/get?tk=da3d34dew5 { "data": { "email": "agent@floorfy.com" } } { "status": 0, "message": "Success", "id": 123, "token": "abc123def456", "email": "agent@example.com" }List agency users
Section titled “List agency users”Retrieves all agents from the authenticated user’s agency.
POST Method
Section titled “POST Method”https://api.floorfy.com/api/agent/list?tk={ tk_agency }Parameters
Section titled “Parameters”| Field | Type | Description | Requirement |
|---|---|---|---|
| None | - | No parameters required. | - |
| Field | Type | Description |
|---|---|---|
| status | Integer | Result of the request: 0: Success1: Error |
| message | String | In case of error, informative message about the result of the request. |
| users | Array | List of agents.
|
| total | Integer | Total number of agents. |
Example
Section titled “Example”https://api.floorfy.com/api/agent/list?tk=da3d34dew5 { "data": {} } { "status": 0, "message": "Success", "users": [ { "id": 123, "token": "abc123def456", "email": "agent1@example.com" }, { "id": 124, "token": "def456ghi789", "email": "agent2@example.com" } ], "total": 2 }Create videocall
Section titled “Create videocall”To open a Floorfy videocall directly from your system, without requiring user authentication in Floorfy, you can include an iframe, link or button with the following address in the property’s edit tab, or elsewhere:
# Example with external_idhttps://agency.floorfy.com/api/videocall?tk={ tk_agency }&id_ext={ external_id }# Example with floorfy_id https://agency.floorfy.com/api/videocall?tk={ tk_agency }&id_floorfy={ floorfy_id }# Example with url_tour https://agency.floorfy.com/api/videocall?tk={ tk_agency }&url_tour={ url_tour }There are three ways to access a video call:
- Using your property identifier:
external_id - Using our property identifier:
floorfy_id - Using the URL of the virtual tour:
url_tour
The tk_agency that identifies the owning agency must also be added as tk. If the data is correct, the user will enter the video call with the session open.
Check openhouse status
Section titled “Check openhouse status”You can consult Floorfy through the API if you are doing an open house of the property at this moment.
To do so, you will only need to send the Floorfy ID of the property.
POST Method
Section titled “POST Method” https://api.floorfy.com/api/oh/inprogress?tk={ tk_partner }Parameters
Section titled “Parameters”| Field | Type | Description | Requirement |
|---|---|---|---|
| id | Integer | Floorfy ID associated with the property. | Required |
| Field | Type | Description |
|---|---|---|
| status | Integer | Result of the request: 0: Success1: Error |
| online | Boolean | Indicates if it is possible to make the call. |
Example
Section titled “Example”https://api.floorfy.com/api/oh/inprogress?tk=da3d34dew5 { "data": { "id": "138" } } { "status": 0, "online": true }Check openhouse contacts
Section titled “Check openhouse contacts”The contacts made by visitors during an open house can be consulted with Floorfy through the API.
For this it will only be necessary to send the Floorfy identifier of the property.
POST Method
Section titled “POST Method” https://api.floorfy.com/api/oh/contacts?tk={ tk_agency }Parameters
Section titled “Parameters”| Field | Type | Description | Requirement |
|---|---|---|---|
| id | Integer | Open House Identifier. | Required |
| Field | Type | Description |
|---|---|---|
| status | Integer | Request result: 0: Success1: Error |
| idfloorfy | Integer | Property ID. |
| idproperty | String | ID that refers to the property. |
| title | String | Title of the property. |
| agency | String | Agency to which the property belongs. |
| total_time_publish | String | Total number of times the property has been published. |
| users | Object | List of visiting users:
|
Example
Section titled “Example”https://api.floorfy.com/api/oh/contacts?tk=da3d34dew5 { "data": { "id": "138" } } { "status": 0, "idfloorfy": 138, "idproperty": "2235-AB", "title": "Flat in Barcelona", "agency": "FLOORFY", "total_time_publish": "1024", "users": [ { "name": "Marc", "sessions": [ { "time_start": "2021-02-15 11:42:31", "time_end": "2021-02-15 11:58:38" } ], "actions": [ { "email": "marc@gmail.com", "phone": "654654654", "date_contact": "2021-02-15 11:58:10", "amount": 4500, "type": "offer" } ] }, { "name": "Marta", "sessions": [ { "time_start": "2021-02-15 11:42:35", "time_end": "2021-02-15 11:58:38" } ], "actions": [ { "email": "marta@gmail.com", "phone": "654654654", "date_contact": "2021-02-15 11:47:21", "type": "info", "message": "Hola me interesa el piso" }, { "email": "marta@gmail.com", "phone": "654654654", "date_contact": "2021-02-15 11:58:10", "date_visit": "2021-02-21 11:00:00", "type": "schedule" } ] }, { "name": "Lilia", "sessions": [ { "time_start": "2021-02-15 11:42:39", "time_end": "2021-02-15 11:43:03" }, { "time_start": "2021-02-15 11:43:14", "time_end": "2021-02-15 11:47:09" }, { "time_start": "2021-02-15 11:48:43", "time_end": "2021-02-15 11:52:39" } ], "actions": [] } ] }Get room areas
Section titled “Get room areas”The list of rooms, with their respective areas grouped by floors. To obtain the list, simply send the id_origin of a property.
POST Method
Section titled “POST Method”https://api.floorfy.com/api/floorplan/get/room/area?tk={ tk_agency }Parameters
Section titled “Parameters”| Field | Type | Description | Requirement |
|---|---|---|---|
| id_origin | String | ID origin of the property. | Required |
| Field | Type | Description |
|---|---|---|
| status | Integer | Request result: 0: Success1: Error |
| room_areas | Object | The list of rooms, with their respective areas grouped by floors. |
| date_generated | String | Date and time of the last floorplan configuration generation. |
Example
Section titled “Example”https://api.floorfy.com/api/floorplan/get/room/area?tk=da3d34dew5 { "data": { "id_origin": "9191121" } } { "status": 0, "room_areas": [ [ { "area": "5.55", "name": "Dormitorio", "length": "287", "width": "193.97557921569842" }, { "area": "2.39", "name": "Pasillo", "length": "160", "width": "150.87032661156627" }, { "area": "3.16", "name": "Pasillo", "length": "82.68099240658483", "width": "9.922281868384744" }, { "area": "13.58", "name": "Patio", "length": "259.95971617463795", "width": "195.97267768611437" }, { "area": "5.07", "name": "Dormitorio", "length": "91", "width": "347" }, { "area": "3.56", "name": "Baño", "length": "260.9504955869363", "width": "136.97285717109207" }, { "area": "19.51", "name": "Dormitorio", "length": "420.92063713062294", "width": "612.9547125661402" }, { "area": "5.21", "name": "Terraza", "length": "327.89225296452054", "width": "677" }, { "area": "21.54", "name": "Salón", "length": "315.95823733578436", "width": "165.95454587067343" } ] ], "date_generated": "2025-01-31 11:58:01" }Create Folder
Section titled “Create Folder”To create a new property folder, you must provide a name and optionally a parent folder ID. The API will return the ID of the created folder.
POST Method
Section titled “POST Method” https://api.floorfy.com/api/folder/create?tk={ tk_agency }Parameters
Section titled “Parameters”| Field | Type | Description | Requirement |
|---|---|---|---|
| data | Object | Root element | Required |
| name | String | Name of the folder | Required |
| id_parent | Integer | ID of the parent folder. If not provided, the folder will be created as root | Optional |
Example
Section titled “Example” https://api.floorfy.com/api/folder/create?tk=a_5723h3278 { "data": { "name": "Main folder", "id_parent": 123 } } { "status": true, "msg": "Success", "id_folder": 456 }Update Folder
Section titled “Update Folder”To update an existing folder, you must provide the ID of the folder to be modified and at least one of the update parameters (name or parent folder).
POST Method
Section titled “POST Method”https://api.floorfy.com/api/folder/update?tk={ tk_agency }Parameters
Section titled “Parameters”| Field | Type | Description | Requirement |
|---|---|---|---|
| data | Object | Root element | Required |
| id_folder | Integer | ID of the folder to be updated | Required |
| name | String | New name of the folder | Optional* |
| id_parent | Integer | New ID of the parent folder. If null is sent, the parent relationship is removed | Optional* |
Example
Section titled “Example” https://api.floorfy.com/api/folder/update?tk=a_5723h3278 { "data": { "id_folder": 456, "name": "New folder name", "id_parent": 789 } } { "status": true, "msg": "Success", "id_folder": 456 }Delete Folder
Section titled “Delete Folder”To delete a folder and all its subfolders, you must provide the ID of the folder to be deleted. When a folder is deleted, all its subfolders will also be removed. The properties inside the deleted folders will be left without an assigned folder.
POST Method
Section titled “POST Method”https://api.floorfy.com/api/folder/delete?tk={ tk_agency }Parameters
Section titled “Parameters”| Field | Type | Description | Requirement |
|---|---|---|---|
| data | Object | Root element | Required |
| id_folder | Integer | ID of the folder to delete | Required |
Example
Section titled “Example” https://api.floorfy.com/api/folder/delete?tk=a_5723h3278 { "data": { "id_folder": 456 } } { "status": true, "msg": "Success" }List Folder
Section titled “List Folder”To list folders, you can provide the ID of a parent folder to filter results and retrieve only its subfolders. If no parent folder is specified, all folders belonging to the user will be returned. Each folder in the response includes its ID, name, parent folder reference, and the number of tours it contains.
POST Method
Section titled “POST Method”https://api.floorfy.com/api/folder/list?tk={ tk_agency }Parameters
Section titled “Parameters”| Field | Type | Description | Requirement |
|---|---|---|---|
| data | Object | Root element | Required |
| id_parent | Integer | Filter folders by parent folder ID. If omitted, returns all user folders. | Optional |
Example
Section titled “Example” https://api.floorfy.com/api/folder/list?tk=a_5723h3278 { "data": { "id_parent": 24 } } { "status": true, "folders": [ { "id": 25, "name": "My Folder", "parent_folder_id": 24, "tours_count": 5 }, { "id": 26, "name": "Subfolder", "parent_folder_id": 25, "tours_count": 2 } ] }Analytics API Endpoints
Section titled “Analytics API Endpoints”Get Analytics Summary
Section titled “Get Analytics Summary”Returns key metrics for a property including total visits, unique visitors, average viewing time, and number of Open Houses. This data is aggregated from the property’s visit history.
POST Method
Section titled “POST Method”https://api.floorfy.com/api/analytics/summary?tk={ tk_agency }Parameters
Section titled “Parameters”| Field | Type | Description | Requirement |
|---|---|---|---|
| id_origin | string | Origin identifier of the property to analyze. | Required |
Example
Section titled “Example” https://api.floorfy.com/api/analytics/summary?tk=a_5723h3278 { "data": { "id_origin": "9191121" } } { "status": true, "data": { "total_visits": 43, "total_users": 20, "average_time": 2870.3953488372094, "total_videocalls": 0 } }Get Analytics Locations
Section titled “Get Analytics Locations”Returns the geographical distribution of property visitors, showing which countries and regions the visitors are coming from. This helps track the property’s international reach.
POST Method
Section titled “POST Method”https://api.floorfy.com/api/analytics/locations?tk={ tk_agency }Parameters
Section titled “Parameters”| Field | Type | Description | Requirement |
|---|---|---|---|
| id_origin | string | Origin identifier of the property to analyze. | Required |
Example
Section titled “Example” https://api.floorfy.com/api/analytics/locations?tk=a_5723h3278 { "data": { "id_origin": "9191121" } } { "status": true, "data": { "locations": { "countries": { "ES": 17, "NL": 3, "FR": 5, "LU": 17, "BE": 1 }, "regions": { "ES-CT": 17, "NL-NH": 3, "FR-NOR": 5, "LU-?": 17, "BE-BRU": 1 } } } }Get Visits List
Section titled “Get Visits List”Returns a paginated list of all visits to the property. Each visit entry includes the source website, viewing duration, visitor’s location, and exact visit time. Use this to analyze individual visitor behavior.
POST Method
Section titled “POST Method”https://api.floorfy.com/api/analytics/visits?tk={ tk_agency }Parameters
Section titled “Parameters”| Field | Type | Description | Requirement |
|---|---|---|---|
| id_origin | string | Origin identifier of the property to analyze. | Required |
| page | string | Page number for pagination (minimum value: 1). | Required |
| limit | string | Number of items per page (minimum: 1, maximum: 100). | Required |
Example
Section titled “Example” https://api.floorfy.com/api/analytics/visits?tk=a_5723h3278 { "data": { "id_origin": "9191121", "page": "1", "limit": "20" } } { "status": true, "data": { "items": [ { "referrer": "https://floorfy.com/fr/tour/2298808", "time": 368, "country": "LU", "region": "?", "city": "luxembourg", "date": "2025-03-25T12:49:30.100Z" }, { "referrer": "https://floorfy.com/fr/tour/2298808", "time": 372, "country": "LU", "region": "?", "city": "luxembourg", "date": "2025-03-25T12:49:22.549Z" } ], "has_more": true } }Watermark API Endpoints
Section titled “Watermark API Endpoints”Upload Watermark
Section titled “Upload Watermark”Uploads a new watermark image and optionally sets it as active. The watermark can be used for different types of content (tour, photo, video, floorplan, scene). Only one watermark can be active per type.
POST Method
Section titled “POST Method”https://api.floorfy.com/api/watermark/upload?tk={ tk_agency }Parameters
Section titled “Parameters”| Field | Type | Description | Requirement |
|---|---|---|---|
| type | string | Type of watermark. Must be one of: tour, photo, video, floorplan, scene. | Required |
| watermark | string | Base64 encoded image data. | Required |
| active | boolean | Whether to set this watermark as active. | Required |
Example
Section titled “Example” https://api.floorfy.com/api/watermark/upload?tk=a_5723h3278 { "data": { "type": "tour", "watermark": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR4nGNgYAAAAAMAASsJTYQAAAAASUVORK5CYII=", "active": true } } { "status": true, "data": { "url": "https://cdn.example.com/img/user/123/wt_abc123.jpg", "id": 42 } }List watermarks
Section titled “List watermarks”Returns a list of all watermarks for the authenticated user, including their type, active status, and URLs.
GET Method
Section titled “GET Method”https://api.floorfy.com/api/watermark/list?tk={ tk_agency }Parameters
Section titled “Parameters”| Field | Type | Description | Requirement |
|---|---|---|---|
| type | string | Type of watermark. Must be one of: tour, photo, video, floorplan, scene. | Required |
| watermark | string | Base64 encoded image data . | Required |
| active | boolean | Whether to set this watermark as active. | Required |
Example
Section titled “Example” https://api.floorfy.com/api/watermark/list?tk=a_5723h3278 { "status": true, "data": [ { "id": 42, "type": "tour", "active": true, "url": "https://cdn.example.com/img/user/123/wt_abc123.jpg" }, { "id": 43, "type": "photo", "active": false, "url": "https://cdn.example.com/img/user/123/wt_def456.jpg" } ] }