Resources

POST /api/login

Description: Attempts to authenticate with the mobile API using BIM 360 Field credentials. On success, returns a 36 byte GUID "ticket" which needs to be passed in on subsequent calls.

Status Codes:

200 User has authenticated and is successfully logged in.
401 The user's credentials have been rejected.
426 The user is a subcontractor on their active project, and login has been denied.

Access: FREE
Return: JSON - Returns a ticket which must be passed for each subsequent request in the session.
Parameters:
  • username : string - The username to authenticate as.
  • password : string - The password to authenticate with.
  • device_type : string - (optional) The type of device
  • device_identifier : string - (optional) A unique identifier for the device.

POST /api/logout

Description: Closes the current active session by expiring the ticket.

Access: FREE
Return: Nothing
Parameters:
  • ticket : string - The ticket obtained from the login call.
  • project_id : string - The ID of the project to perform this action against.

POST /api/projects

Description: Returns a list of projects available to the currently authenticated user. If the authenticated user is a subcontractor on a project, that project will be excluded from this list.

Access: FREE
Return: [JSON] - Array of project hashes.
Parameters:
  • ticket : string - The ticket obtained from the login call.

POST /api/user_prefs

Description: Returns a list of the currently authenticated user's preferences.

Access: FREE
Return: [JSON] - Returns an array of user preference hashes.
Parameters:
  • ticket : string - The ticket obtained from the login call.
  • project_id : string - The ID of the project to perform this action against.

POST /api/project

Description: Retrieves information about the specified project.

Access: FREE
Return: JSON - Returns a hash containing information about the currently authenticated user's active project.
Parameters:
  • ticket : string - The ticket obtained from the login call.
  • project_id : string - The ID of the project to perform this action against.

POST /api/templates

Description: Retrieves a list of checklist templates in the specified project.
Note: application_version should be more than 1.10 in order
to include rich content checklists (checklists with single-select and/or multi-select items)

Access: FREE
Return: [JSON] - Returns an array of QAQC templates in the project specified.
Parameters:
  • ids : [string] - If specified, limit the templates to only ones with an ID in this array. If empty, return all templates.
  • ticket : string - The ticket obtained from the login call.
  • project_id : string - The ID of the project to perform this action against.
  • Parameters specific to this request
  • application_version : string - BIM 360 Mobile application version.

POST /api/areas

Description: Returns a list of areas in the specified project.
Note: application_version should be more than 4.7 in order to request the most recent version of the call.

Access: FREE
Return: [JSON] - Returns an array of areas defined in the project specified.
Parameters:
  • synced_date : the time that client synced areas data last time
  • fresh_sync : if or not the client syncs the area data for the very first time
  • offset : numeric - Within the results, start at the given offset (used with limit for paging).
  • limit : numeric - Within the results, retrieve only this count (used with offset for paging).
  • project_id : string - The ID of the project to perform this action against.
  • ticket : string - The ticket obtained from the login call.
  • Parameters specific to this request
  • application_version : string - BIM 360 Mobile application version.

POST /api/companies

Description: Returns a list of companies in the specified project.

DEPRECATED .. backwards compatible support only! See GET /fieldapi/companies/v1

Access: FREE
Return: [JSON] - Returns an array of companies defined in the project specified.
Parameters:
  • max_date : string - If specified, only retrieve companies that have been created or updated after this date.
  • ticket : string - The ticket obtained from the login call.
  • project_id : string - The ID of the project to perform this action against.

POST /api/contacts

Description: Returns a list of contacts in the specified project.

Access: FREE
Return: [JSON] - Returns an array of contacts defined in the project specified.
Parameters:
  • ticket : string - The ticket obtained from the login call.
  • project_id : string - The ID of the project to perform this action against.

POST /api/spec_refs

Description: Returns a list of spec refs.

Access: FREE
Return: [JSON] - Array of spec refs.
Parameters:
  • ticket : string - The ticket obtained from the login call.

POST /api/priorities

Description: Returns a list of priorities.

Access: FREE
Return: [JSON] - Array of priorities.
Parameters:
  • ticket : string - The ticket obtained from the login call.

POST /api/checklist_status

Description: Returns a list of checklist statuses.

DEPRECATED .. backwards compatible support only!

Access: FREE
Return: [JSON] - Array of checklist statuses.
Parameters:
  • ticket : string - The ticket obtained from the login call.

POST /api/issue_types

Description: Returns a list of issue types.

DEPRECATED .. backwards compatible support only!

Access: FREE
Return: [JSON] - Array of available issue types.
Parameters:
  • ticket : string - The ticket obtained from the login call.
  • project_id : string - The ID of the project to perform this action against.

POST /api/issue_filters

Description: Returns a list of issue filters for the authenticated user.

Access: FREE
Return: [JSON] - Array of available issue filters.
Parameters:
  • ticket : string - The ticket obtained from the login call.
  • project_id : string - The ID of the project to perform this action against.

POST /api/custom_fields

Description: Returns a list of custom field definitions defined for the entire project.

Each definition is comprised of:

custom_field_id : The primary key for the definition.
container_id : Used to identify the associated checklist in cases where container_type is 'Checklist'
container_type : Identifies the model object associated with the custom field definition. Can be one of Area, Checklist, ChecklistItemResponse, EquipmentType, Issue, Task
display_type : The object type stored for this definition. Can be one of drop-down, group_start, text, numeric, date, signature, single-select, multi-select, checkbox
default_value : The value substituted when no value is given.
required: True if this is a required custom field.
position : The ordinal position of this custom field relative to others.
updated_at : The date/time this record was last updated.
name : The name of the custom field definition
possible_values : YML serialized list of string values

Access: FREE
Return: [JSON] - Array of all custom field definitions for the selected project.
Parameters:
  • ticket : string - The ticket obtained from the login call.
  • project_id : string - The ID of the project to perform this action against.

POST /api/vela_fields

Description: Returns a list of all vela fields for a project.

Note: application_version should be more than 1.10 in order to include root causes

Access: FREE
Return: [JSON] - Array of vela fields.
Parameters:
  • ticket : string - The ticket obtained from the login call.
  • project_id : string - The ID of the project to perform this action against.
  • Parameters specific to this request
  • application_version : string - BIM 360 Mobile application version.

POST /api/get_voided_issues

Description: Returns a list of IDs for all voided issues in the project.

Access: FREE
Return: [JSON] - Array of issue IDs.
Parameters:
  • ticket : string - The ticket obtained from the login call.
  • project_id : string - The ID of the project to perform this action against.

POST /api/get_issues

Description: Returns a list of issues for the conditions specified, or the count if count_only is specified. All returned issues will contain
lists of any attachments, document_references, uri_references and comments.

Status Codes:
200 : The request was processed successfully.
401 : The authenticated user does not have permission to the specified issue filter.
404 : The specified issue filter ID does not exist.

Access: FREE
Return: [JSON] - Array of issues.
Parameters:
  • ticket : string - The ticket obtained from the login call.
  • project_id : string - The ID of the project to perform this action against.
  • area_ids : string - Comma separated list of area IDs. If specified, only retrieve issues in these areas.
  • count_only : string : If non-nil, just return the count of issues. If nil, return the issues themselves.
  • issue_filter_id : string : A single issue filter ID. If specified, only retrieve issues from the specified filter.
  • offset : numeric - (optional) Within the results, start at the given offset (used with limit for paging)
  • limit : numeric - (optional) Within the results, retrieve only this count (used with offset for paging).
  • default_to_all_issues : boolean - (optional) Default to returning all issues if issue_filter_id is omitted.

POST /api/get_object_issues

Description: Returns a list of issues that are attached to one or more objects (eg. Equipment, Tasks, Completed Checklist Items, etc). All returned issues will contain
lists of any attachments, document_references, uri_references, comments and signatures. The authenticated user must have read permission on Issues.


Status Codes:
200 : The request was processed successfully.
400 : The list of object IDs is empty, or an invalid object_type was passed in.
401 : The authenticated user does not have read permission on issues.
404 : The project ID is incorrect or the user is not on it.

Access: FREE
Return: [JSON] - Array of issues.
Parameters:
  • ticket : string - The ticket obtained from the login call.
  • project_id : string - The ID of the project to perform this action against.
  • object_type : string - The type of source object to retrieve issues for (Equipment, Task, CompletedChecklistItem)
  • object_ids : string - Comma separated list of source object IDs.

POST /api/signatures

Description: Uploads a single signature.

The signature record must consist of the following fields:

id : The unique 36 byte string GUID of the signature
deleted : True if the signature should be deleted from the server.
custom_field_definition_id : The 36 byte GUID of the associated custom field definition for this signature
container_id : The 36 byte GUID of the associated parent object.
container_type : The type of parent object that the signature is associated with (Issue, CompletedChecklist, Task, Equipment).
filename : The name of the signature binary.

Status Codes:
200 : The request was processed successfully.
400 : The list of object IDs is empty, or an invalid object_type was passed in.
401 : The authenticated user does not have read permission on issues.
404 : The project ID is incorrect or the user is not on it.

Access: FREE
Return: [JSON] - Hash containing the signature's unique key and the status of the upload
Parameters:
  • ticket : string - The ticket obtained from the login call.
  • project_id : string - The ID of the project to perform this action against.
  • signature : JSON - A signature object to upload
  • original : Multi-part form file containing the signature's original image

POST /api/attachments

Description: Uploads an attachment, or asks the server to delete an existing attachment.

Input: "attachment"

The following shows a hash of attachment's details.
{"filename":"cassie1.jpg","content_type":"image/jpeg","size":3723756,"created_at":"2014-11-05 11:01:23 -0500","updated_at":"2014-11-05 11:01:23 -0500","fcreate_date":"2014-11-05 11:01:23 -0500","fmod_date":"2014-11-05 11:01:23 -0500","container_id":"00000aac-0001-0000-0000-000000000001","container_type":"Issue"}

Access: FREE
Return: JSON - Status of attachment upload
Parameters:
  • ticket : string - The ticket obtained from the login call.
  • project_id : string - The ID of the project to perform this action against.
  • thumb : Multi-part form file containing the attachment's thumbnail image
  • original : Multi-part form file containing the attachment's original image
  • attachment : JSON - A hash containing the attachment's details. Attachment record Hash Keys:
    • id : string - (optional) The attachment's unique ID. The ID will be created automatically if not provided
    • deleted : string - (optional) If set to true, will remove the attachment from the server
    • width : int - (optional) The width in pixels of this attachment's original image
    • height : int - (optional) The height in pixels of this attachment's original image
    • num_pages : int - (optional) The number of pages that this attachment contains
    • size : int - The size in bytes of the attachment
    • filename : string - The filename of the attachment
    • container_type : string - What type of object this attachment is connected to (Issue, Task, Equipment, CompletedChecklistItem, CompletedChecklist)
    • container_id : string - The ID of the object this attachment is connected to
    • content_type : string - The MIME content type of the attachment
    • created_at : string - The date that the attachment was created (YYYY-MM-DD HH:MM:SS -HH:MM)
    • updated_at : string - The date that the attachment was modified (YYYY-MM-DD HH:MM:SS -HH:MM)
    • fcreate_date : string - The date that the file was created (YYYY-MM-DD HH:MM:SS -HH:MM)
    • fmod_date : string - The date that the file was modified (YYYY-MM-DD HH:MM:SS -HH:MM)
    • markup : JSON - (optional) Any associated Vela Viewer markup. This must be sent as an array of SVG strings
    • caption : string - (optional) A text caption for the attachment
    • tags : string - (optional) A comma-separated list of tags

POST /api/document_references

Description: Uploads a document reference, or asks the server to delete an existing document reference.

Document Reference record Hash Keys:

id : The document reference's unique ID.
document_id : The 36 byte GUID of the parent document in the document library.
deleted : If set to true, will remove the document reference from the server.
num_pages : The number of pages that this document reference contains.
container_type : What type of object this document reference is connected to (Issue, Task, Equipment, CompletedChecklistItem, CompletedChecklist)
container_id : The id of the object this document refence is connected to.
content_type : The MIME content type of the document reference
markup : Any associated Vela Viewer markup. This must be sent as an array of SVG strings.
caption : A text caption for the document reference
tags : A comma-separated list of tags

Access: FREE
Return: JSON - Status of document reference upload
Parameters:
  • ticket : string - The ticket obtained from the login call.
  • project_id : string - The ID of the project to perform this action against.
  • document_reference : JSON - A hash containing the document_reference's details.
  • thumb : Multi-part form file containing the document reference's thumbnail image

Description: url: GET /api/download_markups

Return: [JSON] - [{id:'xxx-xxx', pages:[{id:'xxx-xxx', page_number:0, markups:[{id:'xxx-xxx',element_type:line, element_data:'xxxx', created-at:'2014-05-01'}]}]}]
Parameters:
  • ticket : string - The ticket obtained from the login call.
  • project_id : string - The ID of the project to perform this action against.
  • object_type : string - The type of object to retrieve markups for (Attachment, DocumentReference, Document). For now, only Document.
  • object_ids : string - The ID of the object to retrieve markups for, splitted by ','.

POST /api/binary_data

Description: Streams binary data for associated objects.


Status Codes:
200 : The request was processed successfully.
400 : The list of object IDs is empty, or an invalid object_type was passed in.
404 : The requested file does not exist, or cannot be streamed.
500 : The server encountered an error while streaming the file.

Access: FREE
Return: [BINARY] - Binary data
Parameters:
  • ticket : string - The ticket obtained from the login call.
  • project_id : string - The ID of the project to perform this action against.
  • object_type : string - The type of object to retrieve binary data for (Signature, Attachment, DocumentReference, Document)
  • object_id : string - The ID of the object to retrieve binary data for.
  • image_type : string - The type of image to return (vv, thumb, composite, original). Defaults to original.
  • page : int - For multi-page documents, specifies the page number to retrieve.

POST /api/get_checklists

Description: Returns one or more completed checklists.

Note: application_version should be more than 1.10 in order
to include rich content checklists (checklists with single-select and/or multi-select items)DEPRECATED .. backwards compatible support only! See GET /fieldapi/checklists/v1

Access: FREE
Return: [JSON] - Returns a hash of checklists with complete data including items, etc.
Parameters:
  • checklist_ids : string - List of comma-separated id's
  • ticket : string - The ticket obtained from the login call.
  • project_id : string - The ID of the project to perform this action against.
  • max_date
  • forced_checklist_ids : string - Ids to get regardless of date
  • device_type : string - (optional) The type of device
  • Parameters specific to this request
  • application_version : string - BIM 360 Mobile application version.

POST /api/checklists

Description: Uploads one or more checklists.

Access: FREE
Return: [JSON] - Returns a hash of checklist IDs for checklists that were successfully uploaded.
Parameters:
  • checklists : [string] - An array of checklist objects
  • ticket : string - The ticket obtained from the login call.
  • project_id : string - The ID of the project to perform this action against.

POST /api/get_checklist_headers

Description: Return completed checklist header data.
The data includes a deleted entry. If the deleted_at is not empty, the checklist was deleted and should be removedfrom the remote database.
The data is an array containing JSON records including:
completed_checklist_id : The unique id for the checklist
checklist_template_id :
checklist_type :
identifier : The identifier of this executed checklist
name :
description :
created_by : Email address of the user creating the checklist
phase :
priority :
status :
tags : Any tags added
created_at : Date this was created
updated_at : Date this was updated
deleted : True if this has been deleted
Note: application_version should be more than 1.10 in order
to include rich content checklists (checklists with single-select and/or multi-select items)
Status Codes:
200 : The request was processed successfully.

Access: FREE
Return: [JSON] - Array of completed checklists.
Parameters:
  • ticket : string - The ticket obtained from the login call.
  • project_id : string - The ID of the project to perform this action against.
  • filter_id : string - Retrieve checklist headers based on a filter. This is the ID of the filter, which can be found using the /api/projects call.
  • max_date : string - If specified, only retrieve areas that have been created or updated after this date.
  • limit : numeric - The number of checklist headers to return. Used to page results.
  • offset : numeric - The offset to start retrieving results at. Used to page results.
  • Parameters specific to this request
  • application_version : string - BIM 360 Mobile application version.

POST /api/get_current_date

Description: Return the server time. This is used to track synchronization activities from Mobile.
The data is an array containing JSON records including:
current_date : The current date and time with timezone

Status Codes:
200 : The request was processed successfully.

Access: FREE
Return: [JSON] - Current server date
Parameters:
  • ticket : string - The ticket obtained from the login call.

POST /api/get_categories

Description: Return categories and associated customizable categories for the project. This will include information about equipment types, equipment statuses, root causes, issue types and task types.

Returned JSON will consist of an array of categories and an array of customizable_categories

Parameters:
  • ticket : string - The ticket obtained from the login call.
  • project_id : string - The ID of the project to perform this action against.
  • categories_max_updated_at : date - Only retrieve categories that have been updated since this date (YYYY-MM-DD)

POST /api/get_equipment

Description: Retrieves equipment records from the server. Can retrieve just header information, or header and detail depending on the setting of the details parameter.

The step parameter can be used to retrieve equipment records matching certain criteria:

headers : Return everything changed since max_date.
softdeletes : Use the list of passed in equipment_ids, but ignores max_date. Used to do a complete client refresh of existing equipment records.
updatedownloaded : Use the list of passed in equipment_ids to download equipment.
filter : Retrieve all pieces of equipment matching the filter specified by the filter_id parameter.
Note: application_version should be more than 1.9.2 in order to request the most recent version of the call.

Parameters:
  • ticket : string - The ticket obtained from the login call.
  • project_id : string - The ID of the project to perform this action against.
  • step : string - Can be headers, softdeletes, updatedownloaded or filter
  • details : string - Whether to retrieve equipment details, or just header information (e.g. 'some', 'more', 'none', 'all').
  • equipment_ids : string - An array of equipment IDs to retrieve
  • filter_id : string - The 36 byte GUID of the equipment filter to apply to the download
  • limit : int - Used to progressively download equipment records. Limits the number of equipment records in each download batch.
  • offset : int - Used to progressively download equipment records. Tells the server which equipment record number to download from.
  • max_date : Date - If specified, used to limit the equipment to just those changed or deleted after this date (YYYY-MM-DD).
  • ids_only : numeric - Set to 1 if you only want equipment records identified in equipment_ids.
  • Parameters specific to this request
  • application_version : string - BIM 360 Mobile application version.

POST /api/customizable_categories

Description: Upload new customizable categories.Actual use case is to send up new Root Causes created on mobile devices.

Input: "customizable_categories"

The following shows an array with two root causes. The first one is to be added and the second one to be modified.
[{"id":"ABBAABBA-ABBA-ABBA-ABBA-100042000001","new_record":true,"name":"Earthquake","position":2,"category_id":"c9038767-f4cd-4aa8-8343-65d80482d97e","created_at":"2011-02-07 12:37:21 EST","uploaded_at":"","updated_at":"2011-02-07 12:37:21 EST"},{"id":"7a12868e-ebdc-4a89-acd3-cb33cb0369d5","new_record":false,"name":"Flood","position":"1","category_id":"c9038767-f4cd-4aa8-8343-65d80482d97e"}]

Parameters:
  • ticket : string - The ticket obtained from the login call.
  • customizable_categories : JSON - an array of customizable categories to upload.

POST /api/equipment

Description: Upload one or more Equipment records. This call can ONLY update existing pieces of equipment. Equipment MUST be created on Vela Web before it canbe manipulated through the API.
The equipment parameter is a complete JSON representation of a record.

Each item in the equipment array is comprised of the following fields:

id : The 36 byte GUID of the equipment record.
name : The human readable name of the piece of equipment.
description : The description of the equipment.
serial_number : The equipment's serial number.
created_by : The email address of the user that created the piece of equipment. Cannot be changed.
tag_number : A tag number for the piece of equipment.
barcode : A barcode number for the piece of equipment.
asset_identifier : An asset identifier for the piece of equipment.
purchase_order : A P.O. associated with the piece of equipment.
submittal : A submittal for the piece of equipment.
purchase_date : The date the piece of equipment was puchased (YYYY-MM-DD).
install_date : The date the piece of equipment was installed (YYYY-MM-DD).
warranty_start_date : The date the warranty for the piece of equipment started (YYYY-MM-DD).
warranty_end_date : The date the warranty for the piece of equipment ends (YYYY-MM-DD).
expected_life : The expected lifetime of the equipment in years.
area_id : The 36 byte GUID of the area that the piece of equipment is located in.
bim_file_id : The 36 byte GUID of the associated BIM model file.
bim_object_identifier : The identifier of the associated BIM model object.
source : Set to 'vfm'.
updated_at : The date/time that the record was updated (YYYY-MM-DD HH:MM:SS).
equipment_type_id : The 36 byte GUID of the associated equipment type. Equipment types can be retrieved from /api/customizable_categories.
equipment_status_id : The 36 byte GUID of the associated equipment status. Equipment statuses can be retrieved from /api/get_categories.

Equipment may also have custom fields associated with them. If so, they can be attached to the equipment record as an array of custom_field_values.
{'equipment' : [{'id' : '{GUID}', ..., 'custom_field_values' : [{'id' : '{CUSTOM FIELD VALUE GUID}', 'custom_field_definition_id' : '', 'container_id' : '','container_type' : '', 'value' : ''}]}]}

Each custom field value has the following fields:

id : The 36 byte GUID of the custom field value.
custom_field_definition_id : The 36 byte GUID of the parent custom field definition.
container_id : In this case, it points to the piece of equipment that it's associated with, so it would be the equipment's 36 byte GUID.
container_type : In this case, it would be 'Equipment'.
value : The value of the custom field.

Comments can be added to equipment in a similar way using an array of 'comment' objects. Each comment has the following fields:

id : The 36 byte GUID of the comment.
comment_text : The text of the comment.
object_id : In this case, it points to the piece of equipment that it's associated with, so it would be the equipment's 36 byte GUID.
created_at : The date/time that the comment was created (YYYY-MM-DD HH:MM:SS).

Parameters:
  • ticket : string - The ticket obtained from the login call.
  • project_id : string - The ID of the project to perform this action against.
  • equipment : JSON - an array of equipment records to upload.

POST /api/get_tasks

Description: Return a set of Task objects from a project. Includes comments, audits, signatures, attachments, uri references, custom field values,checklist templates, completed checklists, document references and document folder references.The filter_id comes from the list of filters contained in the project objects (/api/projects). Be sure to only pass IDs of filterswith a container of 'Task'.

Status Codes:

200 Tasks have been returned successfully

Access: FREE
Return: JSON - Returns the set of tasks which match the filter criteria.
Parameters:
  • ticket : string - The ticket obtained from the login call.
  • project_id : string - The ID of the project to retrieve Tasks for
  • max_date : string - Specify a cutoff date.
  • filter_id : string - The ID of a task filter to use. If blank, return all tasks in the project
  • offset : integer - Used to retrieve the data in chunks. Specify the starting point for each chunk here
  • limit : integer - Used to retrieve the data in chunks. Specify the # of records to retrieve in each chunk here

POST /api/get_task_templates

Description: Return a set of Task template objects from a project. Includes comments, audits, signatures, attachments, uri references, custom field values,checklist templates, completed checklists, document references and document folder references.

Status Codes:

200 Task templates have been returned successfully

Access: FREE
Return: JSON - Returns all task templates in the project.
Parameters:
  • ticket : string - The ticket obtained from the login call.
  • project_id : string - The ID of the project to retrieve Task templates for
  • max_date : string - Specify a cutoff date.
  • offset : integer - Used to retrieve the data in chunks. Specify the starting point for each chunk here
  • limit : integer - Used to retrieve the data in chunks. Specify the # of records to retrieve in each chunk here

POST /api/tasks

Description: Upload and either create or update one or more Tasks or Task templates to the server. If the ID of the Task/template already exists, the record will be updated.

Each item in the tasks array is comprised of the following fields:

id : The 36 byte GUID of the task/template record.
created_at : The date/time that the record was created (YYYY-MM-DD HH:MM:SS).
updated_at : The date/time that the record was updated (YYYY-MM-DD HH:MM:SS).
template : Set to 'true' if this is a Task template. Leave blank for Tasks.
identifier : The Task's human-readable identifier.
description : The description of the Task.
status : The status of the Task.
company_id : The ID of the company associated with the Task.
assigned_user_id : The ID of the user assigned to complete the Task.
location_detail : A free-form string giving clear instructions as to the location associated with the Task.
send_reminders : Set to 'true' if you would like reminders to be sent regarding this Task. Leave blank otherwise.
scheduled_at : The date and time the Task is scheduled to be completed (YYYY-MM-DD HH:MM:SS).
name : A descriptive name for the Task.
task_types : A JSON collection of task type IDs to associate with this Task/template. Each task type is specified using 'customizable_category_id'.
areas : A JSON collection of location IDs to associate with this Task/template. Each location is specified using 'area_id'.
checklists : A JSON collection of checklist IDs to associate with this Task/template. Each checklist is specified using 'checklist_id'.
comments : A JSON collection of comments to associate with this Task/template.
custom_field_values : A JSON collection of custom field values to associate with this Task/template.
uri_references : A JSON collection of uri references to associate with this Task/template.
document_folder_references : A JSON collection of document folder references to associate with this Task/template.
Attachments and Document References may be associated with this Task/template by using the /api/attachments and /api/document_references calls and setting the container_id to the ID of the Task/template, and the container_type to 'Task'.

Status Codes:

200 Task templates have been returned successfully

Access: FREE
Return: JSON - Creates or updates one or more Task or Task template objects
Parameters:
  • ticket : string - The ticket obtained from the login call.
  • project_id : string - The ID of the project to create/update Tasks/templates for
  • tasks : JSON - An array of Task/template objects to upload

POST /api/get_photos

Description: Retrieves photo records from the server. The result will contain only photo metadata and will not include the actual image binary.

Note: both limit and offset parameters are required for pagination. Also, application_version should be more than or equal to 4.7 in order to filter by max_updated_at.

Parameters:
  • ticket : string - The ticket obtained from the login call.
  • project_id : string - The ID of the project to perform this action against.
  • limit : int - Used to progressively download photo records. Limits the number of photo records in each download batch.
  • offset : int - Used to progressively download photo records. Tells the server which photo record number to download from.
  • max_updated_at : Date - If specified, used to limit the photos to just those updated after this date (e.g. 2017-03-29 13:27:00 +0400).
  • Parameters specific to this request
  • application_version : string - BIM 360 Mobile application version.

POST /api/library/publish

Description: Publishes a document into a project's library. The document can be published either as a new revision to an existing document, or as a new document.If a document already exists with the given directory and name, a new revision of the existing document will be created.To publish a new revision, you can specify a document_id of the base document id if it has revisions already.

Example of publishing a revision (using CURL):

curl -s -X POST https://bim360field.autodesk.com/api/library/publish \
-F "ticket=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" \
-F "project_id=yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy" \
-F "document_id=zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz" \
-F "filename=Floor 1 Version 1.pdf" \
-F "directory=Architectural Documents" \
-F "Filedata=@/Users/jsmith/Architectural Documents/Floor 1 Version 1.pdf"

Status Codes:

201 The document has been published successfully.
500 The document was not published successfully.

Access: FREE
Return: JSON - Returns either the new document's, or the new revision's metadata.
Parameters:
  • project_id : string - The ID of the project to publish the document to.
  • ticket : string - Authentication token. Must be acquired from a call to /api/login
  • directory : string - The directory to publish the document into.
  • filename : string - The name of the file to publish
  • Filedata : binary - The contents of the published document. The parameter may optionally be referred to as "file".
  • document_id : (Optional) string - If specified, a new revision of document_id will be created (regardless of the name/path).
  • tags : (Optional) string - A set of comma separated tags which can be used to categorize this document.
  • caption : (Optional) string - A caption for the document.

POST /api/library/all_files

Description: Retrieves a listing of document metdata. If the directory parameter is specified, only documents from that directory will be returned. Otherwise, metadata from all documents will be returned.Documents in processing mode will be skipped.

Status Codes:

200 The document metadata has been successfully retrieved. The JSON response contains the metadata.

Access: FREE
Return: JSON - Returns the metadata for all documents
Parameters:
  • project_id : string - The ID of the document library's project.
  • ticket : string - Authentication token. Must be acquired from a call to /api/login
  • directory : string - If specified, only return metadata for documents in this directory. To specify files in the top-level folder, use ''
  • include_hidden : number - Default 0 (1 - includes photos and models metadata)

GET /api/library/all_filtered_files

Description: Retrieves all documents metadata for the project including pending and processing documents.

Status Codes:

200 The document metadata has been successfully retrieved. The JSON response contains the metadata.

Access: FREE
Return: JSON - Returns array of documents metadata
Parameters:
  • project_id : string - The ID of the project.
  • ticket : string - Authentication token.
  • offset : numeric - (optional) Within the results, start at the given offset (used with limit for paging)
  • limit : numeric - (optional) Within the results, retrieve only this count (used with offset for paging). If limit is not provided the response will include first 20 documents
  • sort : string - (optional) Attribute to sort on. Default - 'uploaded_at' (allows 'uploaded_at', 'filename')
  • sort_dir : string - (optional) Direction of the sort ('asc' or 'desc')
  • directory : string - (optional) If specified, only return metadata for documents in this directory. To specify files in the top-level folder, use ''
  • sub_directories : numeric - (optional) default 1 ("0" - without sub directories)
  • count_only : numeric - (optional) default 0 ("1" - returns count of documents)
  • include_hidden : number - Default 0 (1 - includes photos and models metadata)

POST /api/library/all_folders

Description: Retrieves all path information for a project's document library.Does not include the internal use only folders for model and photo storage.

Status Codes:

200 The path metadata has been successfully retrieved. The JSON response contains the metadata.

Example Result:

[{ "path":"Building One" },{ "path":"Building One/Floor One"},{ "path":"Building One/Floor One/Room 311"},{ "path":"Security Booth" }]

Access: FREE
Return: JSON - Returns library path information.
Parameters:
  • project_id : string - The ID of the document library's project.
  • ticket : string - Authentication token. Must be acquired from a call to /api/login

POST /api/library/delete/:id/:rev

Description: Delete's either a specific revision of a document, or all revisions of a document.

Status Codes:

200 The document metadata has been successfully retrieved. The JSON response contains the metadata.
404 The document with the ID specified could not be found.

Access: FREE
Return: JSON - Deletes a document from a project's document library.
Parameters:
  • project_id : string - The ID of the document library's project.
  • ticket : string - Authentication token. Must be acquired from a call to /api/login
  • id : string - The 36 byte GUID of the document to delete.
  • rev : int - The revision number to delete, or nil to delete all revisions. Revision numbers start at 0 and increment by 1 for each new revision.

POST /api/library/delete_files

Description: Deletes all revisions of documents.

Status Codes:

200 The document metadata has been successfully retrieved. The JSON response contains the metadata.
404 The document with the ID specified could not be found.

Access: FREE
Return: JSON - status for each document id.
Parameters:
  • project_id : string - The ID of the document library's project.
  • ticket : string - Authentication token. Must be acquired from a call to /api/login
  • ids : string - comma separated GUIDs of documents to delete.

POST /api/library/folder/add

Description: Creates the folder including any necessary parent folders.

Status Codes:

OK 200 The requested information has been returned successfully.
BAD REQUEST 400 The change was not valid.
UNAUTHORIZED 403 TThe user is not a document manager or project admin.

Example Result:

{ "path":"Building One/Floor Two", "id":"....."}

Access: FREE
Return: JSON - id and path of the new folder
Parameters:
  • ticket : string - Authentication token. Must be acquired from a call to /api/login
  • project_id : string - The ID of the document library's project.
  • path : string - The new folder to add. This is a complete path.

POST /api/library/folder/move

Description: Move or rename the folder.

Status Codes:

OK 200 The requested information has been returned successfully.
BAD REQUEST 400 The change was not valid.
UNAUTHORIZED 403 TThe user is not a document manager or project admin.
NOT FOUND 404 The requested folder cannot be found.

Example Result:

{ "path":"Building One/Floor 2", "id":"....."}
In the event of errors, an array of strings will be returned with detailed validation failures.

Access: FREE
Return: JSON - id and new path of the folder
Parameters:
  • ticket : string - Authentication token. Must be acquired from a call to /api/login
  • project_id : string - The ID of the document library's project.
  • path : string - The folder to move. This is a complete path.
  • new_path : string - The new folder path.

POST /api/library/folder/delete

Description: Removes the folder. Removes all documents and subfolders along with all associated document references, markups, and pushpins!

Status Codes:

200 The requested information has been returned successfully.
400 The change was not valid.
403 TThe user is not a document manager or project admin.
404 The requested document or folder cannot be found.

Example Result:

{ "documents_deleted":42 }

Access: FREE
Return: JSON - number of deleted documents.
Parameters:
  • ticket : string - Authentication token. Must be acquired from a call to /api/login
  • project_id : string - The ID of the document library's project.
  • path : string - The folder we are destroying. This is a complete path.
  • folder_id : (Optional) string - The ID of the folder to be destroyed.

GET /api/library/folders

Description: Returns the folders for the current project, arranged in hierarchy.

Status Codes:

200 The requested information has been returned successfully.
500 The change was not valid.

Example Result:

[{"id": "91992417-2fa9-4632-9a98-0d0f7e90954e","name": "API_Rails3","child_count": 1,"document_count": 0,"thumbnail_document_id": null,"folders": [{"id": "7137698d-d653-431e-b0f9-d026b9adfe7f","name": "Folder1","child_count": 1,"document_count": 0,"thumbnail_document_id": null,"folders": [{"id": "3759a9d8-8874-433c-b324-c546a89187fb","name": "Folder1-1","child_count": 1,"document_count": 1,"thumbnail_document_id": null,"folders": []}]}]}]

Access: FREE
Return: JSON - Returns folders' metadata.
Parameters:
  • project_id : string - The ID of the document library's project.
  • ticket : string - Authentication token. Must be acquired from a call to /api/login

POST /api/library/file/:id/:type/:rev/:page

Description: Returns information about a document in the library. It can return images, metadata, the original document as well as everything.Status Codes:

200 The requested information has been returned successfully.
404 The requested document could not be found.

Access: FREE
Return: Varies - This method's return will depend on parameters specified. It could be a thumbnail image, doc metadata, the original doc, or a zip file containing everything.
Parameters:
  • project_id : string - The ID of the document library's project.
  • ticket : string - Authentication token. Must be acquired from a call to /api/login
  • id : string - The 36 byte GUID of the document to return.
  • rev : int - The revision number to retrieve, or nil to retrieve the latest version. Revision numbers start at 0 and increment by 1 for each new revision.
  • page : int - For PDF documents, you may specify a particular page to return. This is only valid for a type of 'vela_viewer'.
  • type : string - The type of file to return. Can be:
    • original - Returns the original document.
    • metadata - The document's metadata in JSON format
    • metadata_rev - The document's metadata and an array of metadata for the revisions in JSON format
    • thumb - The document's thumbnail image
    • vela_viewer - A JPG representation of the original document. For PDF documents, you may also specify a page.
    • all - All files, all revisions, and all metadata for this document returned as a zip file. Contains a manifest.xml, as well as metadata.xml which describe the contents.

POST /api/library/rename/:id

Description: Change the documents name from the current value to the new value. The new value cannot include angle brackets or forward or reverse slashes. The extension, if supplied, should match the existing extension. If unsupplied, the existing extension will be added.

Status Codes:

200 The requested information has been returned successfully.
201 The document was already named this.
400 The change was not valid.
403 TThe user is not a document manager or project admin.
404 The requested document could not be found.

Access: FREE
Return:
Parameters:
  • project_id : string - The ID of the document library's project.
  • ticket : string - Authentication token. Must be acquired from a call to /api/login
  • id : string - The 36 byte GUID of the document to rename.
  • new_name : string - The new name of the document.

POST /api/library/move/:id

Description: Move the document to another folder. If folder is blank, the document will move to the Top Level.

Status Codes:

200 The requested information has been returned successfully.
400 The change was not valid.
403 The user is not a document manager or project admin.
404 The requested document or folder cannot be found.

Access: FREE
Return:
Parameters:
  • project_id : string - The ID of the document library's project.
  • ticket : string - Authentication token. Must be acquired from a call to /api/login
  • id : string - The 36 byte GUID of the document to rename.
  • folder : string - The new folder of the document. This is a complete path.

GET api/latest_project_export/:project_id

Description: This call will let you retrieve the chronologically last set of export files for a project. It returns a JSON array of hashes containing thefollowing keys:

url: The direct S3 url to the file. This is a pre-signed, time limited (24hrs) URL. Do not store or modify it.If you need repeated access to these URLs, make calls to this API to retrieve them.
type: The type of export file. Will either be 'database' or 'files'


Example:

GET https://bim360field.autodesk.com/api/latest_project_export/9653a0d9-89a8-11e1-a97a-f6991ab64229?ticket=51d52ad8-5e66-11e2-8322-6f5147705d7f

[{"type":"database","url":"https://s3.amazonaws.com/b3f_staging_project_exports/exports/00000000-1000-0000-0101-000000000001/9653a0d9-89a8-11e1-a97a-f6991ab64229_20130108.zip?AWSAccessKeyId=AKIAIICA2ZV6DG6M5RWA&Expires=1358181932&Signature=OxLyyeOXmuGvdrq6zoqeGEkMpFc%3D&response-content-type=application%2Fzip"},
{"type":"files","url":"https://s3.amazonaws.com/b3f_staging_project_exports/exports/00000000-1000-0000-0101-000000000001/9653a0d9-89a8-11e1-a97a-f6991ab64229_files_20130108.zip?AWSAccessKeyId=AKIAIICA2ZV6DG6M5RWA&Expires=1358181932&Signature=e7Y2XYRYqXT1Q2ecck2IOcxSQao%3D&response-content-type=application%2Fzip"}]

Status Codes:

200 Export files or empty array has been returned successfully.
401 The user's credentials have been rejected.
404 The project is not found or has not been selected for exports.

Access: FREE
Return: JSON - Returns a data structure containing S3 urls to a project's latest export files, or [] if none are available.
Parameters:
  • ticket : string - The ticket obtained from the login call.
  • project_id : string - The GUID of the project to retrieve exports for.

GET api/project_export_status/:project_id

Description: This call returns a JSON structued block of information on the status of a given project's export. Data includes:

export_running: True if the export is currently being processed.
last_export_succeeded: True if the last export was successful.
last_export_at: The date and time of the end of the last export.


Example:

GET https://bim360field.autodesk.com/api/project_export_status/9653a0d9-89a8-11e1-a97a-f6991ab64229?ticket=51d52ad8-5e66-11e2-8322-6f5147705d7f

{"export_running"=>false,"last_export_at"=>"2013-04-08T17:58:53Z","last_export_succeeded"=>true}Status Codes:

200 Export files or empty array has been returned successfully.
401 The user's credentials have been rejected.
404 The project is not found or has not been selected for exports.

Access: FREE
Return: JSON - Returns a data structure containing information on the status of an export.
Parameters:
  • ticket : string - The ticket obtained from the login call.
  • project_id : string - The GUID of the project to retrieve exports for.

admin_api overview

Description:

The Autodesk BIM 360 Field Admin API offers project-wide and account-wide operations.It complements more specific APIs that are focused on core BIM 360 Field Services such as Issues.

Some calls here are account-wide and do not require a project to be identified.

Other calls in this API take a project identity and, based on the permissions of the effectiveuser, will return information about the project. This is used by a calling application to determinethe list of related locations, companies, users and other information associated to a project andthe internal identity of those resources.

Access: FREE
Parameters:

POST /fieldapi/admin/v1/ping

Description:

Send a message to the server to ensure it is up and running. This method will require you to be authenticatedin large part to satisfy ensuring credentials are sound without other action.

If the system is unreachable, the client HTTP library will indicate such perhaps after a timeout. If authenticationfailure results, the client still can be assurred the BIM 360 Field system is processing requests.

Status Codes:

200 OK Success.
401 UNAUTHORIZED Authentication failed.
500 INTERNAL SERVER ERROR A general system error has occurred.

Example Result:

I;200;Successful

Access: FREE
Return: TEXT - Result codes to indicate status with optional error text returned
Parameters:
  • ticket : string - The ticket obtained from the login call.
  • Parameters specific to this request

POST /fieldapi/admin/v1/project_names

Description:

Return a list of project names and project identifiers that are associated with the account.

As with all other calls related to multiple projects, the account in question is that which the user identifiedin the authorization parameters refers to.

Status Codes:

200 OK Success.
400 BAD REQUEST Bad arguments typically related to sorting.
401 UNAUTHORIZED Authentication failed.
500 INTERNAL SERVER ERROR A general system error has occurred.

Example Result:

[{"id" : "12345678-12312-12313-1231312","name" : "Daniel's SNout House","a360_project_id" : null,"updated_at" : "2013-07-10T12:30:10Z","include_in_reports" : true},{"id" : "67236712-23112-87777-9999991","name" : Zip Energy Center - Cx","a360_project_id" : "ABC123GHI","updated_at" : "2013-07-10T12:30:10Z","include_in_reports" : true}]

Access: FREE
Return: JSON - Array of hashes with project name and identifier
Parameters:
  • ticket : string - The ticket obtained from the login call.
  • Parameters specific to this request
  • sort_order : string - (optional) Sort projects by 'name' or 'updated_at'
  • sort_direction : string - (optional) 'asc' to sort ascending or 'desc' to sort desending

POST /fieldapi/admin/v1/locations

Description:

Return a list of locations and location ids for the given project.

Status Codes:

200 OK Success.
401 UNAUTHORIZED Authentication failed.
500 INTERNAL SERVER ERROR A general system error has occurred.

Example Result:

[{"full_path":"Building Two","path":"","name":"Building Two","identifier":"","id":"00000000-0001-0000-0000-afea10000003","parent_id": null,"deleted": 0},{"full_path":"Building Two>Floor Two","path":"Building Two","name":"Floor Two","identifier":"","id":"00000000-0002-0000-0000-afea20000001","parent_id":"00000000-0001-0000-0000-afea10000003","deleted": 0},{"full_path":"Mezzanine","path":null,"name":"Mezzanine","identifier":"","id":"00000000-0001-0000-0000-feeb00000000","parent_id":null,"deleted": 0},{"full_path":"Office","path":"","name":"Office","identifier":"","id":"00000000-0004-0000-0000-afea20000001","parent_id":null,"deleted": 0},{"full_path":"VIP Lounge","path":null,"name":"VIP Lounge","identifier":"","id":"00000000-0001-0000-0000-feeb00000001","parent_id": null,"deleted": 0}]

Access: FREE
Return: JSON - Array of hashes with project locations including id and name
Parameters:
  • ticket : string - The ticket obtained from the login call.
  • project_id : string - Identifier of project in question (alternatively use a360_project_id).
  • Parameters specific to this request

POST /fieldapi/admin/v1/companies

Description:

Return all information about companies that are registered to the given project.Companies have a unique id supplied by BIM 360 Field. Each user in a project isassigned a single company.

Status Codes:

200 OK Success.
401 UNAUTHORIZED Authentication failed.
500 INTERNAL SERVER ERROR A general system error has occurred.

Example Result:

[{"account_company":true,"address":{"country":"US","address3":null,"postal_code":"56000","county":null,"latitude":null,"city":"Sioux Falls","address2":null,"state":"SD","longitude":null,"address1":"7 Emeritus St"},"url":"www.testaccount.com","duns_no":null,"ein_no":null,"telephone":null,"company_type":"","name":"Test Account Company","fax":null,"description":null,"company_category":"Contractor","id":"f47f034f-b727-11e1-9edf-ad27ba32cc68"},{"account_company":false,"address":{"country":"US","address3":null,"postal_code":"98496","county":null,"latitude":null,"city":"Lakewood","address2":null,"state":"WA","longitude":null,"address1":"PO Box 39439 "},"url":null,"duns_no":null,"ein_no":null,"telephone":"253-474-5356","company_type":"Other","name":"Benson Industries","fax":"253-474-3529","description":"Doors, Frames, & Hardware Supply","company_category":"Contractor","id":"31b31580-17b2-11e2-9453-24b41a66b040"}]

Access: FREE
Return: JSON - Array of hashes with project companies including id and name
Parameters:
  • ticket : string - The ticket obtained from the login call.
  • project_id : string - Identifier of project in question (alternatively use a360_project_id).
  • Parameters specific to this request

POST /fieldapi/admin/v1/users

Description:

Return all information about users that are registered to the given project.Users are uniquely identified by email address. The company the user is relatedto is included in name and in identifier. User physical contact informationis included as well.

A user in BIM 360 Field is always associated with one company on the project. A useralso has several roles including:
  • contractor
  • architect
  • owner
  • engineer
  • inspector
In addition to these, the user may also have project roles such as:
  • project_admin
  • document_manager
These are used for some internal permissioning.

Status Codes:

200 OK Success.
401 UNAUTHORIZED Authentication failed.
500 INTERNAL SERVER ERROR A general system error has occurred.

Example Result:

[{"roles":"project_admin,document_manager,contractor","company":{"id":f47f034f-b727-11e1-9edf-ad27ba32cc68","name":"Gaylord Focker, Inc."},"junior":false,"first_name":"test","telephone":null,"email":"testadmin@gmail.com","last_name":"admin","id":"f47f035a-b727-11e1-9edf-ad27ba32cc68"}]

Access: FREE
Return: JSON - Array of hashes with project users including id, name and email
Parameters:
  • ticket : string - The ticket obtained from the login call.
  • project_id : string - Identifier of project in question (alternatively use a360_project_id).
  • Parameters specific to this request

POST /fieldapi/admin/v1/custom_field_create

Description:

Create a custom field. This is an additional field on a core object. The field will be given a generatedidentifier. This identifier is allowed for use in definining fields when, for instance, adding or updatingan issue. Core objects categories include:

  • Issue
  • Equipment
  • Checklist
  • Task
A custom field has an allowed type, potentially is required and may have a default value. The types include:
  • text
  • date
  • signature
  • numeric
  • checkbox
  • drop-down
In the case of drop-down lists, an array of possible value strings is given as well.

A custom field also allowed to optionally be associated only with a certain, specific sub-category. This isspecific to a given category in definition. For example, if a sub-category is given as the id of anthen the custom field is only for that particular form. Similar options exist to isolate to checklistheaders, etc.

Note this requires the authenticated account to be in the project administrator system role within BIM 360 Field.

Status Codes:

200 OK Success.
201 CREATED Created.
400 BAD REQUEST Incorrect parameters.
401 UNAUTHORIZED Authentication failed.
409 CONFLICT Name already in use.
500 INTERNAL SERVER ERROR A general system error has occurred.

Example Result:

{"id":f47f034f-b727-0000-9edf-ad27ba32cc68","name":"Inspector On Duty","category":"Issue"}

Access: FREE
Return: TEXT / NONE - Result codes to indicate status with optional error text returned
Parameters:
  • ticket : string - The ticket obtained from the login call.
  • project_id : string - Identifier of project in question (alternatively use a360_project_id).
  • Parameters specific to this request
  • category : string - containing object (Issue, Equipment, Checklist, Task)
  • name : string - name of this custom field
  • type : string - type of this field (text, date, signature, numeric, checkbox, drop-down)
  • required : string - (optional) If '1' the field is required
  • possible_values : array of strings - (required only for drop-down) - possible values for drop-down (alternativey a string with double colon separated values is allowed)
  • default_value : string - (optional) - default value
  • sub_category_id : string - (optional) - type specific field (e.g. Issue Type or Equipment Type)

POST /fieldapi/admin/v1/custom_field_destroy

Description:

Destroy the identified project.

Note this requires the authenticated account to be in the project administrator system role within BIM 360 Field.

NOTE: This cannot be undone so exercise caution in use of this method.

Status Codes:

200 OK Success.
401 UNAUTHORIZED Authentication failed.
404 NOT FOUND The project was not found by the given identifier.
500 INTERNAL SERVER ERROR A general system error has occurred.

Example Result:

none

Access: FREE
Return: TEXT / NONE - Result codes to indicate status with optional error text returned
Parameters:
  • ticket : string - The ticket obtained from the login call.
  • project_id : string - Identifier of project in question (alternatively use a360_project_id).
  • Parameters specific to this request
  • id : string - Field identifier of the custom field

POST /fieldapi/admin/v1/filters

Description:

Retrieve the set of existing Filters for the project. If a category is specified, such as Issue, only thosefilters will be returned.

Status Codes:

200 OK Success.
401 UNAUTHORIZED Authentication failed.
404 NOT FOUND The project was not found by the given identifier.
500 INTERNAL SERVER ERROR A general system error has occurred.

Example Result:

TBD

Access: FREE
Return: TEXT / NONE - Result codes to indicate status with optional error text returned
Parameters:
  • ticket : string - The ticket obtained from the login call.
  • project_id : string - Identifier of project in question (alternatively use a360_project_id).
  • Parameters specific to this request
  • category : string - (optional) containing object (Issue, Equipment, Checklist, Task)

GET /fieldapi/issues/v1

Description:

The Autodesk BIM 360 Field Issues API offers access to create, search, retrieve and update Issues.

There are core APIs for the actual creation and update as well as specific APIs to accessthe ids for information related to an Issue such as the formal type.

Use the BIM 360 Field Admin API to get information related to project-wide data that isbeyond the scope of issues such as the locations, users or companies associated with a project.

Access: FREE
Parameters:

POST /fieldapi/issues/v1/types

Description:

In BIM 360 Field every Issue is of a given Issue Type. This is a two-levelheirarchy of a given Process or Category of types and a more specifictype of issue.

An example of this might an Infraction as a specific type within theoveral Safety category. Other items in Safety might include Observation.

Categories and types are specific to a project, though many are commonly used, and can beconfigured.

Status Codes:

200 OK Success.
401 UNAUTHORIZED Authentication failed.
500 INTERNAL SERVER ERROR A general system error has occurred.

Example Result:

[{"category_name":"Punch List","name":"Punch List","id":"f498d0ed-0be0-11e2-9694-14f6960d7e4f"},{"category_name":"Punch List","name":"Pre-Punch List","id":"f498d0f7-0be0-11e2-9694-14f6960d7e4f"},{"category_name":"Punch List","name":"Issue","id":"f498d0f8-0be0-11e2-9694-14f6960d7e4f"},{"category_name":"Work List","name":"Concealment of Work/Closure","id":"f498d11f-0be0-11e2-9694-14f6960d7e4f"},{"category_name":"Work List","name":"Work to Complete List","id":"f498d120-0be0-11e2-9694-14f6960d7e4f"},{"category_name":"QA/QC","name":"Conforming","id":"f498d12a-0be0-11e2-9694-14f6960d7e4f"},{"category_name":"Safety","name":"Safety Infraction","id":"f498d133-0be0-11e2-9694-14f6960d7e4f"},{"category_name":"Safety","name":"Safety Conforming","id":"f498d13a-0be0-11e2-9694-14f6960d7e4f"},{"category_name":"Safety","name":"Safety Non-conforming","id":"f498d13b-0be0-11e2-9694-14f6960d7e4f"},{"category_name":"Commissioning","name":"Commissioning","id":"f4e47249-0be0-11e2-9694-14f6960d7e4f"}]

Access: FREE
Return: JSON - Array of hashes of the types, including procsss and type, for the project
Parameters:
  • project_id : string - Identifier of project in question (alternatively use a360_project_id).
  • ticket : string - The ticket obtained from the login call.
  • Parameters specific to this request

POST /fieldapi/issues/v1/create_type

Description:

Create a new Issue Type in the project. If the top-level Category exists, re-useit otherwise create a new one.

Status Codes:

200 OK Success, type existed.
201 CREATED New type created.
401 UNAUTHORIZED Authentication failed.
500 INTERNAL SERVER ERROR A general system error has occurred.

Example Result:

{"category_name":"Clash","name":"Clearence","id":"058ba013-42eb-11e2-b406-80c45664f08a"}

Access: FREE
Return: JSON - Hash including the type, category, id and a short-hand of type and id
Parameters:
  • project_id : string - Identifier of project in question (alternatively use a360_project_id).
  • ticket : string - The ticket obtained from the login call.
  • Parameters specific to this request
  • category_name : string - Name of category (e.g. Punch List, Safety)
  • name : string - Name of issue type within category (e.g. Observation, Concealment Work to Complete)

POST /fieldapi/issues/v1/destroy_type

Description:

Destroy a given Issue Type. In doing so, any Issues assigned to that type must be changed so specifyan alternative Issue Type to assign them to. All types are identified by identifier.

Status Codes:

200 OK Success, type existed.
401 UNAUTHORIZED Authentication failed.
500 INTERNAL SERVER ERROR A general system error has occurred.

Example Result:

I;200;Successful

Access: FREE
Return: TEXT / NONE - Result codes to indicate status with optional error text returned
Parameters:
  • project_id : string - Identifier of project in question (alternatively use a360_project_id).
  • ticket : string - The ticket obtained from the login call.
  • Parameters specific to this request
  • issue_type_id : string - Type of the Issue Type to be destroyed
  • alternate_issue_type_id : string - Type to assign any existing Issues to (if any) of the type being destroyed

POST /fieldapi/issues/v1/enable_standard_field

Description:

BIM 360 Field includes various standard fields. The visibility of these fields can be controlledallowing a project to either take advantage of them or to hide them to simply the interface. Thiscall will enable a field for view/edit procgramatically.

NOTE: When a field is shown, or hidden, the data remains within the BIM 360 Field system.

Status Codes:

200 OK Success, type existed.
401 UNAUTHORIZED Authentication failed.
500 INTERNAL SERVER ERROR A general system error has occurred.

Example Result:

I;200;Successful

Access: FREE
Return: TEXT / NONE - Result codes to indicate status with optional error text returned
Parameters:
  • project_id : string - Identifier of project in question (alternatively use a360_project_id).
  • ticket : string - The ticket obtained from the login call.
  • Parameters specific to this request
  • name : string - Field name (identity) as from the fields call (e.g. "f--priority")
  • required : string - (optional) If '1', mark the field as required to be entered

POST /fieldapi/issues/v1/disable_standard_field

Description:

BIM 360 Field includes various standard fields. The visibility of these fields can be controlledallowing a project to either take advantage of them or to hide them to simply the interface. Thiscall will disable a field for view/edit procgramatically.

NOTE: When a field is shown, or hidden, the data remains within the BIM 360 Field system.

Status Codes:

200 OK Success, type existed.
401 UNAUTHORIZED Authentication failed.
500 INTERNAL SERVER ERROR A general system error has occurred.

Example Result:

I;200;Successful

Access: FREE
Return: TEXT / NONE - Result codes to indicate status with optional error text returned
Parameters:
  • project_id : string - Identifier of project in question (alternatively use a360_project_id).
  • ticket : string - The ticket obtained from the login call.
  • Parameters specific to this request
  • name : string - Field name (identity) as from the fields call (e.g. "f--priority")

POST /fieldapi/issues/v1/fields

Description:

Return the fields for a given project. Includes the type-specific fields

Element arrays have built in position values that are offset to allow universal ordering. These offsets are:

10000-19999 = common fields (identifier, description, et al.)
20000-29999 = global common fields for all issue types
30000-39999 = common fields specifically for a given type
40000-49999 = ancillary common fields (backcharge, crew, et al.)

Status Codes:

200 OK Success, type existed.
201 CREATED New type created.
401 UNAUTHORIZED Authentication failed.
500 INTERNAL SERVER ERROR A general system error has occurred.

Example Result:

{"common":{"fields":[{"display_type":"drop-down","required":true,"position":10001,"name":"Issue type","possible_values":[],"id":"f--issue_type_id"},{"display_type":"text","required":true,"position":10002,"name":"Identifier","possible_values":[],"id":"f--identifier"},{"display_type":"text","required":true,"position":10003,"name":"Description","possible_values":[],"id":"f--description"},{"display_type":"drop-down","required":false,"position":10004,"name":"Responsible company","possible_values":[],"id":"f--responsible_company_id"},{"display_type":"drop-down","required":false,"position":10005,"name":"Priority","possible_values":["","Low","Medium","High","Critical"],"id":"f--priority"},{"display_type":"drop-down","required":false,"position":10006,"name":"Status","possible_values":["Draft","Open","Work Completed","Ready to Inspect","Not Approved","In Dispute","Closed","Void"],"id":"f--status"},{"display_type":"drop-down","required":false,"position":10007,"name":"Area","possible_values":[],"id":"f--area_id"},{"display_type":"text","required":false,"position":10008,"name":"Location detail","possible_values":[],"id":"f--location_detail"},{"display_type":"drop-down","required":false,"position":20001,"name":"Beverage of Choice","possible_values":["","Beer","Wine","Vodka"],"id":"cf--6b0def36-0bfb-11e2-9694-14f6960d7e4f"}]},"category":"Safety","fields":[{"display_type":"date","required":false,"position":30001,"name":"Occurrence Date","possible_values":[],"id":"cf--204a2088-1799-11e2-9453-24b41a66b040"},{"display_type":"text","required":true,"position":30002,"name":"Observers","possible_values":[],"id":"cf--204a2090-1799-11e2-9453-24b41a66b040"},{"display_type":"signature","required":true,"position":30003,"name":"Closing Authority","possible_values":[],"id":"cf--204a2091-1799-11e2-9453-24b41a66b040"}],"name":"Safety Incident","id":"f498d134-0be0-11e2-9694-14f6960d7e4f"},"ancillary":{"fields":[{"display_type":"numeric","required":false,"name":"Labor hours","possible_values":[],"id":"f--labor_hours"}]}}

Access: FREE
Return: JSON - Hash including the type, category, id and a short-hand of type and id
Parameters:
  • project_id : string - Identifier of project in question (alternatively use a360_project_id).
  • ticket : string - The ticket obtained from the login call.

POST /fieldapi/issues/v1/root_causes

Description:

Return the codes, names, categories and ids for the root causes for the project.

Root causes are, like Issue Types, a two tier categorized element affording grouping of like causes undera common heading.

Status Codes:

200 OK Success, type existed.
401 UNAUTHORIZED Authentication failed.
500 INTERNAL SERVER ERROR A general system error has occurred.

Example Result:

[{"category_name":"Human","name":"Drunk","id":"99b432f1-13e2-11e2-9453-24b41a66b040"},{"category_name":"Human","name":"Stupid","id":"99b432f2-13e2-11e2-9453-24b41a66b040"},{"category_name":"Human","name":"Lazy","id":"99b432f3-13e2-11e2-9453-24b41a66b040"},{"category_name":"Machine","name":"Gears","id":"99b432fc-13e2-11e2-9453-24b41a66b040"},{"category_name":"Machine","name":"Smell Bad","id":"99b432fd-13e2-11e2-9453-24b41a66b040"}]

Access: FREE
Return: JSON - Hash including the type, category, id and a short-hand of type and id
Parameters:
  • project_id : string - Identifier of project in question (alternatively use a360_project_id).
  • ticket : string - The ticket obtained from the login call.

POST /fieldapi/issues/v1/retrieve

Description:

Returns the complete Issue record.

Status Codes:

200 OK Success.
401 UNAUTHORIZED Authentication failed.
404 NOT FOUND One or more issues not found.
500 INTERNAL SERVER ERROR A general system error has occurred.

Example Result:

[{"id":"00000aac-0001-0000-0000-00000000000b","created_by":"quentin@example.org","fields":[{"id":"f--identifier","name":"Identifier","display_type":"text","value":"austinpowers"},{"id":"f--issue_type_id","name":"Issue type","display_type":"issue_type_id","value":"f498d0f5-0be0-11e2-9694-14f6960d7e4f"},{"id":"f--responsible_company_id","name":"Responsible company","display_type":"company_id","value":"9bd63e4b-115b-11e2-a378-760dde346a75"},{"id":"f--description","name":"Description","display_type":"text","value":"mr powers is afraid of circus-folk"},{"id":"f--status","name":"Status","display_type":"drop-down","value":"Work Completed"},{"id":"f--area_id","name":"Location","display_type":"location_id","value":"9bd63e5c-115b-11e2-a378-760dde346a75"},{"id":"f--root_cause_id","name":"Root cause","display_type":"root_cause_id","value":null},{"id":"f--labor_hours","name":"Labor hours","display_type":"numeric","value":6.0},{"id":"f--cost","name":"Cost","display_type":"text","value":null},{"id":"cf--6b0def36-0bfb-11e2-9694-14f6960d7e4f","name":"Beverage of Choice","display_type":"drop-down","value":"Wine"}],"comments":[],"attachments":[{"id":"0169b770-5abe-11e4-b890-000a2702005e","type":"Attachment","name":"Example_JPG_iPhone4S.jpg","caption":"hotel","tags":"suitcase","content_type":"image/jpeg","original_url":"https://bim360field.autodesk.com/api/binary_data?ticket=0125387a-5abe-11e4-b890-000a2702005e&project_id=00000330-0001-0000-0000-000000000001&object_id=0169b770-5abe-11e4-b890-000a2702005e&object_type=Attachment&image_type=original&page=0","thumb_url":"https://bim360field.autodesk.com/api/binary_data?ticket=0125387a-5abe-11e4-b890-000a2702005e&project_id=00000330-0001-0000-0000-000000000001&object_id=0169b770-5abe-11e4-b890-000a2702005e&object_type=Attachment&image_type=thumb&page=0","num_pages":1,"composites":[{"page":0,"url":"https://bim360field.autodesk.com/api/binary_data?ticket=0125387a-5abe-11e4-b890-000a2702005e&project_id=00000330-0001-0000-0000-000000000001&object_id=0169b770-5abe-11e4-b890-000a2702005e&object_type=Attachment&image_type=composite&page=0"}],"created_at":"2014-10-23 10:08:04 -0400","updated_at":"2014-10-23 10:08:04 -0400","created_by":"moe.syzlack@moes.springfield.somewhere.gov"}]}]

Access: FREE
Return: JSON - Hash including the type, category, id and a short-hand of type and id
Parameters:
  • project_id : string - Identifier of project in question (alternatively use a360_project_id).
  • ticket : string - The ticket obtained from the login call.
  • Parameters specific to this request
  • ids : string - One or Issue ID values seperated by commas

GET /fieldapi/issues/v1/list

Description:

Returns a list of issues.

Status Codes:

200 OK Success.
401 UNAUTHORIZED Authentication failed.
404 NOT FOUND One or more issues not found.
500 INTERNAL SERVER ERROR A general system error has occurred.

Access: FREE
Return: JSON - Hash including the type, category, id and a short-hand of type and id
Parameters:
  • project_id : string - Identifier of project in question (alternatively use a360_project_id).
  • ticket : string - The ticket obtained from the login call.
  • Parameters specific to this request
  • area_ids : string - One or more Area ID values separated by commas. You may also pass in the value 'No Area' to retrieve issues that are unassociated with an area
  • offset : numeric - (optional) Within the results, start at the given offset (used with limit for paging)
  • limit : numeric - (optional) Within the results, retrieve only this count (used with offset for paging). If limit is not provided the response will include first 25 issues

POST /fieldapi/issues/v1/create

Description:

Create a new issue.

The "fields" array is the primary array of field identifiers and values based on the identifiers from the fields call.
There are other optional arrays such as "uri_references" which contain an array of hashes of "name" and "path" (and optionally a "caption" and "tags"). To create new URI References.

Input: "issues"

The following shows an array with one issue. The issue is filling in the minimal fields of the Issue Type Id and the Description.
[{"temporary_id":"Q45","fields":[{"id":"f--description","value":"This is a test of creating an issue"},{"id":"f--issue_type_id","value":"f498d0f5-0be0-11e2-9694-14f6960d7e4f"}],"uri_references":[{"name":"Yahoo!","path":"http://www.yahoo.com","caption":"Yahoo"}]}]

Status Codes:

200 OK Success.
401 UNAUTHORIZED Authentication failed.
404 NOT FOUND One or more issues not found.
500 INTERNAL SERVER ERROR A general system error has occurred.

Example Result:

The following is an example result. It shows an array of hashes. Each hash contains the temporary_idmatching the issue it relates to. The id given in the block is the true Issue ID and further are twoarrays: the general_errors are strings if problems are encounted during parsing. The errors is an arrayof arrays of strings. In this case each array in the array will have two elements: the first is thefield and the second is the error in the field. In this way validation errors are reported back.
[{"success":true,"general_errors":[],"errors":[],"id":"bea2eb64-4420-11e2-b406-80c45664f08a","temporary_id":"Q45"}]

Access: FREE
Return: JSON - Hash including the type, category, id and a short-hand of type and id
Parameters:
  • project_id : string - Identifier of project in question (alternatively use a360_project_id).
  • ticket : string - The ticket obtained from the login call.
  • Parameters specific to this request
  • issues : string - JSON encoded array of issues (see below)

POST /fieldapi/issues/v1/update

Description:

Update an existing issue or issues.

You may notice that this format is essentially the same as retrieve and differsfrom create only in that the id field is given.

The "fields" array is the primary array of field identifiers and values based on the identifiers fromthe fields call. There are other optional arrays such as "uri_references" which contain an array ofhashes of "name" and "path" (and optionally a "caption" and "tags"). To create new URI References. Youmay also specify the "id" of an existing URI Reference to change it's data. Finally you can add a hashelement "delete" set to "1" along with an "id" of an existing URI Reference to update deleting thatURI Reference.

Input: "issues"

The following shows an array with one issue. The example is setting the priority to High.All other fields in the issue would have remained the same.
[{"id":"bea2eb64-4420-11e2-b406-80c45664f08a","temporary_id":"Q45","fields":[{"id":"f--priority","value":"High"},]}]

Status Codes:

200 OK Success.
401 UNAUTHORIZED Authentication failed.
404 NOT FOUND One or more issues not found.
500 INTERNAL SERVER ERROR A general system error has occurred.

Example Result:

The following is an example result. It shows an array of hashes. Each hash contains the temporary_idmatching the issue it relates to. The id given in the block is the true Issue ID and further are twoarrays: the general_errors are strings if problems are encounted during parsing. The errors is an arrayof arrays of strings. In this case each array in the array will have two elements: the first is thefield and the second is the error in the field. In this way validation errors are reported back.
[{"success":true,"general_errors":[],"errors":[],"id":"bea2eb64-4420-11e2-b406-80c45664f08a","temporary_id":"Q45"}]

Access: FREE
Return: JSON - Array of hashes with the persistent Issue ID value and any errors
Parameters:
  • project_id : string - Identifier of project in question (alternatively use a360_project_id).
  • ticket : string - The ticket obtained from the login call.
  • Parameters specific to this request
  • issues : string - JSON encoded array of issues (see below)

POST /fieldapi/issues/v1/search

Description:

Search based on a saved filter (see elsewhere) combined with an array of conditions or simply with an array of conditions. The conditions translate to a repeated query. We support limit and offset optional arguments to allow an application to page through a set of matching issues.

Conditions are essentially tuples of a field identifier, an operation such as equal, starting with, or in a given array. The conditions argument is, itself, a JSON array of strings. The strings are formed as a comma separated string with the arguments being the field identifier, the condition and the value. The value is a JSON formatted string. An example is:

"[\"cf--5bf288e4-21a0-4fe8-9a4b-67c8133fcb92,like,\\\"inspect\\\"\",\"f--status,in,[\\\"Work Completed\\\",\\\"Draft\\\"]\"]"

The comparisions include:

  • eq
  • neq
  • like
  • nlike
  • startswith
  • nstartswith
  • endswith
  • nendswith
  • in
  • nin
  • geq
  • leq

The latter two only work for numeric values. The value is typically a string (quotes escaped) and the in/nin expect an array which is to say a string with quoted values in square brackets.

Status Codes:

200 OK Success.
401 UNAUTHORIZED Authentication failed.
500 INTERNAL SERVER ERROR A general system error has occurred.

Example Result:

[{"id":"00000aac-0001-0000-0000-00000000000b","closed_at": "closed at date","fields":[{"value":"000001","name":"Identifier","display_type":"text","id":"f--identifier"},{"value":"Open","name":"Status","display_type":"text","id":"f--status"},{"value":"Inspection has been scheduled","name":"Notes","display_type":"text","id":"cf--5bf288e4-21a0-4fe8-9a4b-67c8133fcb92"}]}]

Access: FREE
Return: JSON - Array of hashes with the issue objects
Parameters:
  • project_id : string - Identifier of project in question (alternatively use a360_project_id).
  • ticket : string - The ticket obtained from the login call.
  • Parameters specific to this request
  • filter_id : string - (optional) Filter id - default is to the All Issues filter
  • conditions : array or strings- (optional) An array of conditions (see below)
  • offset : numeric - (optional) Within the results, start at the given offset (used with limit for paging)
  • limit : numeric - (optional) Within the results, retrieve only this count (used with offset for paging)
  • source_id : string - The ID of the parent object (Task or Equipment) that you'd like to retrieve issues for.
  • source_type : string - Type of the parent object (Task or Equipment).
  • count : string - (optional) If truthy (1, '1', 'true', etc.), returns count of issues, matching the search

POST /fieldapi/issues/v1/destroy

Description:

Destroy one or more issues by id.

NOTE: This cannot be undone. TODO: return details in case we aren't authorized to close some issues.

Status Codes:

200 OK Success.
401 UNAUTHORIZED Authentication failed.
404 NOT FOUND Issues is not found.
500 INTERNAL SERVER ERROR A general system error has occurred.

Example Result:

Access: FREE
Return: JSON
Parameters:
  • project_id : string - Identifier of project in question (alternatively use a360_project_id).
  • ticket : string - The ticket obtained from the login call.
  • ids : string - The id of the issues to destroy in a comma separated list

POST /fieldapi/issues/v1/comment

Description:

Add a comment to the existing issue identified by id. The comment is textual in nature. The author may beoverridden otherwise will be recorded as the current authenticated user or effective user in an SSO case.

Status Codes:

200 OK Success.
401 UNAUTHORIZED Authentication failed.
404 NOT FOUND Issues is not found.
500 INTERNAL SERVER ERROR A general system error has occurred.

Example Result:

Access: FREE
Return: JSON
Parameters:
  • project_id : string - Identifier of project in question (alternatively use a360_project_id).
  • ticket : string - The ticket obtained from the login call.
  • Parameters specific to this request
  • id : string - The id of the issue to add the comment to
  • comment : string - The comment text to add
  • author : string - (optional) Override email address of comment author

GET /fieldapi/checklists/v1

Description:

Retrieves a list of BIM 360 Field checklists for a single project, with the option of only retrieving checklists associated with a Task or a piece of Equipment.

Status Codes:

200 OK Success.
401 UNAUTHORIZED Authentication failed.
500 INTERNAL SERVER ERROR A general system error has occurred.

Example Request:

GET https://bim360field.autodesk.com/fieldapi/checklists/v1.json?ticket=6267caf3-c3ad-11e2-8a88-6dccb730c85e&project_id=ca0e24b0-be43-11e2-92b9-bd56764d1fb2

Example Result:

[{"status": "Open","created_at": "2013-05-20 12:23:07 -0400","checklist_type": "Safety","identifier": "000001","name": "Field Safety Checklist","id": "8e6c33ea-c169-11e2-92bf-93adab508ed6","updated_at": "2013-05-20 12:49:09 -0400","created_by": "moe@example.com"}]

Access: FREE
Return: JSON - Array of hashes of the checklists. This is a minimal set of checklist information, which includes the checklist's ID. To retrieve checklist details, call the /fieldapi/checklists/v1/:id API method.
Parameters:
  • ticket : string - Authentication token
  • project_id : string - Identifier of project in question (alternatively use a360_project_id).
  • Parameters specific to this request
  • source_id : string - The ID of the parent object (Task or Equipment) that you'd like to retrieve checklists for. For example, if you'd like to retrieve all checklists for a piece of equipment, pass in the equipment's ID here.
  • limit : numeric - The maximum number of checklists to return in this request. Use this for paging the results. Defaults to 25
  • offset : numeric - The offset within the list of checklists to start returning results. Use this for paging the results. Defaults to 0

GET /fieldapi/checklists/v1/:id

Description:

Retrieves a single BIM 360 Field checklist.

Status Codes:

200 OK Success.
400 BAD REQUEST No checklist ID was passed in
401 UNAUTHORIZED Authentication failed.
404 NOT FOUND Could not find the checklist with the specified ID
500 INTERNAL SERVER ERROR A general system error has occurred.

Example Request:

GET https://bim360field.autodesk.com/fieldapi/checklists/v1/3ef1c2a4-c16d-11e2-92bf-93adab508ed6.json?ticket=6267caf3-c3ad-11e2-8a88-6dccb730c85e&project_id=ca0e24b0-be43-11e2-92b9-bd56764d1fb2

Example Result:

{"comments": [{"created_at": "2013-06-04T13:01:18-04:00","created_by": "barry.walker@autodesk.com","comment_text": "This is the first comment on this sample API checklist","id": "f3f72b19-cd37-11e2-a818-cadae7f720b9"}, {"created_at": "2013-06-04T13:01:29-04:00","created_by": "barry.walker@autodesk.com","comment_text": "This is the second comment on this sample API checklist","id": "f3f72b1e-cd37-11e2-a818-cadae7f720b9"}],"status": "Open","created_at": "2013-06-04 13:00:17 -0400","created_by": "moe@example.com","checklist_type": "QA/QC","project_id": "ca0e24b0-be43-11e2-92b9-bd56764d1fb2","company": {"name": "Acme Drywall","id": "9662301c-be44-11e2-92b9-bd56764d1fb2"},"custom_field_values": [{"value": "0","display_type": "checkbox","id": "3b8f9f42-cd38-11e2-a818-cadae7f720b9"}, {"value": "06/05/2013","display_type": "date","id": "3b8f9f43-cd38-11e2-a818-cadae7f720b9"}, {"value": "Choice 2","display_type": "drop-down","id": "3b8f9f44-cd38-11e2-a818-cadae7f720b9"}, {"value": "3.14159265","display_type": "numeric","id": "3b8f9f45-cd38-11e2-a818-cadae7f720b9"}, {"value": "Default Text Value","display_type": "text","id": "3b8f9f46-cd38-11e2-a818-cadae7f720b9"}],"description": "This is a sample checklist for API demonstration purposes.","source": {},"phase": null,"identifier": "000009","signatures": [{"type": "Signature","original_url": "https://bim360field.autodesk.com/api/binary_data?ticket=6267caf3-c3ad-11e2-8a88-6dccb730c85e&project_id=ca0e24b0-be43-11e2-92b9-bd56764d1fb2&object_id=429f6326-cd38-11e2-a818-cadae7f720b9&object_type=Signature&image_type=original&page=0","id": "429f6326-cd38-11e2-a818-cadae7f720b9"}],"name": "Wall closing checklist","template": {"name": "Wall closing checklist","id": "402980b2-cd34-11e2-a818-cadae7f720b9"},"attachments": [{"type": "UriReference","path": "http://www.google.com","name": "Google","id": "565199f2-cd38-11e2-a818-cadae7f720b9"}, {"type": "DocumentReference","num_pages": 1,"content_type": "application/pdf","thumb_url": "https://bim360field.autodesk.com/api/binary_data?ticket=6267caf3-c3ad-11e2-8a88-6dccb730c85e&project_id=ca0e24b0-be43-11e2-92b9-bd56764d1fb2&object_id=429f6331-cd38-11e2-a818-cadae7f720b9&object_type=DocumentReference&image_type=thumb&page=0","composites": [{"page": 0,"url": "https://bim360field.autodesk.com/api/binary_data?ticket=6267caf3-c3ad-11e2-8a88-6dccb730c85e&project_id=ca0e24b0-be43-11e2-92b9-bd56764d1fb2&object_id=429f6331-cd38-11e2-a818-cadae7f720b9&object_type=DocumentReference&image_type=composite&page=0"}],"original_url": "https://bim360field.autodesk.com/api/binary_data?ticket=6267caf3-c3ad-11e2-8a88-6dccb730c85e&project_id=ca0e24b0-be43-11e2-92b9-bd56764d1fb2&object_id=429f6331-cd38-11e2-a818-cadae7f720b9&object_type=DocumentReference&image_type=original&page=0","id": "429f6331-cd38-11e2-a818-cadae7f720b9"}],"id": "3b8f9f38-cd38-11e2-a818-cadae7f720b9","sections": [{"items": [],"section_name": ""}, {"items": [{"created_at": "2013-06-04 13:00:17 -0400","issues": [],"question_text": "Item 1's Item Text","created_by": "barry.walker@autodesk.com","display_type": "drop-down","response": "+","display_number": "1.","position": 2,"comment": "Comment for Item 1.","spec_ref": "","is_conforming": "Yes","attachments": [],"id": "3b8f9f4f-cd38-11e2-a818-cadae7f720b9","possible_values": ["+", "-", "N/A"],"updated_at": "2013-06-04 13:02:10 -0400"}, {"created_at": "2013-06-04 13:00:17 -0400","issues": [],"question_text": "This is a Date response type with a default value of 1 day after the current date.","created_by": "barry.walker@autodesk.com","display_type": "date","response": "06/05/2013","display_number": "2.","position": 3,"comment": null,"spec_ref": "","is_conforming": "Other","attachments": [],"id": "3b8f9f51-cd38-11e2-a818-cadae7f720b9","possible_values": [],"updated_at": "2013-06-04 13:00:17 -0400"}, {"created_at": "2013-06-04 13:00:17 -0400","issues": [{"description": "This is a Single-Select List response type","identifier": "BW-00059","id": "f3f72b20-cd37-11e2-a818-cadae7f720b9"}],"question_text": "This is a Single-Select List response type","created_by": "barry.walker@autodesk.com","display_type": "single-select","response": "Non-conforming choice","display_number": "3.","position": 4,"comment": null,"spec_ref": "Division 10 Specialties","is_conforming": "No","attachments": [{"type": "DocumentReference","num_pages": 1,"content_type": "application/pdf","thumb_url": "https://bim360field.autodesk.com/api/binary_data?ticket=6267caf3-c3ad-11e2-8a88-6dccb730c85e&project_id=ca0e24b0-be43-11e2-92b9-bd56764d1fb2&object_id=a4e9b126-cd38-11e2-a818-cadae7f720b9&object_type=DocumentReference&image_type=thumb&page=0","composites": [{"page": 0,"url": "https://bim360field.autodesk.com/api/binary_data?ticket=6267caf3-c3ad-11e2-8a88-6dccb730c85e&project_id=ca0e24b0-be43-11e2-92b9-bd56764d1fb2&object_id=a4e9b126-cd38-11e2-a818-cadae7f720b9&object_type=DocumentReference&image_type=composite&page=0"}],"original_url": "https://bim360field.autodesk.com/api/binary_data?ticket=6267caf3-c3ad-11e2-8a88-6dccb730c85e&project_id=ca0e24b0-be43-11e2-92b9-bd56764d1fb2&object_id=a4e9b126-cd38-11e2-a818-cadae7f720b9&object_type=DocumentReference&image_type=original&page=0","id": "a4e9b126-cd38-11e2-a818-cadae7f720b9"}],"id": "3b8f9f56-cd38-11e2-a818-cadae7f720b9","possible_values": ["Conforming Choice", "Non-conforming choice"],"updated_at": "2013-06-04 13:03:19 -0400"}, {"created_at": "2013-06-04 13:00:17 -0400","issues": [{"description": "This is a Multi-Select List response type","identifier": "BW-00060","id": "add3ee96-cd38-11e2-a818-cadae7f720b9"}],"question_text": "This is a Multi-Select List response type","created_by": "barry.walker@autodesk.com","display_type": "multi-select","response": "Choice 2|Choice 3|Choice 1","display_number": "4.","position": 5,"comment": null,"spec_ref": "","is_conforming": "No","attachments": [],"id": "3b8f9f58-cd38-11e2-a818-cadae7f720b9","possible_values": ["Choice 1", "Choice 2", "Choice 3"],"updated_at": "2013-06-04 13:03:28 -0400"}],"section_name": "Section 1"}],"priority": "Medium","updated_at": "2013-06-04 13:03:28 -0400"}

Access: FREE
Return: JSON - Complete details for a single checklist including attachments, items, comments and custom fields. Please refer to the example output JSON.
Parameters:
  • ticket : string - Authentication token
  • project_id : string - Identifier of project in question (alternatively use a360_project_id).
  • Parameters specific to this request
  • id : string - The ID of a checklist to retrieve details for.

GET /fieldapi/companies/v1

Description:

Returns list of companies. If project_id is not given all companies from the user's account will be returned.

Status Codes:

200 OK Success.
401 UNAUTHORIZED Authentication failed.
500 INTERNAL SERVER ERROR A general system error has occurred.

Example Result:

[{"name":"Admin Company API","id":"00000101-0001-0000-0000-000000000013","address":{"country":"US","state":null,"address3":null,"postal_code":"1322","county":null,"city":"Waltham","address2":null,"address1":null},"url":"www.admincompanyapi.com","telephone":"206-340-2256","ctype":"Other","custom_fields":[{"value":null,"default_value":null,"possible_values":null,"display_type":"text","name":"State Identifier"}],"fax":"206-340-2267","ein_no":"00-1234568","description":"General Contractor","category":"Contractor","duns_no":"12-345-6780"},{"name":"Sample Construction API","id":"00000101-0001-0000-0000-000000000014","address":{"country":"US","state":null,"address3":null,"postal_code":"1111","county":null,"city":"Boston","address2":null,"address1":null},"url":"www.sampleconstructionapi.com","telephone":"206-340-2255","ctype":"Other","custom_fields":[{"value":"000-123-456","default_value":null,"possible_values":null,"display_type":"text","name":"State Identifier"}],"fax":"206-340-2266","ein_no":"00-1234567","description":"Engineer","category":"Contractor","duns_no":"12-345-6789"}]

Access: FREE
Return: JSON - Hash of companies
Parameters:
  • ticket : string - Authentication token
  • no_http_status : string - (optional) If '1' result 200 will always be returned on failure with formatted error string.
  • Parameters specific to this request
  • project_id : string - (optional) returns all companies associated with the project if given

GET /fieldapi/companies/v1/:id

Description:

Retrieves a single company.

Status Codes:

200 OK Success.
400 BAD REQUEST No company ID was passed in
401 UNAUTHORIZED Authentication failed.
404 NOT FOUND Could not find the company with the specified ID
500 INTERNAL SERVER ERROR A general system error has occurred.

Example Result:

{"name":"Admin Company API","id":"00000101-0001-0000-0000-000000000013","address":{"country":"US","state":null,"address3":null,"postal_code":"1322","county":null,"city":"Waltham","address2":null,"address1":null},"url":"www.admincompanyapi.com","telephone":"206-340-2256","ctype":"Other","custom_fields":[{"value":null,"default_value":null,"possible_values":null,"display_type":"text","name":"State Identifier"}],"fax":"206-340-2267","ein_no":"00-1234568","description":"General Contractor","category":"Contractor","duns_no":"12-345-6780"}

Access: FREE
Return: JSON - Complete information about a single company including address and custom fields
Parameters:
  • ticket : string - Authentication token
  • no_http_status : string - (optional) If '1' result 200 will always be returned on failure with formatted error string.
  • Parameters specific to this request
  • id : string - The id of a company to retrieve details for

POST /fieldapi/companies/v1

Description:

Create a new account level company.

Input: "company"

The following shows a hash of company attributes:
{"name":"Sample Construction API","address":{"country":"US","state":null,"address3":null,"postal_code":"1111","county":null,"city":"Boston","address2":null,"address1":null},"url":"www.sampleconstructionapi.com","telephone":"206-340-2255","ctype":"Other","custom_fields":[{"value":"000-123-456","default_value":null,"possible_values":null,"display_type":"text","name":"State Identifier"}],"fax":"206-340-2266","ein_no":"00-1234567","description":"Engineer","category":"Contractor","duns_no":"12-345-6789"}

Status Codes:

200 OK Success.
401 UNAUTHORIZED Authentication failed.
404 NOT FOUND One or more companies not found.
500 INTERNAL SERVER ERROR A general system error has occurred.

Example Result:

The following is an example result hash. The id given in the block is the true Company ID.Errors is an array of arrays of strings. Each array in the array will have two elements: the first is thefield and the second is the error in the field. In this way validation errors are reported back.
{"success":true,"errors":[],"id":"bea2eb64-4420-11e2-b406-80c45664f08a"}

Access: FREE
Return: JSON - Hash with the persistent Company ID and any errors.
Parameters:
  • ticket : string - Authentication token
  • no_http_status : string - (optional) If '1' result 200 will always be returned on failure with formatted error string.
  • Parameters specific to this request
  • company : string - JSON encoded hash of company attributes (see below)

PUT /fieldapi/companies/v1/:id

Description:

Update an existing company.

Input: "companies"

The following shows a company attributes hash. The example is setting a custom field "State Identifier" and address.All other fields in the company would have remained the same.
{"address":{"country":"US","state":MA,"postal_code":"02451","city":"Waltham","address1":"1560 Trapelo Rd"},"custom_fields":[{"value":"000-123-456","display_type":"text","name":"State Identifier"}]}

Status Codes:

200 OK Success.
401 UNAUTHORIZED Authentication failed.
404 NOT FOUND One or more companies not found.
500 INTERNAL SERVER ERROR A general system error has occurred.

Example Result:

The following is an example result hash. The id given in the block is the Company ID.Errors is an array of arrays of strings. Each array in the array will have two elements: the first is thefield and the second is the error in the field. In this way validation errors are reported back.
{"success":true,"errors":[],"id":"bea2eb64-4420-11e2-b406-80c45664f08a"}

Access: FREE
Return: JSON - Hash with the persistent Company ID and any errors.
Parameters:
  • ticket : string - Authentication token
  • no_http_status : string - (optional) If '1' result 200 will always be returned on failure with formatted error string.
  • Parameters specific to this request
  • id : string - The ID of a company to update.
  • company : string - JSON encoded hash of the company attributes (see below)

POST /fieldapi/companies/v1/add_to_projects

Description:

Add companies to projects. Note, companies should be created first for the account.

Status Codes:

200 OK Success.
401 UNAUTHORIZED Authentication failed.
404 NOT FOUND Companies are not found.
500 INTERNAL SERVER ERROR A general system error has occurred.

Example Result:

{"errors":[],"success":true}

Access: FREE
Return: JSON
Parameters:
  • ticket : string - Authentication token
  • no_http_status : string - (optional) If '1' result 200 will always be returned on failure with formatted error string.
  • Parameters specific to this request
  • company_ids : string - The id of the companies in a comma separated list
  • project_ids : string - The id of the projects in a comma separated list

POST /fieldapi/companies/v1/remove_from_projects

Description:

Remove companies from projects. Note, companies will not be deleted from the account.

Status Codes:

200 OK Success.
401 UNAUTHORIZED Authentication failed.
404 NOT FOUND Companies are not found.
500 INTERNAL SERVER ERROR A general system error has occurred.

Example Result:

{"errors":[],"success":true}

Access: FREE
Return: JSON
Parameters:
  • ticket : string - Authentication token
  • no_http_status : string - (optional) If '1' result 200 will always be returned on failure with formatted error string.
  • Parameters specific to this request
  • company_ids : string - The id of the companies in a comma separated list
  • project_ids : string - The id of the projects in a comma separated list

GET /api/v1/projects/:project_id/users

Description:

Returns a list of project users.

Access: FREE
Return: [JSON] - Returns an array of project users.
Parameters:
  • ticket : string - Authentication token
  • project_id : string - The ID of the project to perform this action against.

GET /api/v1/projects/:project_id/users/:id

Description:

Retrieves a single project user.

Access: FREE
Return: [JSON] - Returns a hash of the project user attributes.
Parameters:
  • ticket : string - Authentication token
  • project_id : string - The ID of the project to perform this action against.
  • id : string - The id of the user to retrieve details for

POST /api/v1/projects/:project_id/users

Description:

Add users to a project. It will create new users if they don't exist. Make sure company assigned to the project. The list of project companies could be retrieve using /fieldapi/companies/v1

Project user role ids:

00000000-0005-0000-0001-000000000003 = contractor
00000000-0006-0000-0001-000000000003 = architect
00000000-0007-0000-0001-000000000003 = engineer
00000000-0008-0000-0001-000000000003 = owner
00000000-0009-0000-0001-000000000003 = subcontractor
00000000-000b-0000-0001-000000000003 = inspector

Input: "users"

The following shows an example array of users:
[{"name": "John Smith","email": "john.smith@example.com","project_admin": false,"document_manager": false,"photo_viewer": false,"role_id": "00000000-0006-0000-0001-000000000003","company": {"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"}}]

Access: FREE
Return: [JSON] - Returns a hash of the new project users attributes.
Parameters:
  • ticket : string - Authentication token
  • project_id : string - The ID of the project to perform this action against.
  • Parameters specific to this request
  • users : string - JSON encoded array of users

PUT /api/v1/projects/:project_id/users/:id

Description:

Update an existing project user

Input: "user"

The following shows a hash of project user attributes:
{"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","company_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","project_admin": true,"document_manager": true,"photo_viewer": true}

Access: FREE
Return: [JSON] - Returns a hash of the project user attributes.
Parameters:
  • ticket : string - Authentication token
  • project_id : string - The ID of the project to perform this action against.
  • id : string - The id of the user
  • Parameters specific to this request
  • user : string - JSON encoded hash of project user attributes

DELETE /api/v1/projects/:project_id/users/:id

Description:

Removes a user from a project

Access: FREE
Return: [JSON] - Returns the status of deletion
Parameters:
  • ticket : string - Authentication token
  • project_id : string - The ID of the project to perform this action against.
  • id : string - The id of the user

GET /api/v1/projects/:project_id/daily_updates

Description:

Returns a list of daily updates.

Access: FREE
Return: [JSON] - Returns an array of daily updates.
Parameters:
  • ticket : string - Authentication token
  • project_id : string - The ID of the project to perform this action against.
  • from : string - The start time of the daily update date range.
  • to : string - The end time of daily update date range.
  • by : string - The property used by the date range: daily_update_date, created_at, last_modified_at.
  • filter : string - The scope used to search: my_own, my_company, all.
  • include_attachments - The option used to include attachments.

GET /api/v1/projects/:project_id/daily_updates/:id

Description:

Retrieves a single daily update.

Access: FREE
Return: [JSON] - Returns a hash of the daily update attributes.
Parameters:
  • ticket : string - Authentication token
  • project_id : string - The ID of the project to perform this action against.
  • Parameters specific to this request
  • id : string - The id of a daily update to retrieve details for

POST /api/v1/projects/:project_id/daily_updates

Description:

Create a new daily update.

Input: "daily_update"

The following shows a hash of daily update attributes:
{"status": "Closed","update_date": "2015-08-17","sections": {"summary": {"notes": "White House Update"},"weather": {"notes": "Weather notes","humidity": 79,"precip_accumulation": 0.1392,"precip_type": "rain","summary": "Light rain starting in the afternoon, continuing until evening.","temperature_max": 83.4,"temperature_max_time": "2015-08-12T18:00:00Z","temperature_min": 63.25,"temperature_min_time": "2015-08-12T10:00:00Z","visibility": 8.31,"wind_speed": 4.3,"zipcode": "20500","location_search_term": "11600 Pennsylvania Avenue Northwest, Washington, DC 20500 US"},"labor": {"labors": [{"company_id": "3553cb07-17fb-4f17-b0da-a524b1dcc8a1","workers": 2,"total_hours": 16,"notes": "Painted with Blue"}]}}}

Access: FREE
Return: [JSON] - Returns a hash of the new daily update attributes.
Parameters:
  • ticket : string - Authentication token
  • project_id : string - The ID of the project to perform this action against.
  • Parameters specific to this request
  • daily_update : string - JSON encoded hash of daily update attributes

PUT /api/v1/projects/:project_id/daily_updates/:id

Description:

Update an existing daily update.

Input: "daily_update"

The following shows a hash of daily update attributes. The example is setting status to "Open", changing the update date, and updates summary section notes.
Note, id for the summary section should be provided. All other fields in the daily update would have remained the same.
{"status": "Open","update_date": "2015-08-16","sections": {"summary": {"id": "7ee2d5f9-68b9-4ed2-884e-36508f8e87bb","notes": "Update date changed to 2015-08-16"}}}

Access: FREE
Return: [JSON] - Returns a hash of the daily update attributes.
Parameters:
  • ticket : string - Authentication token
  • project_id : string - The ID of the project to perform this action against.
  • Parameters specific to this request
  • daily_update : string - JSON encoded hash of daily update attributes

DELETE /api/v1/projects/:project_id/daily_updates/:id

Description:

Deletes a daily update

Access: FREE
Return: [JSON] - Returns the status of deletion
Parameters:
  • ticket : string - Authentication token
  • project_id : string - The ID of the project to perform this action against.
  • Parameters specific to this request
  • id : string - The id of a daily update to retrieve details for

GET /api/v1/projects/:project_id/equipment_changes

Description:

Return a set of matching Equipment status change records. The records indicate when the status was started, transitioned to, and, optionally, when the status ended and was transitioned away from. If the record is still in the status the ending date will be blank.

The format of the resulting array of JSON is:

[{"id": "equipment id value","status": "status value as string","previous_status": "previous status if any""user": "email of user if known","starting_at": "date when we entered the given status","ending_at": "date when we left the given status or nil"}]

Access: FREE
Return: [JSON] - Return an array of equipment status changes
Parameters:
  • ticket : string - The ticket obtained from the login call.
  • project_id : string - The ID of the project to perform this action against.
  • status : string - (Optional) Comma separated strings of statuses to search for.
  • start_dt : string/date - (Optional) Starting date for search (earliest matches)
  • end_dt : string/date - (Optional) Ending date for search (latest matches)

GET /api/v1/projects/:project_id/equipment_changes/:equipment_id

Description:

Return status changes for a given Equipment item.

The format of the resulting array of JSON is:

[{"id": "equipment id value","status": "status value as string","user": "email of user if available","starting_at": "date when we entered the given status","ending_at": "date when we left the given status or nil"}]

Access: FREE
Return: [JSON] - Return an array of equipment status changes
Parameters:
  • ticket : string - The ticket obtained from the login call.
  • project_id : string - The ID of the project to perform this action against.
  • equipment_id : string - The ID of the equipment to interrogate.

GET /api/v1/projects/:project_id/issue_changes

Description:

Return a set of matching Equipment status change records. The records indicate when the status was started, transitioned to, and, optionally, when the status ended and was transitioned away from. If the record is still in the status the ending date will be blank.

The format of the resulting array of JSON is:

[{"id": "issue id value","status": "status value as string","previous_status": "previous status value if available""user": "email of user if available","start_dt": "date when we entered the given status","end_dt": "date when we left the given status or nil"}]

Access: FREE
Return: [JSON] - Return an array of issue status changes
Parameters:
  • ticket : string - The ticket obtained from the login call.
  • project_id : string - The ID of the project to perform this action against.
  • status : string - (Optional) Comma separated strings of statuses to search for.
  • start_dt : string/date - (Optional) Starting date for search (earliest matches)
  • end_dt : string/date - (Optional) Ending date for search (latest matches)

GET /api/v1/projects/:project_id/issue_changes/:issue_id

Description:

Return status changes for a given Issue item.

The format of the resulting array of JSON is:

[{"id": "issue id value","status": "status value as string","user": "email of user","start_dt": "date when we entered the given status","end_dt": "date when we left the given status or nil"}]

Access: FREE
Return: [JSON] - Return an array of issue status changes
Parameters:
  • ticket : string - The ticket obtained from the login call.
  • project_id : string - The ID of the project to perform this action against.
  • issue_id : string - The ID of the issue to interrogate.

PUT /admin/v1/accounts/:account_id/users/change_status

Description:

Activat/De-activate users

Status Codes:

200 OK Success.
400 BAD REQUEST Bad arguments typically related to sorting.
401 UNAUTHORIZED Authentication failed.
500 INTERNAL SERVER ERROR A general system error has occurred.

Example Result:

{"user_id":"f47f035a-b727-11e1-9edf-ad27ba32cc68","status":"active",}

Access: FREE
Return: JSON - Hash including the user_id, role, status
Parameters:
  • api_key : string - Authentication: (Key) Account/User public API key.
  • timestamp : numeric - Authentication: (Key) Timestamp of key signing in UTC seconds since epoch.
  • sig : string - Authentication: (Key) Signature built with secret API key, public API key and timestamp.
  • account_id : string
  • oxygen_id : string
  • email : string
  • status : string