Delete Bulk Coordination Issues
/rest/v1.0/coordination_issues/bulk_deleteInspect fields and contractA Procore MCP connector in development for projects, RFIs, submittals and commercial records. Explore planned coverage and join the waitlist.
Construction
MCP XYZ is building an independent Procore MCP connector for teams that want an AI assistant to work with authorised construction project records through the Model Context Protocol. Planned coverage includes projects, RFIs, submittals, daily logs and commercial records. Access is waitlist-based while provider approval and live acceptance are pending.
Use the catalogue to check the operations and fields your work needs. If an existing connector is missing a useful action, tell us about it when joining the waitlist. Your software’s permissions and API limits still apply.
Planned access to projects, company information, people and project directories, within the connected account’s authorised permissions.
Inspect documented operationsInspect documented requests for information, submittals, drawing records and daily logs before choosing a project workflow.
Inspect documented operationsExplore documented commercial records, including change events, commitments and prime contracts. Live acceptance is still pending.
Inspect documented operations“Find the open RFIs for this project.”
New access starts with the Procore waitlist. Tell us which assistant you use and the work you want to do. We’ll contact you about relevant access updates; joining does not create an account or guarantee an invitation date.
Procore is in development. Live use requires an authorised developer app, installation in the relevant company, applicable provider approval and live acceptance.
The implemented connection paths support a developer-managed service account or user OAuth. Acceptance must confirm the account, region, permissions and intended agent use. The detailed catalogue tracks documented coverage; these workflows have not passed live business testing.
Production use needs the applicable Procore app and use-case approval. Procore’s Agentic APIs programme is a separate approved pilot. Ordinary REST credentials do not establish access to that pilot or approval for every agent or bulk-data use.
External presigned transfers, large uploads, some environments and provider-side token revocation have outstanding limits. A documented file operation does not mean a complete file workflow has been verified.
Procore API usage guidelines
Procore Agentic APIs guidance
Documented coverage
3,294 documented business operations across retained API versions. Open a contract to inspect its parameters, fields, sources and unresolved behaviour. No provider request is made here.
3,294 operations match. Showing 2961–2980.
/rest/v1.0/coordination_issues/bulk_deleteInspect fields and contract/rest/v1.0/coordination_issues/{coordination_issue_id}/assignmentsInspect fields and contract/rest/v1.0/coordination_issues/{coordination_issue_id}/procore_item_associationsInspect fields and contract/rest/v1.0/coordination_issues/listInspect fields and contract/rest/v1.0/coordination_issues/recycle_binInspect fields and contract/rest/v1.0/coordination_issuesInspect fields and contract/rest/v1.0/cost_codes/copy_from_standard_listInspect fields and contract/rest/v1.0/cost_codes/copy_subset_from_standard_listInspect fields and contract/rest/v1.0/cost_codesInspect fields and contract/rest/v1.0/custom_field_definitions/{custom_field_definition_id}/custom_field_lov_entries/bulk_createInspect fields and contract/rest/v1.0/departmentsInspect fields and contract/rest/v1.0/document_markup_downloadable_pdfs/find_or_createInspect fields and contract/rest/v1.1/drawing_areas/{drawing_area_id}/drawingsInspect fields and contract/rest/v1.0/electronic_signaturesInspect fields and contract/rest/v1.0/file_versionsInspect fields and contract/rest/v1.0/filesInspect fields and contract/rest/v1.0/financials/markupsInspect fields and contract/rest/v1.0/foldersInspect fields and contract/rest/v1.0/image_categoriesInspect fields and contract/rest/v1.0/imagesInspect fields and contractDocumented contract, live behaviour unverified
procore_post_images_v1_0Read the provider documentation
| Parameter | Required | Provider description |
|---|---|---|
project_id | Yes | Unique identifier for the project. |
The exact retained JSON includes schemas, nested fields, notes, source evidence and unresolved questions. It is a documented contract, not a live response.
{
"id": "post_images_v1_0",
"name": "procore_post_images_v1_0",
"resourceId": "images",
"description": "Create image",
"method": "POST",
"path": "/rest/v1.0/images",
"version": "1.0",
"documentationUrl": "https://developers.procore.com/reference/rest/images?version=1.0",
"readOnly": false,
"destructive": true,
"idempotent": false,
"deprecated": false,
"beta": false,
"canonical": true,
"pathParameters": [],
"queryParameters": [
{
"name": "project_id",
"in": "query",
"required": true,
"description": "Unique identifier for the project.",
"schema": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991
},
{
"type": "string",
"pattern": "^[0-9]+$"
}
],
"x-mcp-original-type": "integer"
}
}
],
"requestBodySchema": {
"anyOf": [
{
"title": "Body",
"type": "object",
"required": [
"image"
],
"properties": {
"upload_uuid": {
"type": "string",
"description": "UUID referencing a previously completed Upload. This is the recommended approach for image uploads. See Company Uploads or Project Uploads for instructions on how use uploads. You should not use both data and uuid fields in the same request. Mutually exclusive with source_image_id."
},
"source_image_id": {
"anyOf": [
{
"type": "integer",
"description": "ID of an existing Image in the same project to copy. Creates a new independent Image with its own file storage. Mutually exclusive with upload_uuid and data. When provided, image_name is not required. Takes precedence over upload_uuid and data if multiple are supplied.",
"maximum": 9007199254740991
},
{
"type": "string",
"pattern": "^[0-9]+$"
}
],
"description": "ID of an existing Image in the same project to copy. Creates a new independent Image with its own file storage. Mutually exclusive with upload_uuid and data. When provided, image_name is not required. Takes precedence over upload_uuid and data if multiple are supplied.",
"x-mcp-original-type": "integer"
},
"image_name": {
"type": "string",
"description": "The name of the image file to be uploaded. Required when using an upload_uuid to upload the image. Not required when using source_image_id."
},
"image": {
"title": "Image",
"type": "object",
"description": "At least one attribute is required even when an 'upload_uuid' or 'source_image_id' key is provided. If neither is provided, then the 'data' key must be provided",
"properties": {
"private": {
"type": "boolean",
"description": "The Private status of the Image. Defaults to a project configuration."
},
"provider_type": {
"type": "string",
"description": "Provider type. Currently supports only `MarkupLayer`, and should only be used when adding an Image to markup."
},
"provider_id": {
"anyOf": [
{
"type": "integer",
"description": "Provider ID. Currently supports only MarkupLayer IDs, and should only be used when adding an Image to markup.",
"maximum": 9007199254740991
},
{
"type": "string",
"pattern": "^[0-9]+$"
}
],
"description": "Provider ID. Currently supports only MarkupLayer IDs, and should only be used when adding an Image to markup.",
"x-mcp-original-type": "integer"
},
"starred": {
"type": "boolean",
"description": "The Starred status of the Image."
},
"source": {
"type": "string",
"description": "Image source"
},
"description": {
"type": "string",
"description": "Image description"
},
"image_category_id": {
"anyOf": [
{
"type": "integer",
"description": "Image Category ID",
"maximum": 9007199254740991
},
{
"type": "string",
"pattern": "^[0-9]+$"
}
],
"description": "Image Category ID",
"x-mcp-original-type": "integer"
},
"location_id": {
"anyOf": [
{
"type": "integer",
"description": "If you want to use an existing location and you have the ID of that existing location use this. `location_id` takes precedence over `mt_location`",
"maximum": 9007199254740991
},
{
"type": "string",
"pattern": "^[0-9]+$"
}
],
"description": "If you want to use an existing location and you have the ID of that existing location use this. `location_id` takes precedence over `mt_location`",
"x-mcp-original-type": "integer"
},
"daily_log_segment_id": {
"anyOf": [
{
"type": "integer",
"description": "Daily Log Segment ID",
"maximum": 9007199254740991
},
{
"type": "string",
"pattern": "^[0-9]+$"
},
{
"type": "null"
}
],
"description": "Daily Log Segment ID",
"x-mcp-original-type": "integer"
},
"mt_location": {
"type": "array",
"description": "Use this for creating a new multi-tier or single-tier Location. This will be ignored if `location_id` is provided.",
"items": {
"type": "string"
}
},
"trade_ids": {
"type": "array",
"description": "An array of IDs of the Trades of the Image",
"items": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991
},
{
"type": "string",
"pattern": "^[0-9]+$"
}
],
"x-mcp-original-type": "integer"
}
},
"log_date": {
"type": "string"
}
}
}
}
},
{
"title": "Body",
"type": "object",
"required": [
"image"
],
"properties": {
"upload_uuid": {
"type": "string",
"description": "UUID referencing a previously completed Upload. This is the recommended approach for image uploads. See Company Uploads or Project Uploads for instructions on how use uploads. You should not use both data and uuid fields in the same request. Mutually exclusive with source_image_id."
},
"source_image_id": {
"anyOf": [
{
"type": "integer",
"description": "ID of an existing Image in the same project to copy. Creates a new independent Image with its own file storage. Mutually exclusive with upload_uuid and data. When provided, image_name is not required. Takes precedence over upload_uuid and data if multiple are supplied.",
"maximum": 9007199254740991
},
{
"type": "string",
"pattern": "^[0-9]+$"
}
],
"description": "ID of an existing Image in the same project to copy. Creates a new independent Image with its own file storage. Mutually exclusive with upload_uuid and data. When provided, image_name is not required. Takes precedence over upload_uuid and data if multiple are supplied.",
"x-mcp-original-type": "integer"
},
"image_name": {
"type": "string",
"description": "The name of the image file to be uploaded. Required when using an upload_uuid to upload the image. Not required when using source_image_id."
},
"image": {
"title": "Image",
"type": "object",
"description": "At least one attribute is required even when an 'upload_uuid' or 'source_image_id' key is provided. If neither is provided, then the 'data' key must be provided",
"properties": {
"private": {
"type": "boolean",
"description": "The Private status of the Image. Defaults to a project configuration."
},
"provider_type": {
"type": "string",
"description": "Provider type. Currently supports only `MarkupLayer`, and should only be used when adding an Image to markup."
},
"provider_id": {
"anyOf": [
{
"type": "integer",
"description": "Provider ID. Currently supports only MarkupLayer IDs, and should only be used when adding an Image to markup.",
"maximum": 9007199254740991
},
{
"type": "string",
"pattern": "^[0-9]+$"
}
],
"description": "Provider ID. Currently supports only MarkupLayer IDs, and should only be used when adding an Image to markup.",
"x-mcp-original-type": "integer"
},
"starred": {
"type": "boolean",
"description": "The Starred status of the Image."
},
"data": {
"type": "object",
"required": [
"filename",
"dataBase64"
],
"additionalProperties": false,
"properties": {
"filename": {
"type": "string",
"minLength": 1
},
"contentType": {
"type": "string"
},
"dataBase64": {
"type": "string",
"description": "Base64-encoded file bytes. The platform input-size limit applies."
}
},
"description": "[DEPRECATED] File to use as image data. Please use upload_uuid instead. Note that it's only possible to post a\nfile using a multipart/form-data body (see RFC 2388). Most HTTP\nlibraries will do the right thing when you pass in an open file or\nIO stream. Alternatively you can use an upload_uuid (see Company\nUploads or Project Uploads). You should not use both file and\nupload_uuid fields in the same request."
},
"source": {
"type": "string",
"description": "Image source"
},
"description": {
"type": "string",
"description": "Image description"
},
"image_category_id": {
"anyOf": [
{
"type": "integer",
"description": "Image Category ID",
"maximum": 9007199254740991
},
{
"type": "string",
"pattern": "^[0-9]+$"
}
],
"description": "Image Category ID",
"x-mcp-original-type": "integer"
},
"location_id": {
"anyOf": [
{
"type": "integer",
"description": "If you want to use an existing location and you have the ID of that existing location use this. `location_id` takes precedence over `mt_location`",
"maximum": 9007199254740991
},
{
"type": "string",
"pattern": "^[0-9]+$"
}
],
"description": "If you want to use an existing location and you have the ID of that existing location use this. `location_id` takes precedence over `mt_location`",
"x-mcp-original-type": "integer"
},
"daily_log_segment_id": {
"anyOf": [
{
"type": "integer",
"description": "Daily Log Segment ID",
"maximum": 9007199254740991
},
{
"type": "string",
"pattern": "^[0-9]+$"
},
{
"type": "null"
}
],
"description": "Daily Log Segment ID",
"x-mcp-original-type": "integer"
},
"mt_location": {
"type": "array",
"description": "Use this for creating a new multi-tier or single-tier Location. This will be ignored if `location_id` is provided.",
"items": {
"type": "string"
}
},
"trade_ids": {
"type": "array",
"description": "An array of IDs of the Trades of the Image",
"items": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991
},
{
"type": "string",
"pattern": "^[0-9]+$"
}
],
"x-mcp-original-type": "integer"
}
},
"log_date": {
"type": "string"
}
}
}
}
}
]
},
"requestBodyRequired": true,
"inputSchema": {
"type": "object",
"properties": {
"query": {
"type": "object",
"properties": {
"project_id": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991
},
{
"type": "string",
"pattern": "^[0-9]+$"
}
],
"description": "Unique identifier for the project.",
"x-mcp-original-type": "integer"
}
},
"additionalProperties": {
"type": [
"string",
"number",
"boolean",
"null"
]
},
"required": [
"project_id"
]
},
"contentType": {
"type": "string",
"enum": [
"application/json",
"multipart/form-data"
],
"default": "application/json",
"description": "Request media type. Defaults to the documented JSON type when available."
},
"body": {
"anyOf": [
{
"title": "Body",
"type": "object",
"required": [
"image"
],
"properties": {
"upload_uuid": {
"type": "string",
"description": "UUID referencing a previously completed Upload. This is the recommended approach for image uploads. See Company Uploads or Project Uploads for instructions on how use uploads. You should not use both data and uuid fields in the same request. Mutually exclusive with source_image_id."
},
"source_image_id": {
"anyOf": [
{
"type": "integer",
"description": "ID of an existing Image in the same project to copy. Creates a new independent Image with its own file storage. Mutually exclusive with upload_uuid and data. When provided, image_name is not required. Takes precedence over upload_uuid and data if multiple are supplied.",
"maximum": 9007199254740991
},
{
"type": "string",
"pattern": "^[0-9]+$"
}
],
"description": "ID of an existing Image in the same project to copy. Creates a new independent Image with its own file storage. Mutually exclusive with upload_uuid and data. When provided, image_name is not required. Takes precedence over upload_uuid and data if multiple are supplied.",
"x-mcp-original-type": "integer"
},
"image_name": {
"type": "string",
"description": "The name of the image file to be uploaded. Required when using an upload_uuid to upload the image. Not required when using source_image_id."
},
"image": {
"title": "Image",
"type": "object",
"description": "At least one attribute is required even when an 'upload_uuid' or 'source_image_id' key is provided. If neither is provided, then the 'data' key must be provided",
"properties": {
"private": {
"type": "boolean",
"description": "The Private status of the Image. Defaults to a project configuration."
},
"provider_type": {
"type": "string",
"description": "Provider type. Currently supports only `MarkupLayer`, and should only be used when adding an Image to markup."
},
"provider_id": {
"anyOf": [
{
"type": "integer",
"description": "Provider ID. Currently supports only MarkupLayer IDs, and should only be used when adding an Image to markup.",
"maximum": 9007199254740991
},
{
"type": "string",
"pattern": "^[0-9]+$"
}
],
"description": "Provider ID. Currently supports only MarkupLayer IDs, and should only be used when adding an Image to markup.",
"x-mcp-original-type": "integer"
},
"starred": {
"type": "boolean",
"description": "The Starred status of the Image."
},
"source": {
"type": "string",
"description": "Image source"
},
"description": {
"type": "string",
"description": "Image description"
},
"image_category_id": {
"anyOf": [
{
"type": "integer",
"description": "Image Category ID",
"maximum": 9007199254740991
},
{
"type": "string",
"pattern": "^[0-9]+$"
}
],
"description": "Image Category ID",
"x-mcp-original-type": "integer"
},
"location_id": {
"anyOf": [
{
"type": "integer",
"description": "If you want to use an existing location and you have the ID of that existing location use this. `location_id` takes precedence over `mt_location`",
"maximum": 9007199254740991
},
{
"type": "string",
"pattern": "^[0-9]+$"
}
],
"description": "If you want to use an existing location and you have the ID of that existing location use this. `location_id` takes precedence over `mt_location`",
"x-mcp-original-type": "integer"
},
"daily_log_segment_id": {
"anyOf": [
{
"type": "integer",
"description": "Daily Log Segment ID",
"maximum": 9007199254740991
},
{
"type": "string",
"pattern": "^[0-9]+$"
},
{
"type": "null"
}
],
"description": "Daily Log Segment ID",
"x-mcp-original-type": "integer"
},
"mt_location": {
"type": "array",
"description": "Use this for creating a new multi-tier or single-tier Location. This will be ignored if `location_id` is provided.",
"items": {
"type": "string"
}
},
"trade_ids": {
"type": "array",
"description": "An array of IDs of the Trades of the Image",
"items": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991
},
{
"type": "string",
"pattern": "^[0-9]+$"
}
],
"x-mcp-original-type": "integer"
}
},
"log_date": {
"type": "string"
}
}
}
}
},
{
"title": "Body",
"type": "object",
"required": [
"image"
],
"properties": {
"upload_uuid": {
"type": "string",
"description": "UUID referencing a previously completed Upload. This is the recommended approach for image uploads. See Company Uploads or Project Uploads for instructions on how use uploads. You should not use both data and uuid fields in the same request. Mutually exclusive with source_image_id."
},
"source_image_id": {
"anyOf": [
{
"type": "integer",
"description": "ID of an existing Image in the same project to copy. Creates a new independent Image with its own file storage. Mutually exclusive with upload_uuid and data. When provided, image_name is not required. Takes precedence over upload_uuid and data if multiple are supplied.",
"maximum": 9007199254740991
},
{
"type": "string",
"pattern": "^[0-9]+$"
}
],
"description": "ID of an existing Image in the same project to copy. Creates a new independent Image with its own file storage. Mutually exclusive with upload_uuid and data. When provided, image_name is not required. Takes precedence over upload_uuid and data if multiple are supplied.",
"x-mcp-original-type": "integer"
},
"image_name": {
"type": "string",
"description": "The name of the image file to be uploaded. Required when using an upload_uuid to upload the image. Not required when using source_image_id."
},
"image": {
"title": "Image",
"type": "object",
"description": "At least one attribute is required even when an 'upload_uuid' or 'source_image_id' key is provided. If neither is provided, then the 'data' key must be provided",
"properties": {
"private": {
"type": "boolean",
"description": "The Private status of the Image. Defaults to a project configuration."
},
"provider_type": {
"type": "string",
"description": "Provider type. Currently supports only `MarkupLayer`, and should only be used when adding an Image to markup."
},
"provider_id": {
"anyOf": [
{
"type": "integer",
"description": "Provider ID. Currently supports only MarkupLayer IDs, and should only be used when adding an Image to markup.",
"maximum": 9007199254740991
},
{
"type": "string",
"pattern": "^[0-9]+$"
}
],
"description": "Provider ID. Currently supports only MarkupLayer IDs, and should only be used when adding an Image to markup.",
"x-mcp-original-type": "integer"
},
"starred": {
"type": "boolean",
"description": "The Starred status of the Image."
},
"data": {
"type": "object",
"required": [
"filename",
"dataBase64"
],
"additionalProperties": false,
"properties": {
"filename": {
"type": "string",
"minLength": 1
},
"contentType": {
"type": "string"
},
"dataBase64": {
"type": "string",
"description": "Base64-encoded file bytes. The platform input-size limit applies."
}
},
"description": "[DEPRECATED] File to use as image data. Please use upload_uuid instead. Note that it's only possible to post a\nfile using a multipart/form-data body (see RFC 2388). Most HTTP\nlibraries will do the right thing when you pass in an open file or\nIO stream. Alternatively you can use an upload_uuid (see Company\nUploads or Project Uploads). You should not use both file and\nupload_uuid fields in the same request."
},
"source": {
"type": "string",
"description": "Image source"
},
"description": {
"type": "string",
"description": "Image description"
},
"image_category_id": {
"anyOf": [
{
"type": "integer",
"description": "Image Category ID",
"maximum": 9007199254740991
},
{
"type": "string",
"pattern": "^[0-9]+$"
}
],
"description": "Image Category ID",
"x-mcp-original-type": "integer"
},
"location_id": {
"anyOf": [
{
"type": "integer",
"description": "If you want to use an existing location and you have the ID of that existing location use this. `location_id` takes precedence over `mt_location`",
"maximum": 9007199254740991
},
{
"type": "string",
"pattern": "^[0-9]+$"
}
],
"description": "If you want to use an existing location and you have the ID of that existing location use this. `location_id` takes precedence over `mt_location`",
"x-mcp-original-type": "integer"
},
"daily_log_segment_id": {
"anyOf": [
{
"type": "integer",
"description": "Daily Log Segment ID",
"maximum": 9007199254740991
},
{
"type": "string",
"pattern": "^[0-9]+$"
},
{
"type": "null"
}
],
"description": "Daily Log Segment ID",
"x-mcp-original-type": "integer"
},
"mt_location": {
"type": "array",
"description": "Use this for creating a new multi-tier or single-tier Location. This will be ignored if `location_id` is provided.",
"items": {
"type": "string"
}
},
"trade_ids": {
"type": "array",
"description": "An array of IDs of the Trades of the Image",
"items": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991
},
{
"type": "string",
"pattern": "^[0-9]+$"
}
],
"x-mcp-original-type": "integer"
}
},
"log_date": {
"type": "string"
}
}
}
}
}
]
}
},
"required": [
"query",
"body"
],
"additionalProperties": false
},
"pagination": null,
"notes": [
"Upload and add a new Image to a Project's Photo Album (Image Category)."
],
"unresolved": [
"No authorised Procore provider request has verified this operation."
],
"request": {
"parameters": [
{
"name": "Procore-Company-Id",
"in": "header",
"description": "Unique company identifier associated with the Procore User Account.",
"required": true,
"schema": {
"type": "integer"
}
},
{
"name": "project_id",
"in": "query",
"required": true,
"description": "Unique identifier for the project.",
"schema": {
"type": "integer"
}
}
],
"content": {
"application/json": {
"schema": {
"title": "Body",
"type": "object",
"required": [
"image"
],
"properties": {
"upload_uuid": {
"type": "string",
"description": "UUID referencing a previously completed Upload. This is the recommended approach for image uploads. See Company Uploads or Project Uploads for instructions on how use uploads. You should not use both data and uuid fields in the same request. Mutually exclusive with source_image_id."
},
"source_image_id": {
"anyOf": [
{
"type": "integer",
"description": "ID of an existing Image in the same project to copy. Creates a new independent Image with its own file storage. Mutually exclusive with upload_uuid and data. When provided, image_name is not required. Takes precedence over upload_uuid and data if multiple are supplied.",
"maximum": 9007199254740991
},
{
"type": "string",
"pattern": "^[0-9]+$"
}
],
"description": "ID of an existing Image in the same project to copy. Creates a new independent Image with its own file storage. Mutually exclusive with upload_uuid and data. When provided, image_name is not required. Takes precedence over upload_uuid and data if multiple are supplied.",
"x-mcp-original-type": "integer"
},
"image_name": {
"type": "string",
"description": "The name of the image file to be uploaded. Required when using an upload_uuid to upload the image. Not required when using source_image_id."
},
"image": {
"title": "Image",
"type": "object",
"description": "At least one attribute is required even when an 'upload_uuid' or 'source_image_id' key is provided. If neither is provided, then the 'data' key must be provided",
"properties": {
"private": {
"type": "boolean",
"description": "The Private status of the Image. Defaults to a project configuration."
},
"provider_type": {
"type": "string",
"description": "Provider type. Currently supports only `MarkupLayer`, and should only be used when adding an Image to markup."
},
"provider_id": {
"anyOf": [
{
"type": "integer",
"description": "Provider ID. Currently supports only MarkupLayer IDs, and should only be used when adding an Image to markup.",
"maximum": 9007199254740991
},
{
"type": "string",
"pattern": "^[0-9]+$"
}
],
"description": "Provider ID. Currently supports only MarkupLayer IDs, and should only be used when adding an Image to markup.",
"x-mcp-original-type": "integer"
},
"starred": {
"type": "boolean",
"description": "The Starred status of the Image."
},
"source": {
"type": "string",
"description": "Image source"
},
"description": {
"type": "string",
"description": "Image description"
},
"image_category_id": {
"anyOf": [
{
"type": "integer",
"description": "Image Category ID",
"maximum": 9007199254740991
},
{
"type": "string",
"pattern": "^[0-9]+$"
}
],
"description": "Image Category ID",
"x-mcp-original-type": "integer"
},
"location_id": {
"anyOf": [
{
"type": "integer",
"description": "If you want to use an existing location and you have the ID of that existing location use this. `location_id` takes precedence over `mt_location`",
"maximum": 9007199254740991
},
{
"type": "string",
"pattern": "^[0-9]+$"
}
],
"description": "If you want to use an existing location and you have the ID of that existing location use this. `location_id` takes precedence over `mt_location`",
"x-mcp-original-type": "integer"
},
"daily_log_segment_id": {
"anyOf": [
{
"type": "integer",
"description": "Daily Log Segment ID",
"maximum": 9007199254740991
},
{
"type": "string",
"pattern": "^[0-9]+$"
},
{
"type": "null"
}
],
"description": "Daily Log Segment ID",
"x-mcp-original-type": "integer"
},
"mt_location": {
"type": "array",
"description": "Use this for creating a new multi-tier or single-tier Location. This will be ignored if `location_id` is provided.",
"items": {
"type": "string"
}
},
"trade_ids": {
"type": "array",
"description": "An array of IDs of the Trades of the Image",
"items": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991
},
{
"type": "string",
"pattern": "^[0-9]+$"
}
],
"x-mcp-original-type": "integer"
}
},
"log_date": {
"type": "string"
}
}
}
}
}
},
"multipart/form-data": {
"schema": {
"title": "Body",
"type": "object",
"required": [
"image"
],
"properties": {
"upload_uuid": {
"type": "string",
"description": "UUID referencing a previously completed Upload. This is the recommended approach for image uploads. See Company Uploads or Project Uploads for instructions on how use uploads. You should not use both data and uuid fields in the same request. Mutually exclusive with source_image_id."
},
"source_image_id": {
"anyOf": [
{
"type": "integer",
"description": "ID of an existing Image in the same project to copy. Creates a new independent Image with its own file storage. Mutually exclusive with upload_uuid and data. When provided, image_name is not required. Takes precedence over upload_uuid and data if multiple are supplied.",
"maximum": 9007199254740991
},
{
"type": "string",
"pattern": "^[0-9]+$"
}
],
"description": "ID of an existing Image in the same project to copy. Creates a new independent Image with its own file storage. Mutually exclusive with upload_uuid and data. When provided, image_name is not required. Takes precedence over upload_uuid and data if multiple are supplied.",
"x-mcp-original-type": "integer"
},
"image_name": {
"type": "string",
"description": "The name of the image file to be uploaded. Required when using an upload_uuid to upload the image. Not required when using source_image_id."
},
"image": {
"title": "Image",
"type": "object",
"description": "At least one attribute is required even when an 'upload_uuid' or 'source_image_id' key is provided. If neither is provided, then the 'data' key must be provided",
"properties": {
"private": {
"type": "boolean",
"description": "The Private status of the Image. Defaults to a project configuration."
},
"provider_type": {
"type": "string",
"description": "Provider type. Currently supports only `MarkupLayer`, and should only be used when adding an Image to markup."
},
"provider_id": {
"anyOf": [
{
"type": "integer",
"description": "Provider ID. Currently supports only MarkupLayer IDs, and should only be used when adding an Image to markup.",
"maximum": 9007199254740991
},
{
"type": "string",
"pattern": "^[0-9]+$"
}
],
"description": "Provider ID. Currently supports only MarkupLayer IDs, and should only be used when adding an Image to markup.",
"x-mcp-original-type": "integer"
},
"starred": {
"type": "boolean",
"description": "The Starred status of the Image."
},
"data": {
"type": "object",
"required": [
"filename",
"dataBase64"
],
"additionalProperties": false,
"properties": {
"filename": {
"type": "string",
"minLength": 1
},
"contentType": {
"type": "string"
},
"dataBase64": {
"type": "string",
"description": "Base64-encoded file bytes. The platform input-size limit applies."
}
},
"description": "[DEPRECATED] File to use as image data. Please use upload_uuid instead. Note that it's only possible to post a\nfile using a multipart/form-data body (see RFC 2388). Most HTTP\nlibraries will do the right thing when you pass in an open file or\nIO stream. Alternatively you can use an upload_uuid (see Company\nUploads or Project Uploads). You should not use both file and\nupload_uuid fields in the same request."
},
"source": {
"type": "string",
"description": "Image source"
},
"description": {
"type": "string",
"description": "Image description"
},
"image_category_id": {
"anyOf": [
{
"type": "integer",
"description": "Image Category ID",
"maximum": 9007199254740991
},
{
"type": "string",
"pattern": "^[0-9]+$"
}
],
"description": "Image Category ID",
"x-mcp-original-type": "integer"
},
"location_id": {
"anyOf": [
{
"type": "integer",
"description": "If you want to use an existing location and you have the ID of that existing location use this. `location_id` takes precedence over `mt_location`",
"maximum": 9007199254740991
},
{
"type": "string",
"pattern": "^[0-9]+$"
}
],
"description": "If you want to use an existing location and you have the ID of that existing location use this. `location_id` takes precedence over `mt_location`",
"x-mcp-original-type": "integer"
},
"daily_log_segment_id": {
"anyOf": [
{
"type": "integer",
"description": "Daily Log Segment ID",
"maximum": 9007199254740991
},
{
"type": "string",
"pattern": "^[0-9]+$"
},
{
"type": "null"
}
],
"description": "Daily Log Segment ID",
"x-mcp-original-type": "integer"
},
"mt_location": {
"type": "array",
"description": "Use this for creating a new multi-tier or single-tier Location. This will be ignored if `location_id` is provided.",
"items": {
"type": "string"
}
},
"trade_ids": {
"type": "array",
"description": "An array of IDs of the Trades of the Image",
"items": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991
},
{
"type": "string",
"pattern": "^[0-9]+$"
}
],
"x-mcp-original-type": "integer"
}
},
"log_date": {
"type": "string"
}
}
}
}
}
}
},
"defaultContentType": "application/json"
},
"responseContentTypes": [
"application/json"
],
"provenance": {
"sourceUrl": "https://developers.procore.com/api/v1/resource_groups/resource/images?version=rest_v1.0",
"sourceSha256": "84469264df7544710210e68a3f16fe93fab8bec3d9fe4f9b275c3fc2b02914e3",
"snapshot": "snapshots/oas/images--rest_v1.0.json.gz"
},
"sourceCorrections": []
}The Unleashed waitlist is open. Inspect its documented coverage and account requirements.
Explore Unleashed