CompanyCam integration
CompanyCam is the photo and project app of contractors. Through its Public API (v1) an agent can create and update projects (jobsites) and their customers, contacts and custom fields, list and add photos by URL, tag and caption them, read videos, comment, assign users, manage labels, boards, project groups, documents, pages, advanced and classic checklists, tasks, proposals, invoices (beta) and the price book, read time entries, and manage webhooks. Login session routes, token checks, MCP call logs and the presigned binary photo upload are not exposed. Authentication is OAuth 2.0 (authorization code, granular resource:action scopes) or a Personal Access Token sent as a Bearer token.
Say what should happen.
The workflow builds itself.
What you can do with CompanyCam
Each of these is one operation on one endpoint, available both as a workflow step and as a tool an AI agent can call on its own. Nothing bundles several operations into one action, so what a run did stays readable afterwards.
Most endpoints run on the free plan. A few, mainly the ones that publish on your behalf, need a paid plan.
Project, 8 operations
add_project_to_groupAdd project to groupPOSTAdds a project to a project group; adding one already in it succeeds. Returns the project.archive_projectArchive projectPATCHArchives a project: hides it from the active list but keeps it intact. Reverse with unarchive_project; this is not deletion.create_projectCreate projectPOSTCreates a project (a job or site) from a name, with an optional jobsite address, coordinates, geofence, primary contact and customer. Returns the project.delete_projectDelete projectDELETEDeletes a project. A deleted project can be brought back with undelete_project.get_projectGet projectGETReturns one project by id: name, status, archived and public flags, jobsite address, coordinates, geofence, primary contact, and photo and document counts.list_board_phase_projectsList board phase projectsGETLists the projects currently in one stage (phase) of a kanban board, with cursor pagination. Use it when get_board does not return every project of a stage.list_project_group_projectsList project group projectsGETLists the projects in a project group, newest first. Restricted users only see projects they are assigned to.list_projectsList projectsGETLists the company's projects (jobs or sites), newest first, with cursor pagination. include labels returns each project's labels; search_projects finds one by name or address.
Photo, 6 operations
add_photo_descriptionAdd photo descriptionPOSTSets a photo's description (its single caption), replacing any existing one. Not a discussion comment: use comment_on_photo for that.create_project_photoCreate project photoPOSTAdds a photo to a project from a publicly reachable image URL (uri), with optional capture time, coordinates, tags and description.delete_photoDelete photoDELETEDeletes a photo.get_photoGet photoGETReturns one photo by id with its URI variants and metadata. include annotations adds the text and sticker keys drawn on the photo.list_photosList photosGETLists photos across the company, newest first. Every filter is optional and they combine with AND. Use list_project_photos for one project.list_project_photosList project photosGETLists the photos of one project, newest first, with URI variants, capture time, creator, tags and coordinates. Every filter is optional.
Tag, 6 operations
create_tagCreate tagPOSTCreates a photo tag on the company; if one with the same display value exists, that one is returned.delete_tagDelete tagDELETEDeletes a photo tag from the company.get_tagGet tagGETReturns one tag or label by id: display value, tag_type (project label or photo tag) and timestamps.list_photo_tagsList photo tagsGETLists the tags applied to one photo, alphabetical. Use tag_photo to add tags.list_project_photo_tagsList project photo tagsGETLists the tags used on the photos of one project.list_tagsList tagsGETLists the company's photo tags, alphabetical. Project labels are in list_labels. Filter photos by tag with tag_ids[] on list_photos.
Conditional checklist, 5 operations
create_conditional_checklist_from_templateCreate conditional checklist from templatePOSTCreates an advanced checklist on a project from a company template (checklist_template_id from list_conditional_checklist_templates). Its items fill in asynchronously (is_populating stays true until done).create_project_checklistCreate project checklistPOSTCreates an empty one-off advanced checklist (no template) on a project. Only works when one-off checklists are enabled for the account. Calling it twice creates two.get_project_checklistGet project checklistGETReturns one advanced checklist of a project with its field tree, per-field completion, progress counts and attached media. view controls how much is returned.list_checklistsList checklistsGETLists advanced checklists across the company, newest first, as summaries with progress counts and no field tree. updated_since returns only checklists worked on since that time; read one with get_project_checklist.list_project_checklistsList project checklistsGETLists the advanced checklists of a project, newest first, with completion progress and no field tree: use get_project_checklist for the fields.
Customer, 5 operations
create_customerCreate customerPOST[beta] Creates a customer for the company, optionally with an address and contacts in the same call. Returns the customer with its contacts.delete_customerDelete customerDELETEDeletes a customer of the company.get_customerGet customerGET[beta] Returns one customer by id, including its address and notes.get_project_customerGet project customerGETReturns the customer linked to a project with address, notes and contacts. data is null when the project has no customer.list_customersList customersGET[beta] Lists the company's customers, newest first, with contact info, address, notes and contacts. q searches name, email, phone, street address, city and state.
Proposal, 5 operations
create_proposalCreate proposalPOST[beta] Creates an unaccepted proposal on a project; contact fields left out are filled from the project. It does not send it. Add lines with create_proposal_line_item.delete_proposalDelete proposalDELETE[beta] Deletes a proposal.duplicate_proposalDuplicate proposalPOST[beta] Creates a copy of a proposal and returns the new proposal.get_proposalGet proposalGET[beta] Returns one proposal by id with its line items, totals, contact details and tax settings.list_proposalsList proposalsGET[beta] Lists the company's proposals, newest first; project_id narrows to one project, updated_since returns those updated since that time.
User, 5 operations
create_userCreate userPOSTCreates a user on the company; the user counts toward the company's paid seats. Role is standard or restricted. Needs permission to manage users.delete_userDelete userDELETEDeletes a user of the company.get_current_userGet current userGETReturns the authenticated user (the token's owner), with company_id naming the company the calls act on.get_userGet userGETReturns one user of the company by id: name, email, phone, status, role and profile images.list_usersList usersGETLists the company's users, including deactivated ones (status active or deleted), by first then last name. Users below the standard role see only themselves.
Comment, 4 operations
comment_on_photoComment on photoPOSTPosts a discussion comment on a photo as the authenticated user (mentions notify people). To set the photo's own caption use add_photo_description.comment_on_projectComment on projectPOSTPosts a discussion comment on a project as the authenticated user (mentions notify people).list_photo_commentsList photo commentsGETLists the comments on a photo, newest first, with cursor pagination.list_project_commentsList project commentsGETLists the comments on a project, newest first, with cursor pagination.
Conditional checklist template, 4 operations
create_conditional_checklist_templateCreate conditional checklist templatePOSTCreates an advanced checklist template with a title and description; it starts with no fields. Add fields with update_conditional_checklist_template.delete_conditional_checklist_templateDelete conditional checklist templateDELETEDeletes an advanced checklist template.get_conditional_checklist_templateGet conditional checklist templateGETReturns one advanced checklist template by id with its fields.list_conditional_checklist_templatesList conditional checklist templatesGETLists the company's advanced checklist templates, to find a checklist_template_id for create_conditional_checklist_from_template.
Document, 4 operations
create_project_documentCreate project documentPOSTAttaches a document to a project from its file name and Base64-encoded content, optionally in a folder and restricted (access_limited). Processing is asynchronous.get_documentGet documentGETReturns one uploaded document by id: name, content type, size, creator, project and folder ids, access_limited, and a download URL.list_documentsList documentsGETLists uploaded documents (PDFs, files) across the company, newest first, each with access_limited (Restricted). Use list_project_documents for one project and list_pages for notes and reports.list_project_documentsList project documentsGETLists the uploaded documents (PDFs, files) of one project, newest first, with cursor pagination.
Document folder, 4 operations
create_document_folderCreate document folderPOSTCreates a document folder on a project to group its documents and pages. Folders do not nest. Returns the folder.delete_document_folderDelete document folderDELETEDeletes a document folder of a project.get_document_folderGet document folderGETReturns one document folder by id. Each document or page names its folder in folder_id.list_document_foldersList document foldersGETLists document folders across the company, most recently updated first, optionally for one project_id. Folders group a project's documents and pages.
Group, 4 operations
create_user_groupCreate user groupPOSTCreates a group of users for the company, optionally with its members (users). Returns the group with its members.delete_user_groupDelete user groupDELETEDeletes a group of users. The users themselves are kept.get_user_groupGet user groupGETReturns one group of users by id, with its member users.list_user_groupsList user groupsGETLists the company's groups of users (not project groups), alphabetical, each with its member users, with cursor pagination.
Invoice, 4 operations
create_invoiceCreate invoicePOST[beta] Creates a draft invoice on a project, standalone or from a proposal (proposal_id). It does not send the invoice or collect money. Add lines with create_invoice_line_item. Requires CompanyCam invoicing.delete_invoiceDelete invoiceDELETE[beta] Deletes an invoice. Requires CompanyCam invoicing.get_invoiceGet invoiceGET[beta] Returns one invoice by id with its line items, totals and contact details. Requires CompanyCam invoicing.list_invoicesList invoicesGET[beta] Lists the company's invoices, newest first; project_id narrows to one project, updated_since returns those updated since that time. Requires CompanyCam invoicing. Read-only on status.
Page, 4 operations
create_pageCreate pagePOSTCreates a page (a rich-text note or report) on a project. tiptap_content is optional and must be a whole TipTap document (root type doc); do not repeat the title as its first node.get_pageGet pageGETReturns one page (a rich-text note or report) by id. include raw_content (plain text) or tiptap_content (the TipTap document) to get its body.list_pagesList pagesGETLists pages (rich-text notes and reports) across the company, most recently updated first; filter by project_id or draft, and include raw_content or tiptap_content for the body.list_project_pagesList project pagesGETLists the pages (rich-text notes and reports) of one project, most recently updated first; filter by draft.
Price book item, 4 operations
create_price_book_itemCreate price book itemPOST[beta] Creates an active item in the company price book with unit_cost_in_cents and markup (the customer price is derived). Needs a manager or admin role.delete_price_book_itemDelete price book itemDELETE[beta] Deletes a price book item. Needs a manager or admin role.get_price_book_itemGet price book itemGET[beta] Returns one active price book item by id: name, description, unit cost, markup, derived customer unit price, unit type and tax flag.list_price_book_itemsList price book itemsGET[beta] Lists the company's active price book (catalogue) items, alphabetical; q searches name and description.
Project group, 4 operations
create_project_groupCreate project groupPOSTCreates a project group (a bundle of projects); the name must be unique in the company. Add projects with add_project_to_group.delete_project_groupDelete project groupDELETEDeletes a project group. The projects in it are kept.get_project_groupGet project groupGETReturns one project group by id with its name, description, status and project count.list_project_groupsList project groupsGETLists the company's project groups (bundles of projects, not users), alphabetical, with name, description, status and project count.
Project task, 4 operations
create_project_taskCreate project taskPOSTCreates a task in a project's Tasks section (details is the text), optionally assigned to company users (assignees). Not a checklist.delete_project_taskDelete project taskDELETEDeletes a task from a project's Tasks section.get_project_taskGet project taskGETReturns one task of a project's Tasks section with its details, status, assigned users and attached media.list_project_tasksList project tasksGETLists the tasks of a project's Tasks section by position. These are single assignable tasks, not checklists.
Board, 3 operations
create_boardCreate boardPOSTCreates a kanban board (project pipeline) with named stages; each stage uses a project label. Returns the board with its phases. Requires manager access.get_boardGet boardGETReturns a kanban board by id with its stages (phases) and the projects in each stage. projects_per_phase caps how many projects come back per stage; list_board_phase_projects pages the rest.list_boardsList boardsGETLists the company's kanban boards (project pipelines) by position, each with its stages (phases), but not the projects in each stage: use get_board for those.
Custom field definition, 3 operations
create_custom_field_definitionCreate custom field definitionPOSTDefines a new custom field for every project of the company (no value is set). Its key is derived from the name and addresses the field on set_project_custom_field. Requires a user who can manage the account.delete_custom_field_definitionDelete custom field definitionDELETEDeletes a custom field definition from the company. A field that still holds values on projects cannot be deleted.list_custom_field_definitionsList custom field definitionsGETLists the company's custom field definitions (key, name, type, options, position), not their values on projects. Alphabetical by name, with cursor pagination.
Invoice line item, 3 operations
create_invoice_line_itemCreate invoice line itemPOST[beta] Adds a line item to a draft or open invoice; price_book_item_id starts from a catalogue item. Send unit_cost_in_cents (derived price fields are refused). Requires CompanyCam invoicing.get_invoice_line_itemGet invoice line itemGET[beta] Returns one line item of an invoice by id. Requires CompanyCam invoicing.list_invoice_line_itemsList invoice line itemsGET[beta] Lists the line items of an invoice by position. get_invoice returns them with the totals. Requires CompanyCam invoicing.
Label, 3 operations
label_projectLabel projectPOSTAdds labels to a project by display name; labels missing on the company are created. Returns the labels added.list_labelsList labelsGETLists the company's project labels, alphabetical. Labels go on projects; tags go on photos (list_tags).list_project_labelsList project labelsGETLists the labels applied to one project, alphabetical. list_labels gives the company's full label set.
Legacy checklist, 3 operations
get_project_legacy_checklistGet project legacy checklistGETReturns one classic (legacy) checklist of a project with its sections, tasks, sub-tasks and recorded answers.list_legacy_checklistsList legacy checklistsGETLists classic (legacy) checklists across the company, most recently updated first, as summaries with completion counts. These are not the advanced checklists of list_checklists.list_project_legacy_checklistsList project legacy checklistsGETLists the classic (legacy) checklists of a project, newest first, as summaries with completion counts. Read one with get_project_legacy_checklist.
Proposal line item, 3 operations
create_proposal_line_itemCreate proposal line itemPOST[beta] Adds a line item to an unaccepted proposal; price_book_item_id starts from a catalogue item. Send unit_cost_in_cents (derived prices are refused).get_proposal_line_itemGet proposal line itemGET[beta] Returns one line item of a proposal by id.list_proposal_line_itemsList proposal line itemsGET[beta] Lists the line items of a proposal by position. get_proposal returns them with the totals.
Webhook, 3 operations
create_webhookCreate webhookPOSTSubscribes a URL (HTTPS, not a private address) to events such as project.created; wildcards like project.* are accepted. The signing token is not passed on: set token yourself to verify deliveries.delete_webhookDelete webhookDELETEDeletes a webhook subscription.get_webhookGet webhookGETReturns one webhook subscription by id with URL, event scopes and enabled flag (not the signing token).
Assigned user, 2 operations
assign_user_to_projectAssign user to projectPUTAssigns an active company user to a project; the user is emailed and push-notified. Returns the user's profile.list_project_assigned_usersList project assigned usersGETLists the company users assigned to a project, by first then last name, with id, name, email, phone, role and status. Collaborating companies are in list_project_collaborators.
Company, 2 operations
get_companyGet companyGETReturns a company by id: name, status, address and logo URLs. Use get_current_company for the token's own company.get_current_companyGet current companyGETReturns the company of the authenticated user: id, name, status, address and logo URLs.
Contact, 2 operations
add_customer_contactAdd customer contactPOSTAdds one contact to a customer; give a name (or first_name). Returns the created contact.list_customer_contactsList customer contactsGETLists the contacts (people with name, email, phone) of one customer, oldest first, with cursor pagination.
Custom field, 2 operations
clear_project_custom_fieldClear project custom fieldDELETEClears one custom field's value on a project. The definition and other projects' values are untouched.list_project_custom_fieldsList project custom fieldsGETLists every custom field of the company with its value on one project (null when unset), alphabetical by name.
Invitation, 2 operations
create_project_invitationCreate project invitationPOSTCreates a collaborator invitation on a project, which offers another company access to it (view, add content). Returns the invitation.list_project_invitationsList project invitationsGETLists a project's collaborator invitations (pending and accepted), newest first, with status, creator and the accepting company.
Legacy checklist template, 2 operations
get_legacy_checklist_templateGet legacy checklist templateGETReturns one classic (legacy) checklist template by id with its sections, tasks and sub-tasks. Requires the templates plan.list_legacy_checklist_templatesList legacy checklist templatesGETLists the classic (legacy) checklist templates of the company, most recently updated first, with section and task counts. Requires the templates plan.
Time entry, 2 operations
get_time_entryGet time entryGETReturns one time entry (clock-in and clock-out) by id with its work type. Needs a manager or admin role and the time tracking plan.list_time_entriesList time entriesGETLists the company's clock-in and clock-out time entries, latest first. Needs a manager or admin role and the time tracking plan. Filter by users, projects, work types, dates or status.
Video, 2 operations
get_videoGet videoGETReturns one video by id with playback and thumbnail URLs and metadata. include transcript adds the spoken words.list_project_videosList project videosGETLists the videos of one project, newest first, with playback and thumbnail URLs, capture time, creator, duration and coordinates.
Collaborator, 1 operation
list_project_collaboratorsList project collaboratorsGETLists the other companies collaborating on a project, with the invitation that granted access, its permissions and when it was accepted.
Delivery, 1 operation
get_webhook_deliveryGet webhook deliveryGETReturns one delivery attempt of a webhook by id.
Time entry summary, 1 operation
get_time_entry_summaryGet time entry summaryGETTotals the company's completed time entries between start_date and end_date (90 days at most), grouped by user, date and/or project. Needs a manager or admin role and the time tracking plan.
Showing the first 120 of 163 endpoints. The rest are in the product, searchable from the workflow builder and from chat.
Use CompanyCam from Claude Code, Cursor or Codex
Connect CompanyCam in LiveContext, create an API key in Settings, then add the LiveContext MCP server to your client. Its CompanyCam operations become tools the client can call, next to every other integration you connected.
claude mcp add --transport http livecontext https://livecontext.ai/mcp --header "X-API-Key: YOUR_API_KEY"[mcp_servers.livecontext]
url = "https://livecontext.ai/mcp"
[mcp_servers.livecontext.http_headers]
"X-API-Key" = "YOUR_API_KEY"{
"mcpServers": {
"livecontext": {
"type": "http",
"url": "https://livecontext.ai/mcp",
"headers": {
"X-API-Key": "YOUR_API_KEY"
}
}
}
}How to connect CompanyCam
- Create your workspace
Sign up free. Nothing to install.
- Connect CompanyCam once
Add your CompanyCam connection in Settings. Every tool from this integration reuses it, and secrets are encrypted at rest and visible only to you.
- Describe the job in chat
The workflow builds itself in front of you and picks the endpoints it needs. Drag the steps yourself on the canvas whenever you would rather be explicit.
CompanyCam integration FAQ
What can you do with the CompanyCam integration?
LiveContext exposes 163 operations on CompanyCam, covering project, photo, tag and conditional checklist.
