Skip to content

Projects

Returns a list of projects in your organization. Projects are returned in sorted order, with the most recently created project appearing first.

GET https://api.arcsite.com/v1/projects

Terminal window
curl "https://api.arcsite.com/v1/projects" \
-H "Authorization: Bearer your_api_token_here"
Response
[
{
"id": 36029621652695040,
"name": "project 4",
"created_at": "2022-01-16T04:19:23",
"updated_at": "2022-01-16T04:19:23",
"job_number": "144111",
26 collapsed lines
"customer": {
"name": "Jack",
"phone": "1441",
"second_phone": "1122",
"email": "c@arcsite.com",
"second_email": "s@arcsite.com",
"address": {
"street": "street",
"city": "city",
"county": "county",
"state": "state",
"zip_code": "300433"
}
},
"work_site_address": {
"street": "street",
"city": "city",
"county": "county",
"state": "state",
"zip_code": "300433"
},
"sales_rep": {
"name": "Wang",
"email": "h@arcsite.com",
"phone": "122122-121"
},
"tags": ["tag1", "tag2"],
"archived": false
}
]
ParameterDefaultInDescription
page1queryRequest a specific page
per_page10queryPage size
created_at_beginNonequery(optional) Filter by project creation start date in UTC ISO 8601 format (e.g., 2025-01-16T04:19:23)
created_at_endNonequery(optional) Filter by project creation end date in UTC ISO 8601 format (e.g., 2025-01-16T04:19:23)

Creates a new project.

POST https://api.arcsite.com/v1/projects

Terminal window
curl -X POST 'https://api.arcsite.com/v1/projects' \
-H 'Authorization: Bearer your_api_token_here' \
-H 'Content-Type: application/json' \
-d '{
"name": "hahaa",
"job_number": "144111",
"customer": {
"name": "Jack",
"phone": "1441",
"second_phone": "1122",
"email": "c@arcsite.com",
"second_email": "s@arcsite.com",
"address": {
"street": "street",
"city": "city",
"county": "county",
"state": "state",
"zip_code": "300433"
}
},
"work_site_address": {
"street": "street",
"city": "city",
"county": "county",
"state": "state",
"zip_code": "300433"
},
"sales_rep": {
"name": "Wang",
"email": "h@arcsite.com",
"phone": "122122-121"
},
"tags": ["tag1", "tag2"]
}'
Response
{
"id": "36029621653386360",
"name": "nac",
"created_at": "2022-01-16T03:31:39",
"updated_at": "2022-01-16T03:31:39",
"job_number": "heeloo",
"customer": {
"name": "hello",
"phone": "122112",
"second_phone": "122112",
"email": "dev@arctuition.com",
"second_email": "dev@arctuition.com",
"address": {
"street": "address",
"city": "city",
"county": "county",
"state": "state",
"zip_code": "200544"
}
},
"work_site_address": {
"street": "street",
"city": "city",
"county": "county",
"state": "state",
"zip_code": "300433"
},
"sales_rep": {
"name": "Wang",
"email": "dev@arctuition.com",
"phone": "122112"
},
"tags": ["tag1", "tag2"],
"archived": false
}
ParameterTypeDescription
nameString(required) Name of the project
ownerString(required) Owner of the project
customerCustomer(optional) Customer profile of the project
job_numberString(optional) Job number of the project
work_site_addressAddress(optional) Worksite address of the project
sales_repSalesRep(optional) Sales Representative of the project
tagsList[String](optional) Tags added to this project

ArcSite supports integration with various external platforms. Once project creation is complete, you can use the standard integration solutions we provide for different platforms to integrate your project. After integration is completed, your project will gain additional functionality to support data synchronization and interactions with third-party platforms. For specific details, see the integrations module.

  1. Project name must be unique across the same organization.
  2. Project name cannot contain any of the following characters: : / \.
  3. Project name cannot start with ..
  4. Project name must be less than or equal to 200 characters.
ParameterTypeDescription
nameString(optional) Customer name
phoneString(optional) Customer phone
second_phoneString(optional) Customer secondary phone
emailString(optional) Customer email
second_emailString(optional) Customer secondary email
addressAddress(optional) Customer address
ParameterTypeDescription
streetString(optional) Street name
cityString(optional) City name
countyString(optional) County name
stateString(optional) State name
zip_codeString(optional) Zip code
ParameterTypeDescription
nameString(optional) Customer name
emailString(optional) Customer email
phoneString(optional) Customer phone

Updates an existing project.

PATCH https://api.arcsite.com/v1/projects/<id>

Terminal window
curl -X PATCH 'https://api.arcsite.com/v1/projects/<ID>' \
-H 'Authorization: Bearer your_api_token_here' \
-H 'Content-Type: application/json' \
-d '{
"name": "hahaa",
"job_number": "144111",
"customer": {
"name": "Jack",
"phone": "1441",
"second_phone": "1122",
"email": "c@arcsite.com",
"second_email": "s@arcsite.com",
"address": {
"street": "street",
"city": "city",
"county": "county",
"state": "state",
"zip_code": "300433"
}
},
"work_site_address": {
"street": "street",
"city": "city",
"county": "county",
"state": "state",
"zip_code": "300433"
},
"sales_rep": {
"name": "Wang",
"email": "h@arcsite.com",
"phone": "122122-121"
},
"tags": ["tag1", "tag2"]
}'
ParameterTypeDescription
nameString(required) Name of the project
operatorString(required) Who updates the project
customerCustomer(optional) Customer profile of the project
job_numberString(optional) Job number of the project
work_site_addressAddress(optional) Worksite address of the project
sales_repSalesRep(optional) Sales Representative of the project
tagsList[String](optional) Tags for this project

Returns a project in your organization by project ID.

GET https://api.arcsite.com/v1/projects/<id>

Terminal window
curl "https://api.arcsite.com/v1/projects/<ID>" \
-H "Authorization: Bearer your_api_token_here"
Response
{
"id": 36029621652695040,
"name": "project 4",
"created_at": "2022-01-16T04:19:23",
"updated_at": "2022-01-16T04:19:23",
"job_number": "144111",
"customer": {
"name": "Jack",
"phone": "1441",
"second_phone": "1122",
"email": "c@arcsite.com",
"second_email": "s@arcsite.com",
"address": {
"street": "street",
"city": "city",
"county": "county",
"state": "state",
"zip_code": "300433"
}
},
"work_site_address": {
"street": "street",
"city": "city",
"county": "county",
"state": "state",
"zip_code": "300433"
},
"sales_rep": {
"name": "Wang",
"email": "h@arcsite.com",
"phone": "122122-121"
},
"tags": ["tag1", "tag2"],
"archived": false
}

Searches projects by conditions and returns the list of filtered projects in your organization. Projects are returned in sorted order, with the most recently created project appearing first.

POST https://api.arcsite.com/v1/projects/search

Terminal window
curl -X POST 'https://api.arcsite.com/v1/projects/search' \
-H 'Authorization: Bearer your_api_token_here' \
-H 'Content-Type: application/json' \
-d '{
"project_name": "Updated project name",
"tags": ["Tag 1"]
}'
Response
[
{
"id": 36029621652695040,
"name": "Updated project name",
"created_at": "2022-01-16T04:19:23",
"updated_at": "2022-01-16T04:19:23",
"job_number": "144111",
"customer": {
"name": "Jack",
"phone": "1441",
"second_phone": "1122",
"email": "c@arcsite.com",
"second_email": "s@arcsite.com",
"address": {
"street": "street",
"city": "city",
"county": "county",
"state": "state",
"zip_code": "300433"
}
},
"work_site_address": {
"street": "street",
"city": "city",
"county": "county",
"state": "state",
"zip_code": "300433"
},
"sales_rep": {
"name": "Wang",
"email": "h@arcsite.com",
"phone": "122122-121"
},
"tags": ["Tag 1"],
"archived": false
}
]
ParameterTypeDescription
project_nameString(optional) To filter projects which contain the value
tagsList[String](optional) To filter projects by the tags list

Adds collaborators to a project. Successfully added collaborators are in the success_items field of the response, and failed items are in fail_items. This API is idempotent, so the same collaborator can be added multiple times.

POST https://api.arcsite.com/v1/projects/<id>/add_collaborators

Terminal window
curl -X POST 'https://api.arcsite.com/v1/projects/<ID>/add_collaborators' \
-H 'Authorization: Bearer your_api_token_here' \
-H 'Content-Type: application/json' \
-d '{
"collaborators": [
{ "email": "dev@arctuition.com", "role": "PROJECT_ADMIN" },
{ "email": "haowe12@arctui1tion.com", "role": "PROJECT_ADMIN" }
]
}'
Response
{
"success_items": [
{
"email": "dev@arctuition.com",
"role": "PROJECT_ADMIN"
}
],
"fail_items": [
{
"data": {
"email": "haowe12@arctui1tion.com",
"role": "PROJECT_ADMIN"
},
"message": "haowe12@arctui1tion.com has not been added to your company account yet."
}
]
}
ParameterTypeDescription
collaboratorsList[Collaborator](required) collaborators to add
ParameterTypeDescription
emailstring(required) The username or email of the collaborator
roleRole(required) Project role
  1. PROJECT_ADMIN — Project admins have full access to the project.
  2. PROJECT_COLLABORATOR — Can create, edit, and delete drawings. This role cannot delete the project or manage collaborators.
  3. PROJECT_VIEWER — Project viewers can only view drawings.

Removes collaborators from a project.

POST https://api.arcsite.com/v1/projects/<id>/remove_collaborators

Terminal window
curl -X POST 'https://api.arcsite.com/v1/projects/<ID>/remove_collaborators' \
-H 'Authorization: Bearer your_api_token_here' \
-H 'Content-Type: application/json' \
-d '{
"emails": [
"dev@arctuition.com",
"haowe12@arctui1tion.com"
]
}'
ParameterTypeDescription
emailsList[String](required) emails to remove

Returns the drawings of a project.

GET https://api.arcsite.com/v1/projects/<id>/drawings

Terminal window
curl "https://api.arcsite.com/v1/projects/<ID>/drawings" \
-H "Authorization: Bearer your_api_token_here"
Response
[
{
"id": "36029621653385418",
"name": "drawing 1"
},
{
"id": "36029621653385407",
"name": "drawing 2"
}
]
ParameterDefaultInDescription
page1queryRequest a specific page
per_page10queryPage size

Your uploaded PDF will be split into multiple pages; one ArcSite drawing is created for each page.

POST https://api.arcsite.com/v1/projects/<project_id>/import_pdf

Terminal window
# upload a local file
curl --location 'https://api.arcsite.com/v1/projects/<project_id>/import_pdf' \
-H "Authorization: Bearer your_api_token_here" \
--form 'file=@"/<file_path>/<file_name.pdf>"'
# or pass the file url directly
curl --location 'https://api.arcsite.com/v1/projects/<project_id>/import_pdf' \
-H "Authorization: Bearer your_api_token_here" \
--form 'file_url="https://file_url.pdf"'
Response
{
"drawings": [
{
"id": "36029621653385418"
},
{
"id": "36029621653385407"
}
]
}
ParameterInDescription
fileBodyThe binary PDF file to be uploaded
file_urlBodyThe URL of a publicly accessible PDF file

Archives a project by project ID. The archived project will be hidden from the project list. You can use Unarchive Project to unarchive it.

POST https://api.arcsite.com/v1/projects/<ID>/archive

Terminal window
curl -X POST 'https://api.arcsite.com/v1/projects/<ID>/archive' \
-H 'Authorization: Bearer your_api_token_here' \
-H 'Content-Type: application/json'
Response
{}

Unarchives a project by project ID.

POST https://api.arcsite.com/v1/projects/<ID>/unarchive

Terminal window
curl -X POST 'https://api.arcsite.com/v1/projects/<ID>/unarchive' \
-H 'Authorization: Bearer your_api_token_here' \
-H 'Content-Type: application/json'
Response
{}

Transfers ownership of a project to another user. The new owner must belong to the same organization.

POST https://api.arcsite.com/v1/projects/<ID>/transfer_owner

Terminal window
curl -X POST 'https://api.arcsite.com/v1/projects/<ID>/transfer_owner' \
-H 'Authorization: Bearer your_api_token_here' \
-H 'Content-Type: application/json' \
-d '{
"owner": "newowner@example.com"
}'
Response
{}
ParameterTypeDescription
ownerString(required) Email or full name (first name + last name) of new owner