openapi: 3.2.0 info: title: Finalcad One Project Locations API version: '2.41' summary: 'Project-level operations for Finalcad One construction projects: project details, project libraries, members, locations (folders / plans / IFC), discussion groups, companies, modules (observations / forms / meetings), observations, forms and form answers, documents, phases, meetings and XLSX/PDF exports.' description: 'Project-level operations for Finalcad One construction projects: project details, project libraries, members, locations (folders / plans / IFC), discussion groups, companies, modules (observations / forms / meetings), observations, forms and form answers, documents, phases, meetings and XLSX/PDF exports. DERIVED, NOT PUBLISHED BY THE PROVIDER. Finalcad publishes no OpenAPI. This document was mechanically derived by API Evangelist from the first-party public Postman collection "Finalcad One API" served by Finalcad at https://developer.finalcad.com/ (collection JSON: https://developer.finalcad.com/api/collections/10995648/Tz5v1Es2), saved in this repo at collections/finalcad.postman_collection.json. Every path, method, header, query parameter, example request body and example response below is carried over from that collection; nothing was invented. Request/response bodies are typed as generic objects because the collection carries examples, not schemas. Four Finalcad employees'' personal e-mail addresses that appeared in the collection''s example payloads were replaced with placeholders; nothing else was changed.' contact: name: Finalcad One API — developer portal url: https://developer.finalcad.com/ x-generated-by: API Evangelist enrichment pipeline (derived from the first-party Postman collection) x-source: collections/finalcad.postman_collection.json x-source-url: https://developer.finalcad.com/ servers: - url: https://developer.finalcad.cloud/api description: Production — the baseUrl variable published in the Finalcad One API Postman collection. - url: https://developer.sandbox.finalcad.cloud/api description: Sandbox — published by Finalcad in the 'Retrieve data in Power BI' tutorial of the same collection. security: - apiKey: [] tokenAuth: [] tags: - name: Locations paths: /projects/{projectId}/folders/{folderId}: put: operationId: locationsUpdateFolder summary: Update folder description: "You can move (change the parent) or rename a folder.\n\n Details \n\n project_Id \n the id of the project to be modified \n\n body optional infos \n Details \n\n name \n new name of the folder \n\n parent_id \n id of the new parent of the folder" tags: - Locations parameters: - name: projectId in: path required: true schema: type: string description: Path variable `projectId` as published in the collection. - name: folderId in: path required: true schema: type: string description: Path variable `folderId` as published in the collection. requestBody: required: true content: application/json: schema: type: object example: name: parent_id: responses: '200': description: OK content: application/json: schema: type: object examples: Success: value: id: b257d7d2-f310-455e-82d9-9f82ce51fcc3 name: driver parent_id: 78c445fe-ec0d-4d2b-bbd5-7c3727f86b34 enabled: true created_at: '2022-11-29T15:12:56.340687Z' created_by: 25ff0593-dd4c64d0-1579-4354-8a2b-260b34025b6a updated_at: '2022-11-29T15:13:07.0828953Z' updated_by: 25ff0593-dd4c64d0-1579-4354-8a2b-260b34025b6a '400': description: Bad Request — an `api_code` static error code and message envelope. See errors/finalcad-problem-types.yml. content: application/json: schema: $ref: '#/components/schemas/ApiError' '401': description: Unauthorized — the API key or user token is missing or invalid. content: application/json: schema: $ref: '#/components/schemas/ApiError' '500': description: Server error — a constructed `{ProcessCode}_ERR{n}` api_code envelope. content: application/json: schema: $ref: '#/components/schemas/ApiError' delete: operationId: locationsDeleteFolder summary: Delete folder description: "You can delete a folder.\n\n Endpoint mandatory infos \n Details \n\n project_Id \n the id of the project to be modified \n\n folder_id \n the id of the folder" tags: - Locations parameters: - name: projectId in: path required: true schema: type: string description: Path variable `projectId` as published in the collection. - name: folderId in: path required: true schema: type: string description: Path variable `folderId` as published in the collection. responses: '200': description: Success '400': description: Bad Request — an `api_code` static error code and message envelope. See errors/finalcad-problem-types.yml. content: application/json: schema: $ref: '#/components/schemas/ApiError' '401': description: Unauthorized — the API key or user token is missing or invalid. content: application/json: schema: $ref: '#/components/schemas/ApiError' '500': description: Server error — a constructed `{ProcessCode}_ERR{n}` api_code envelope. content: application/json: schema: $ref: '#/components/schemas/ApiError' /projects/{project_id}/folders: get: operationId: locationsGetFolderTree summary: Get folder tree description: "Before creating folders, you might want to have an overview of the ones deployed in your project. This helps you manage it based on the current context.\n\n Endpoint mandatory infos \n Details \n\n project_id \n the id of the project to be modified \n\n Query params optionals \n\n see Commmon behaviors / differential" tags: - Locations parameters: - name: project_id in: path required: true schema: type: string description: Path variable `project_id` as published in the collection. responses: '200': description: OK content: application/json: schema: type: object examples: Success: value: folders: - id: 89cae481-e28c-452f-9253-d293658d2720 name: aaaaaaaa enabled: true created_at: '2024-05-22T11:57:03.421945Z' created_by: 25ff0593-dd4c64d0-1579-4354-8a2b-260b34025b6a updated_at: '2024-05-22T11:57:03.421945Z' updated_by: 25ff0593-dd4c64d0-1579-4354-8a2b-260b34025b6a - id: 42c828e2-b063-4292-9e06-7520c6be853e name: bbbbbbbb enabled: true created_at: '2024-05-22T11:57:11.689485Z' created_by: 25ff0593-dd4c64d0-1579-4354-8a2b-260b34025b6a updated_at: '2024-05-22T11:57:11.689485Z' updated_by: 25ff0593-dd4c64d0-1579-4354-8a2b-260b34025b6a need_to_relaunch: true continuous_token: 0|2 count: 2 total_count: 3 '400': description: Bad Request — an `api_code` static error code and message envelope. See errors/finalcad-problem-types.yml. content: application/json: schema: $ref: '#/components/schemas/ApiError' '401': description: Unauthorized — the API key or user token is missing or invalid. content: application/json: schema: $ref: '#/components/schemas/ApiError' '500': description: Server error — a constructed `{ProcessCode}_ERR{n}` api_code envelope. content: application/json: schema: $ref: '#/components/schemas/ApiError' post: operationId: locationsCreateFolder summary: Create folder description: "Folders allow plans organization but also preview and context. A folder comes with a name.\n\n You can specify where to add the folder in your hierarchy by specifying its parent (another folder or the root).\n\n Details \n\n project_Id \n the id of the project to be modified \n\n body mandatory infos \n Details \n\n name \n name of the folder \n\n body optional infos \n Details \n\n parent_id \n the id of the parent folder in the hierarchy" tags: - Locations parameters: - name: project_id in: path required: true schema: type: string description: Path variable `project_id` as published in the collection. requestBody: required: true content: application/json: schema: type: object example: name: responses: '200': description: OK content: application/json: schema: type: object examples: Success: value: id: 08780149-b53e-47e0-9dde-0a1f1eb7cb4f name: Plans GO enabled: true created_at: '2023-06-29T08:53:47.1898491Z' created_by: 25ff0593-dd4c64d0-1579-4354-8a2b-260b34025b6a updated_at: '2023-06-29T08:53:47.1898491Z' updated_by: 25ff0593-dd4c64d0-1579-4354-8a2b-260b34025b6a Success_with_parent: value: id: 10ead329-3eaf-4669-b2ed-4a2e7ad085b9 name: RDC parent_id: 08780149-b53e-47e0-9dde-0a1f1eb7cb4f enabled: true created_at: '2023-06-29T08:54:31.6168973Z' created_by: 25ff0593-dd4c64d0-1579-4354-8a2b-260b34025b6a updated_at: '2023-06-29T08:54:31.6168973Z' updated_by: 25ff0593-dd4c64d0-1579-4354-8a2b-260b34025b6a '400': description: Bad Request — an `api_code` static error code and message envelope. See errors/finalcad-problem-types.yml. content: application/json: schema: $ref: '#/components/schemas/ApiError' '401': description: Unauthorized — the API key or user token is missing or invalid. content: application/json: schema: $ref: '#/components/schemas/ApiError' '500': description: Server error — a constructed `{ProcessCode}_ERR{n}` api_code envelope. content: application/json: schema: $ref: '#/components/schemas/ApiError' /projects/{project_id}/folders/children-folders: get: operationId: locationsGetFolderContent summary: Get folder content description: "You can get the content (plans and/or folders) for a folder\n\n Endpoint mandatory infos \n Details \n\n project_id \n the id of the project to be modified \n\n Endpoint optional query infos \n Details \n\n folder_id \n id of the parent folder \n\n type \n folder or plan or null" tags: - Locations parameters: - name: project_id in: path required: true schema: type: string description: Path variable `project_id` as published in the collection. responses: '200': description: OK content: application/json: schema: type: object examples: Success: value: contents: - id: 77a6ef89-d541-4e07-8efb-694045f6f698 type: folder name: machine order: 3072 created_at: '2025-02-13T16:14:02.404779Z' updated_at: '2025-02-13T16:14:11.503789Z' enabled: true - id: 8f77778d-dce7-4659-8ba4-5a50d3dd7827 type: plan name: image (1).png order: 4096 created_at: '2025-04-22T09:56:43.546463Z' updated_at: '2025-04-22T09:56:43.546463Z' enabled: true - id: f8a9269f-3214-4cc2-8a2f-668d2ead7709 type: plan name: image (2).png order: 4096 created_at: '2025-04-22T09:56:43.546366Z' updated_at: '2025-04-22T09:56:43.546366Z' enabled: true count: 3 '400': description: Bad Request — an `api_code` static error code and message envelope. See errors/finalcad-problem-types.yml. content: application/json: schema: $ref: '#/components/schemas/ApiError' '401': description: Unauthorized — the API key or user token is missing or invalid. content: application/json: schema: $ref: '#/components/schemas/ApiError' '500': description: Server error — a constructed `{ProcessCode}_ERR{n}` api_code envelope. content: application/json: schema: $ref: '#/components/schemas/ApiError' /projects/{project_id}/plans: get: operationId: locationsGetPlanTree summary: Get plan tree description: "Before creating new plans, you might want to have an overview of the ones deployed in your project. This helps you manage it based on the current context.\n\n Endpoint mandatory infos \n Details \n\n project_Id \n the id of the project to be modified \n\n Query params optionals \n\n see Commmon behaviors / differential" tags: - Locations parameters: - name: project_id in: path required: true schema: type: string description: Path variable `project_id` as published in the collection. responses: '200': description: OK content: application/json: schema: type: object examples: Success: value: plans: - id: ccf9856b-6b58-44e2-886d-d34c202f4ac8 name: LogoTest.png project_id: 45d2b228-25681789-2dbe-42d7-8310-491ab3ab360f media_resource: id: 29b0a2c8-ecf4-4d25-834d-fa551be8bc67 file_name: LogoTest.png mime_type: image/png created_at: '2024-05-22T11:57:48.475643Z' enabled: true form_instances_counter: 0 observations_counter: 0 created_at: '2024-05-22T11:57:50.396692Z' created_by: 25ff0593-dd4c64d0-1579-4354-8a2b-260b34025b6a updated_at: '2024-05-22T11:57:50.396692Z' updated_by: 25ff0593-dd4c64d0-1579-4354-8a2b-260b34025b6a - id: b2c569b7-566a-4b60-b3a9-008d117fe59d name: postman.png project_id: 45d2b228-25681789-2dbe-42d7-8310-491ab3ab360f media_resource: id: 41a26f90-fa62-49e7-8758-c2115265e0e2 file_name: postman.png mime_type: image/png created_at: '2024-05-22T11:57:48.47598Z' enabled: true form_instances_counter: 0 observations_counter: 0 created_at: '2024-05-22T11:57:50.396858Z' created_by: 25ff0593-dd4c64d0-1579-4354-8a2b-260b34025b6a updated_at: '2024-05-22T11:57:50.396858Z' updated_by: 25ff0593-dd4c64d0-1579-4354-8a2b-260b34025b6a need_to_relaunch: true continuous_token: 0|2 count: 2 total_count: 5 '400': description: Bad Request — an `api_code` static error code and message envelope. See errors/finalcad-problem-types.yml. content: application/json: schema: $ref: '#/components/schemas/ApiError' '401': description: Unauthorized — the API key or user token is missing or invalid. content: application/json: schema: $ref: '#/components/schemas/ApiError' '500': description: Server error — a constructed `{ProcessCode}_ERR{n}` api_code envelope. content: application/json: schema: $ref: '#/components/schemas/ApiError' post: operationId: locationsCreatePlans summary: Create plans description: "Plans will be used in applications to localize items. You can specify where to add the plans in your hierarchy by specifying its parent (a folder or the root).\n\n Adding a media to a plan is mandatory. You need to go through \"Upload medias\" to get a media ID.\n\n Here is information regarding plan formats that can be used:\n\n Plans Format \n Details \n\n PNG, JPG \n Image format with fixed size and zoom \n\n DWG, PDF \n Vector format with infinite zoom \n\n Endpoint mandatory infos \n Details \n\n project_Id \n the id of the project to be modified \n\n body mandatory infos \n Details \n\n name \n name of the plan \n\n media_id \n id of the media of the plan \n\n body optional infos \n Details \n\n folder_id \n the id of the parent folder in the hierarchy \n\n plan_id \n the id of the new plan (if omitted, an id should be automatcly affected)" tags: - Locations parameters: - name: project_id in: path required: true schema: type: string description: Path variable `project_id` as published in the collection. requestBody: required: true content: application/json: schema: type: object example: name: media_id: responses: '200': description: OK content: application/json: schema: type: object examples: Success: value: id: 4569a529-ca5e-4def-a842-a353df901384 name: test 1 project_id: 234081e3-99f07760-3af6-4349-99d2-4e32319404ab media_resource: id: 9e03638e-2ddd-40b2-8656-d07f875edc35 file_name: lang1.png mime_type: image/png enabled: true created_at: '2022-11-29T14:01:41.0414517Z' created_by: 25ff0593-dd4c64d0-1579-4354-8a2b-260b34025b6a updated_at: '2022-11-29T14:01:41.0414517Z' updated_by: 25ff0593-dd4c64d0-1579-4354-8a2b-260b34025b6a '400': description: Bad Request — an `api_code` static error code and message envelope. See errors/finalcad-problem-types.yml. content: application/json: schema: $ref: '#/components/schemas/ApiError' '401': description: Unauthorized — the API key or user token is missing or invalid. content: application/json: schema: $ref: '#/components/schemas/ApiError' '500': description: Server error — a constructed `{ProcessCode}_ERR{n}` api_code envelope. content: application/json: schema: $ref: '#/components/schemas/ApiError' /projects/{project_id}/plans/upload_bim: post: operationId: locationsUploadIfc summary: Upload IFC description: "Upload an IFC or RVT file part.\n\n Endpoint mandatory infos \n Details \n\n project_id \n id of the project \n\n form-data mandatory infos \n Details \n\n segment_index \n number of the chunk segment (first is 0) \n\n last_chunk \n true if it is the last chunk \n\n total_size \n total size of the file \n\n name \n name of the file \nwith ifc or rvt extension \n\n folder_id \n id of the parent folder \n\n id \n id of the new plan \nshould not exist \n\n stream \n chunk content" tags: - Locations parameters: - name: project_id in: path required: true schema: type: string description: Path variable `project_id` as published in the collection. requestBody: required: true content: multipart/form-data: schema: type: object properties: segment_index: type: string description: chunk segment number first = 0 last_chunk: type: string description: is it the last segment ? total_size: type: string description: total size of the file stream: type: string description: chunk segment name: type: string description: name of the file folder_id: type: string description: if of parent folder id: type: string description: Id of the new plan responses: '200': description: OK content: application/json: schema: type: object examples: Upload_Ifc: value: id: 25a33d45-f93f-400b-bd6d-339bc2eb6a32 name: ok.rvt project_id: 61f1177e-2b78b3f1-598d-4cb4-8ac1-85f4461354e9 media_resource: id: 15149c74-a8b5-4416-aba5-173239395d0e file_name: ok.rvt mime_type: bim created_at: '2024-03-21T14:47:22.7458688Z' enabled: true created_at: '2024-03-21T14:47:22.5626664Z' created_by: 25ff0593-dd4c64d0-1579-4354-8a2b-260b34025b6a updated_at: '2024-03-21T14:47:22.7557876Z' updated_by: 25ff0593-dd4c64d0-1579-4354-8a2b-260b34025b6a '400': description: Bad Request — an `api_code` static error code and message envelope. See errors/finalcad-problem-types.yml. content: application/json: schema: $ref: '#/components/schemas/ApiError' '401': description: Unauthorized — the API key or user token is missing or invalid. content: application/json: schema: $ref: '#/components/schemas/ApiError' '500': description: Server error — a constructed `{ProcessCode}_ERR{n}` api_code envelope. content: application/json: schema: $ref: '#/components/schemas/ApiError' /projects/{project_id}/plans/{plan_id}: get: operationId: locationsGetPlan summary: Get plan description: "Given the plan ID, you can get its media details and then download it.\n\n You need to go through \"Get media\" to extract it with the media_resource ID.\n\n Endpoint mandatory infos \n Details \n\n project_id \n the id of the project to be modified \n\n plan_id \n the id of the plan to be checked" tags: - Locations parameters: - name: project_id in: path required: true schema: type: string description: Path variable `project_id` as published in the collection. - name: plan_id in: path required: true schema: type: string description: Path variable `plan_id` as published in the collection. responses: '200': description: Success '400': description: Bad Request — an `api_code` static error code and message envelope. See errors/finalcad-problem-types.yml. content: application/json: schema: $ref: '#/components/schemas/ApiError' '401': description: Unauthorized — the API key or user token is missing or invalid. content: application/json: schema: $ref: '#/components/schemas/ApiError' '500': description: Server error — a constructed `{ProcessCode}_ERR{n}` api_code envelope. content: application/json: schema: $ref: '#/components/schemas/ApiError' put: operationId: locationsUpdatePlan summary: Update plan description: "Update an existing plan in your project:\n\n Name\n\n Move it to another folder\n\n Update media\n\n Endpoint mandatory infos \n Details \n\n project_Id \n the id of the project to be modified \n\n body optional infos \n Details \n\n name \n new name of the plan \n\n folder_id \n id of the new parent folder \n\n media_id \n id of the new media of the plan" tags: - Locations parameters: - name: project_id in: path required: true schema: type: string description: Path variable `project_id` as published in the collection. - name: plan_id in: path required: true schema: type: string description: Path variable `plan_id` as published in the collection. requestBody: required: true content: application/json: schema: type: object example: name: folder_id: responses: '200': description: OK content: application/json: schema: type: object examples: Success: value: id: 4569a529-ca5e-4def-a842-a353df901384 name: Test 2 project_id: 234081e3-99f07760-3af6-4349-99d2-4e32319404ab media_resource: id: 9e03638e-2ddd-40b2-8656-d07f875edc35 file_name: lang1.png mime_type: image/png enabled: true form_instances_counter: 0 observations_counter: 0 created_at: '2022-11-29T14:01:41.041451Z' created_by: 25ff0593-dd4c64d0-1579-4354-8a2b-260b34025b6a updated_at: '2022-11-29T14:08:30.8753297Z' updated_by: 25ff0593-dd4c64d0-1579-4354-8a2b-260b34025b6a '400': description: Bad Request — an `api_code` static error code and message envelope. See errors/finalcad-problem-types.yml. content: application/json: schema: $ref: '#/components/schemas/ApiError' '401': description: Unauthorized — the API key or user token is missing or invalid. content: application/json: schema: $ref: '#/components/schemas/ApiError' '500': description: Server error — a constructed `{ProcessCode}_ERR{n}` api_code envelope. content: application/json: schema: $ref: '#/components/schemas/ApiError' delete: operationId: locationsDeletePlan summary: Delete plan description: "You can delete an existing plan in your project.\n\n Details \n\n project_Id \n the id of the project to be modified \n\n plan_id \n the id of the plan" tags: - Locations parameters: - name: project_id in: path required: true schema: type: string description: Path variable `project_id` as published in the collection. - name: plan_id in: path required: true schema: type: string description: Path variable `plan_id` as published in the collection. responses: '200': description: Success '400': description: Bad Request — an `api_code` static error code and message envelope. See errors/finalcad-problem-types.yml. content: application/json: schema: $ref: '#/components/schemas/ApiError' '401': description: Unauthorized — the API key or user token is missing or invalid. content: application/json: schema: $ref: '#/components/schemas/ApiError' '500': description: Server error — a constructed `{ProcessCode}_ERR{n}` api_code envelope. content: application/json: schema: $ref: '#/components/schemas/ApiError' /projects/{project_id}/plansfromdoc: post: operationId: locationsCreatePlansFromDocument summary: Create plans from document description: "You can create a plan from a document.\n\n Endpoint mandatory infos \n Details \n\n project_Id \n the id of the project to be modified \n\n body mandatory infos \n Details \n\n document_id \n id of the document \n\n body optional infos \n Details \n\n folder_id \n the id of the parent folder in the hierarchy \n\n plan_id \n the id of the new plan (if omitted, an id should be automatcly affected) \n\n name \n name of the plan (default to document name)" tags: - Locations parameters: - name: project_id in: path required: true schema: type: string description: Path variable `project_id` as published in the collection. requestBody: required: true content: application/json: schema: type: object example: document_id: name: my new plan responses: '200': description: OK content: application/json: schema: type: object examples: Success: value: id: a65556b5-c7ba-463b-9925-ac779cca24c2 name: my new plan project_id: 22f5e75f-e661b6e8-d867-446b-bb5a-f213c82d603b media_resource: id: ac59eb17-b53c-4b46-b8cc-d95a1a3cd029 file_name: LIZE 7A PRO IND4 07092021 PLAN MASSE.pdf mime_type: application/pdf created_at: '2024-02-08T10:37:18.9095803Z' enabled: true created_at: '2024-02-08T10:37:18.921824Z' created_by: 25ff0593-dd4c64d0-1579-4354-8a2b-260b34025b6a updated_at: '2024-02-08T10:37:18.921824Z' updated_by: 25ff0593-dd4c64d0-1579-4354-8a2b-260b34025b6a '400': description: Bad Request — an `api_code` static error code and message envelope. See errors/finalcad-problem-types.yml. content: application/json: schema: $ref: '#/components/schemas/ApiError' '401': description: Unauthorized — the API key or user token is missing or invalid. content: application/json: schema: $ref: '#/components/schemas/ApiError' '500': description: Server error — a constructed `{ProcessCode}_ERR{n}` api_code envelope. content: application/json: schema: $ref: '#/components/schemas/ApiError' components: schemas: ApiError: type: object description: Finalcad One error envelope. `api_code` is either a static code (mostly 4xx, e.g. INVALID_INSTANCE_STATE) or a constructed code of the form {ProcessCode}_ERR{n} / {ProcessCode}_WRN{n} (mostly 5xx). properties: statut: type: integer description: HTTP status code, repeated in the body (spelled `statut`). api_code: type: string description: Internal Finalcad API error code. message: type: string description: Short explanation of the abnormality encountered. data: type: object description: Complementary data to help understand the error. additionalProperties: true securitySchemes: apiKey: type: apiKey in: header name: X-API-Key description: Organization API key issued by Finalcad to organizations on an Enterprise licence. Sent on every call. tokenAuth: type: apiKey in: header name: Authorization description: '`Authorization: token `, or `Authorization: bearer ` for the legacy user-token flow (POST /auth).'