All integrations

RepairShopr

BUSINESS · CRM & SUPPORT

Customers, tickets, invoices, and inventory in that shop’s own account.

Acts as the person, not as itself

Each user connects their own account. Every call carries both identities — the agent and the person it is acting for — so the agent can never reach past what that individual can already do.

Credentials never touch the agent

Tokens live in the vault and attach server-side at call time. The agent holds a session, not a secret, and revoking access does not mean rotating a key.

Every call on the record

Who asked, which agent acted, which action ran, and the verdict that let it through — one audit trail across every integration, not one per vendor.

What an agent can do

Each action is granted on its own. An agent allowed to read is not thereby allowed to write, and the scope beside each row is what the acting user must have connected for it to run at all.

repairshopr_delete_appointment_types_by_idWRITE

Deletes an Appointment Type by ID -- Required permission: Global Admin via DELETE /appointment_types/{id}

global_admin
repairshopr_delete_appointments_by_idWRITE

Deletes an Appointment by ID -- No special permissions required. via DELETE /appointments/{id}

no provider scope
repairshopr_delete_canned_responses_by_idWRITE

Deletes a Canned Response -- Required permission: Ticket Canned Responses - Manage via DELETE /canned_responses/{id}

ticket_canned_responses_manage
repairshopr_delete_contacts_by_idWRITE

Deletes a Contact -- Required permission: Customers - Edit Single-Customer Users can only access own contacts. via DELETE /contacts/{id}

customers_edit
repairshopr_delete_contracts_by_idWRITE

Deletes a Contract by ID -- Required permission: Contracts - Delete via DELETE /contracts/{id}

contracts_delete
repairshopr_delete_customers_by_customer_id_payment_profiles_by_idWRITE

Deletes a Payment Profile via DELETE /customers/{customer_id}/payment_profiles/{id}

no provider scope
repairshopr_delete_customers_by_customer_id_phones_by_idWRITE

Deletes a Phone by ID -- Required permission: Customers - Edit Single-Customer Users can only access own. via DELETE /customers/{customer_id}/phones/{id}

customers_edit
repairshopr_delete_customers_by_idWRITE

Deletes a Customer by ID -- Required permission: Customers - Delete via DELETE /customers/{id}

customers_delete
repairshopr_delete_estimates_by_idWRITE

Deletes an Estimate by ID -- Required permission: Estimates - Delete via DELETE /estimates/{id}

estimates_delete
repairshopr_delete_estimates_by_id_line_items_by_line_item_idWRITE

Deletes a Line Item -- Required permission: Estimates - Edit via DELETE /estimates/{id}/line_items/{line_item_id}

estimates_edit
repairshopr_delete_invoices_by_idWRITE

Deletes an invoice by ID -- Returns 200 even if the delete fails via DELETE /invoices/{id}

no provider scope
repairshopr_delete_invoices_by_id_line_items_by_line_item_idWRITE

Deletes an a line item of an invoice by ID -- This deletes an existing Invoice's line item via DELETE /invoices/{id}/line_items/{line_item_id}

no provider scope
repairshopr_delete_portal_users_by_idWRITE

Deletes a Portal User by ID -- Required permission: Global Admin via DELETE /portal_users/{id}

global_admin
repairshopr_delete_products_by_id_delete_imageWRITE

Deletes a Product Image via DELETE /products/{id}/delete_image

no provider scope
repairshopr_delete_products_by_product_id_product_skus_by_idWRITE

Deletes a Product SKU by ID -- Required permission: Products - Edit via DELETE /products/{product_id}/product_skus/{id}

products_edit
repairshopr_delete_rmm_alerts_by_idWRITE

Deletes/Clears an RMM Alert by ID -- Required permission: RMM Alerts - Delete Single-Customer Users can only access own RMM Alerts. via DELETE /rmm_alerts/{id}

rmm_alerts_delete
repairshopr_delete_schedules_by_idWRITE

Deletes a Schedule by ID -- Required permission: Recurring Invoices - Delete via DELETE /schedules/{id}

recurring_invoices_delete
repairshopr_delete_schedules_by_id_line_items_by_schedule_line_item_idWRITE

Removes a Line Item from an Invoice Schedule -- Required permission: Recurring Invoices - Edit `POST /schedules/{id}/remove_line_item` is an older alias for this endpoint and behaves identically. via DELETE /schedules/{id}/line_items/{schedule_line_item_id}

recurring_invoices_edit
repairshopr_delete_tickets_by_idWRITE

Deletes a Ticket by ID -- Required permission: Tickets - Delete Single-Customer Users can only access own tickets. via DELETE /tickets/{id}

tickets_delete
repairshopr_delete_tickets_by_ticket_id_worksheet_results_by_idWRITE

Deletes a Worksheet Result -- Required permissions: "Tickets - View Details" or "Tickets - View 'Their Ticket' Details (assigned to them)" Single-Customer Users can only access own tickets. via DELETE /tickets/{ticket_id}/worksheet_results/{id}

tickets_view_details
repairshopr_delete_wiki_pages_by_idWRITE

Deletes a Wiki Page by ID -- Required permission: Documentation - Delete via DELETE /wiki_pages/{id}

documentation_delete
repairshopr_get_appointment_typesREAD

Returns a paginated list of Appointment Types -- Required permission: Global Admin via GET /appointment_types

global_admin
repairshopr_get_appointment_types_by_idREAD

Retrieves an Appointment Type by ID -- Required permission: Global Admin via GET /appointment_types/{id}

global_admin
repairshopr_get_appointmentsREAD

Returns a paginated list of Appointments -- Required permission: Appointments - View All (see-own never restricted) via GET /appointments

appointments_view_all
repairshopr_get_appointments_by_idREAD

Retrieves an Appointment by ID -- No special permissions required. via GET /appointments/{id}

no provider scope
repairshopr_get_calleridREAD

Get Caller ID via GET /callerid

no provider scope
repairshopr_get_canned_responsesREAD

Returns a list of Canned Responses with a query -- Required permission: Ticket Canned Responses - Manage via GET /canned_responses

ticket_canned_responses_manage
repairshopr_get_canned_responses_settingsREAD

Returns the settings for Canned Responses -- Required permission: Ticket Canned Responses - Manage Single-Customer Users can only access own canned responses. via GET /canned_responses/settings

ticket_canned_responses_manage
repairshopr_get_contactsREAD

Returns a paginated list of Contacts -- Required permission: Customers - View Detail Single-Customer Users can only access own contacts. via GET /contacts

customers_view_detail
repairshopr_get_contacts_by_idREAD

Retrieves a Contact by ID -- Required permission: Customers - View Detail Single-Customer Users can only access own contacts. via GET /contacts/{id}

customers_view_detail
repairshopr_get_contractsREAD

Returns a paginated list of Contracts -- Required permission: Contracts - List/Search Every contract in the list carries the same covered-item fields as `GET /contracts/{id}`. Covered items are part of the contract payload: * `product_price_overrides` — the covered products with their contracted rate (`price_retail_cents` or `discount_percentage`) and their block-list status (`blacklisted`, meaning the product is billed separately from the contract). * `non_billable_product_ids` — products covered by the contract and therefore not billed on their own. * `schedule_ids` — the recurring invoice schedules this contract governs. Link a schedule to a contract by sending `contract_id` to the Schedule endpoints. via GET /contracts

contracts_list_search
repairshopr_get_contracts_by_idREAD

Retrieves a Contract by ID -- Required permission: Contracts - Edit Covered items are part of the contract payload: * `product_price_overrides` — the covered products with their contracted rate (`price_retail_cents` or `discount_percentage`) and their block-list status (`blacklisted`, meaning the product is billed separately from the contract). * `non_billable_product_ids` — products covered by the contract and therefore not billed on their own. * `schedule_ids` — the recurring invoice schedules this contract governs. Link a schedule to a contract by sending `contract_id` to the Schedule endpoints. via GET /contracts/{id}

contracts_edit
repairshopr_get_customer_assetsREAD

Returns a paginated list of Assets -- Required permission: Assets - List/Search Single-Customer Users can only access own assets. via GET /customer_assets

assets_list_search
repairshopr_get_customer_assets_assets_by_contact_by_contact_idREAD

Returns a list of Assets for a specific contact -- Required permission: Assets - List/Search Returns a list of assets associated with a specific contact ID. via GET /customer_assets/assets_by_contact/{contact_id}

assets_list_search
repairshopr_get_customer_assets_by_idREAD

Retrieves an Asset by ID -- Required permission: Assets - View Details Single-Customer Users can only access own assets. via GET /customer_assets/{id}

assets_view_details
repairshopr_get_customer_assets_by_id_installed_applicationsREAD

Retrieves installed applications for an Asset -- Required permission: Assets - List/Search Single-Customer Users can only access own assets. Returns a paginated list of software installed on the asset. The `installed_at` date falls back to `created_at` when no explicit installation date is recorded. via GET /customer_assets/{id}/installed_applications

assets_list_search
repairshopr_get_customer_assets_by_id_patchesREAD

Retrieves Windows patch data for an Asset -- Required permission: Assets - List/Search Single-Customer Users can only access own assets. via GET /customer_assets/{id}/patches

assets_list_search
repairshopr_get_customer_assets_chat_information_by_idsREAD

Retrieves Assets by ID -- Required permission: Assets - List/Search Single-Customer Users can only access own assets. via GET /customer_assets/chat_information_by_ids

assets_list_search
repairshopr_get_customersREAD

Returns a paginated list of customers -- Required permission: Customers - List/Search Single-Customer Users can only access own customer (self). via GET /customers

customers_list_search
repairshopr_get_customers_autocompleteREAD

Returns a paginated list of customers for autocomplete query via GET /customers/autocomplete

no provider scope
repairshopr_get_customers_by_customer_id_payment_profilesREAD

Returns a paginated list of Payment Profiles via GET /customers/{customer_id}/payment_profiles

no provider scope
repairshopr_get_customers_by_customer_id_payment_profiles_by_idREAD

Retrieves a Payment Profile by ID via GET /customers/{customer_id}/payment_profiles/{id}

no provider scope
repairshopr_get_customers_by_customer_id_phonesREAD

Returns a paginated list of Phones -- Required permission: Customers - View Detail Single-Customer Users can only access own. via GET /customers/{customer_id}/phones

customers_view_detail
repairshopr_get_customers_by_idREAD

Retrieves a Customer by ID -- Required permission: Customers - View Detail Single-Customer Users can only access own customer (self). via GET /customers/{id}

customers_view_detail
repairshopr_get_customers_latestREAD

Returns latest Customer -- Required permission: Customers - Edit Single-Customer Users can only access own customer (self). via GET /customers/latest

customers_edit
repairshopr_get_estimatesREAD

Returns a paginated list of Estimates -- Required permission: Estimates - List/Search via GET /estimates

estimates_list_search
repairshopr_get_estimates_by_idREAD

Retrieves an Estimate by ID or number -- Required permission: Estimates - View Details via GET /estimates/{id}

estimates_view_details
repairshopr_get_invoicesREAD

Returns a paginated list of Invoices -- Required permission: Invoices - List/Search via GET /invoices

invoices_list_search
repairshopr_get_invoices_by_idREAD

Retrieves an Invoice by ID or Number -- Required permission: Invoices - View Details via GET /invoices/{id}

invoices_view_details
repairshopr_get_invoices_by_id_ticketREAD

Returns the associated ticket for an invoice -- Required permissions: "Invoices - View Details" and "Tickets - View Details" via GET /invoices/{id}/ticket

invoices_view_detailstickets_view_details
repairshopr_get_itemsREAD

Returns a paginated list of Part Orders -- Required permission: Parts Orders - List/Search via GET /items

parts_orders_list_search
repairshopr_get_leadsREAD

Returns a paginated list of Leads -- Required permission: Leads - List/Search via GET /leads

leads_list_search
repairshopr_get_leads_by_idREAD

Retrieves a Lead by ID -- Required permission: Leads - List/Search via GET /leads/{id}

leads_list_search
repairshopr_get_line_itemsREAD

Returns a paginated list of Line Items -- Required permission: Global Admin via GET /line_items

global_admin
repairshopr_get_meREAD

Returns the current user via GET /me

no provider scope
repairshopr_get_new_ticket_formsREAD

Returns a paginated list of Ticket Forms -- Required permission: Ticket Workflows - Manage via GET /new_ticket_forms

ticket_workflows_manage
repairshopr_get_new_ticket_forms_by_idREAD

Retrieves a Ticket Form -- Required permission: Tickets - Create via GET /new_ticket_forms/{id}

tickets_create
repairshopr_get_payment_methodsREAD

Returns a paginated list of Payment Methods -- All Users except Co-Managed Support Users may use this action. via GET /payment_methods

no provider scope
repairshopr_get_paymentsREAD

Returns a paginated list of Payments -- Required permission: Payments - View List via GET /payments

payments_view_list
repairshopr_get_payments_by_idREAD

Retrieves a Payment by ID -- Required permission: Payments - View List via GET /payments/{id}

payments_view_list
repairshopr_get_portal_usersREAD

Returns a paginated list of Portal Users -- Required permission: Global Admin via GET /portal_users

global_admin
repairshopr_get_productsREAD

Returns a paginated list of Products -- Required permission: Products - List/Search via GET /products

products_list_search
repairshopr_get_products_barcodeREAD

Returns a Product by Barcode -- Required permission: Products - List/Search via GET /products/barcode

products_list_search
repairshopr_get_products_by_idREAD

Retrieves a Product by ID -- Required permission: Products - List/Search via GET /products/{id}

products_list_search
repairshopr_get_products_by_product_id_product_serialsREAD

Returns a paginated list of Product_serials -- Required permission: Products - List/Search via GET /products/{product_id}/product_serials

products_list_search
repairshopr_get_products_by_product_id_product_skusREAD

Returns a list of Product SKUs -- Required permission: Products - List/Search via GET /products/{product_id}/product_skus

products_list_search
repairshopr_get_products_categoriesREAD

Returns a paginated list of Product Categories -- Required permission: Products - List/Search via GET /products/categories

products_list_search
repairshopr_get_purchase_ordersREAD

Returns a paginated list of Purchase Orders -- Required permission: Purchase Orders - List/Search via GET /purchase_orders

purchase_orders_list_search
repairshopr_get_purchase_orders_by_idREAD

Retrieves a Purchase Order by ID -- Required permission: Purchase Orders - View Details via GET /purchase_orders/{id}

purchase_orders_view_details
repairshopr_get_rmm_alertsREAD

Returns a paginated list of RMM Alerts -- Required permission: RMM Alerts - List Single-Customer Users can only access own RMM Alerts. via GET /rmm_alerts

rmm_alerts_list
repairshopr_get_rmm_alerts_by_idREAD

Retrieves an RMM Alert by ID -- Required permission: RMM Alerts - List Single-Customer Users can only access own RMM Alerts. via GET /rmm_alerts/{id}

rmm_alerts_list
repairshopr_get_schedulesREAD

Returns a paginated list of Invoice Schedules -- Required permission: Recurring Invoices - List via GET /schedules

recurring_invoices_list
repairshopr_get_schedules_by_idREAD

Retrieves a Schedule by ID -- Required permission: Recurring Invoices - List via GET /schedules/{id}

recurring_invoices_list
repairshopr_get_searchREAD

Search all the things -- Additional permissions required depending on search results type: - Customer, Contact, Asset: "Customers - List/Search" - Lead: Leads - List/Search - Invoice: Invoices - List/Search - Estimate: Estimates - List/Search - Ticket: Tickets - List/Search - Product: Products - List/Search - Purchase Order, Vendor: Purchase Orders - List/Search - Report: Reports - View - Wiki: Documentation - Allow Usage via GET /search

no provider scope
repairshopr_get_settingsREAD

Returns a list of Account Settings with rollout via GET /settings

no provider scope
repairshopr_get_settings_printingREAD

Returns Printing Settings via GET /settings/printing

no provider scope
repairshopr_get_settings_tabsREAD

Returns Tabs Settings via GET /settings/tabs

no provider scope
repairshopr_get_ticket_blueprintsREAD

Returns a paginated list of Ticket Blueprints -- Required permission: Ticket Blueprints - Manage Returns only blueprints available for ticket creation (hidden_for_ticket_creation: false). via GET /ticket_blueprints

ticket_blueprints_manage
repairshopr_get_ticket_commentsREAD

Returns a paginated flat list of comments across multiple tickets -- Required permissions: "Tickets - View Details" or "Tickets - View 'Their Ticket' Details (assigned to them)" Returns a flat, paginated list of comments across multiple tickets sorted by ticket_id ASC, created_at DESC. All comments for a given ticket are adjacent in the response, with the newest comments first within each ticket. Comments can be scoped to specific tickets using a saved Ticket View (ticket_search_id) and/or direct ticket filters such as customer_id, status, etc. Comment-level date filters use the `comment_` prefix to distinguish them from the ticket-level date filters that share similar names (e.g. created_after). Single-Customer Users can only access comments for their own tickets. via GET /ticket_comments

tickets_view_details
repairshopr_get_ticket_timersREAD

Returns a paginated list of Ticket Timers -- Required permission: Ticket Timers - Overview via GET /ticket_timers

ticket_timers_overview
repairshopr_get_ticketsREAD

Returns a paginated list of Tickets -- Required permission: Tickets - List/Search Single-Customer Users can only access own tickets. via GET /tickets

tickets_list_search
repairshopr_get_tickets_by_idREAD

Retrieves a Ticket by ID -- Required permissions: "Tickets - View Details" or "Tickets - View 'Their Ticket' Details (assigned to them)" Single-Customer Users can only access own tickets. via GET /tickets/{id}

tickets_view_details
repairshopr_get_tickets_by_id_commentsREAD

Returns Comments for a Ticket -- Required permissions: "Tickets - View Details" or "Tickets - View 'Their Ticket' Details (assigned to them)" Single-Customer Users can only access comments for their own tickets. via GET /tickets/{id}/comments

tickets_view_details
repairshopr_get_tickets_by_ticket_id_worksheet_resultsREAD

Returns a paginated list of Worksheet Results -- Required permissions: "Tickets - View Details" or "Tickets - View 'Their Ticket' Details (assigned to them)" Single-Customer Users can only access own tickets. via GET /tickets/{ticket_id}/worksheet_results

tickets_view_details
repairshopr_get_tickets_by_ticket_id_worksheet_results_by_idREAD

Retrieves a Worksheet Result by ID -- Required permissions: "Tickets - View Details" or "Tickets - View 'Their Ticket' Details (assigned to them)" Single-Customer Users can only access own tickets. via GET /tickets/{ticket_id}/worksheet_results/{id}

tickets_view_details
repairshopr_get_tickets_settingsREAD

Returns Tickets Settings via GET /tickets/settings

no provider scope
repairshopr_get_timelogsREAD

Returns a paginated list of Timelogs -- Users with permission "Timelogs - Manage" may see timelogs for any/all users. Otherwise, results scoped to current user. via GET /timelogs

no provider scope
repairshopr_get_timelogs_lastREAD

Returns last Timelog -- Users with permission "Timelogs - Manage" may see timelogs for any/all users. Otherwise, results scoped to current user. via GET /timelogs/last

no provider scope
repairshopr_get_user_devices_by_idREAD

Retrieves an existing User Device by UUID via GET /user_devices/{id}

no provider scope
repairshopr_get_usersREAD

Returns a paginated list of Users via GET /users

no provider scope
repairshopr_get_users_by_idREAD

Retrieves an existing User by ID via GET /users/{id}

no provider scope
repairshopr_get_vendorsREAD

Returns a paginated list of Vendors -- Required permission: Vendors - List via GET /vendors

vendors_list
repairshopr_get_vendors_by_idREAD

Retrieves a Vendor Page -- Required permission: Vendors - View Details via GET /vendors/{id}

vendors_view_details
repairshopr_get_wiki_pagesREAD

Returns a paginated list of Wiki Pages -- Required permission: Documentation - Allow Usage via GET /wiki_pages

documentation_allow_usage
repairshopr_get_wiki_pages_by_idREAD

Retrieves a Wiki Page -- Required permission: Documentation - Allow Usage via GET /wiki_pages/{id}

documentation_allow_usage
repairshopr_patch_canned_responses_by_idWRITE

Updates a Canned Response -- Required permission: Ticket Canned Responses - Manage via PATCH /canned_responses/{id}

ticket_canned_responses_manage
repairshopr_patch_ticket_timers_by_idWRITE

Updates an existing Ticket Timer by ID -- Required permission: Ticket Timers - Overview via PATCH /ticket_timers/{id}

ticket_timers_overview
repairshopr_post_appointment_typesWRITE

Creates an Appointment Type -- Required permission: Global Admin via POST /appointment_types

global_admin
repairshopr_post_appointmentsWRITE

Creates an Appointment -- No special permissions required. via POST /appointments

no provider scope
repairshopr_post_canned_responsesWRITE

Creates a new Canned Response -- Required permission: Ticket Canned Responses - Manage via POST /canned_responses

ticket_canned_responses_manage
repairshopr_post_contactsWRITE

Creates a Contact -- Required permission: Customers - Edit Single-Customer Users can only access own contacts. via POST /contacts

customers_edit
repairshopr_post_contractsWRITE

Creates a Contract -- Required permission: Contracts - Edit A complete contract — top-level attributes, covered items with their contracted rates, the block-list and the non-billable products — is created in this one call. Covered items are part of the contract payload: * `product_price_overrides` — the covered products with their contracted rate (`price_retail_cents` or `discount_percentage`) and their block-list status (`blacklisted`, meaning the product is billed separately from the contract). * `non_billable_product_ids` — products covered by the contract and therefore not billed on their own. * `schedule_ids` — the recurring invoice schedules this contract governs. Link a schedule to a contract by sending `contract_id` to the Schedule endpoints. via POST /contracts

contracts_edit
repairshopr_post_customer_assetsWRITE

Creates an Asset -- Required permission: Assets - Create Single-Customer Users can only access own assets. via POST /customer_assets

assets_create
repairshopr_post_customersWRITE

Creates a Customer -- Required permission: Customers - Create via POST /customers

customers_create
repairshopr_post_customers_by_customer_id_payment_profilesWRITE

Creates a Payment Profile via POST /customers/{customer_id}/payment_profiles

no provider scope
repairshopr_post_customers_by_customer_id_phonesWRITE

Creates a Phone -- Required permission: Customers - Edit Single-Customer Users can only access own. via POST /customers/{customer_id}/phones

customers_edit
repairshopr_post_estimatesWRITE

Creates an Estimate -- Required permission: Estimates - Create via POST /estimates

estimates_create
repairshopr_post_estimates_by_id_convert_to_invoiceWRITE

Convert an Estimate to an Invoice -- Required permissions: "Estimates - View Details" and "Invoices - Create" via POST /estimates/{id}/convert_to_invoice

estimates_view_detailsinvoices_create
repairshopr_post_estimates_by_id_emailWRITE

Sends an Estimate to a Customer -- Required permission: Estimates - View Details via POST /estimates/{id}/email

estimates_view_details
repairshopr_post_estimates_by_id_line_itemsWRITE

Adds a Line Item to an Estimate -- Required permission: Estimates - Edit via POST /estimates/{id}/line_items

estimates_edit
repairshopr_post_estimates_by_id_printWRITE

Queues a print job for an Estimate -- Required permission: Estimates - View Details via POST /estimates/{id}/print

estimates_view_details
repairshopr_post_invoicesWRITE

Creates an Invoice -- Required permission: Invoices - Create `subtotal`, `total`, `tax`, `balance_due`, `is_paid`, `verified_paid`, `tech_marked_paid`, `pdf_url`, `customer_business_then_name` and `hardwarecost` are computed from the line items and payments. They are returned on every response but ignored in a request; this endpoint has never accepted them. via POST /invoices

invoices_create
repairshopr_post_invoices_by_id_emailWRITE

Sends invoice to customer -- Required permission: Invoices - View Details via POST /invoices/{id}/email

invoices_view_details
repairshopr_post_invoices_by_id_line_itemsWRITE

Creates a new line item -- Required permission: Invoices - Edit via POST /invoices/{id}/line_items

invoices_edit
repairshopr_post_invoices_by_id_printWRITE

Queues a print job for an invoice -- Required permission: Invoices - View Details via POST /invoices/{id}/print

invoices_view_details
repairshopr_post_leadsWRITE

Creates a Lead -- Required permission: None via POST /leads

no provider scope
repairshopr_post_new_ticket_forms_by_id_process_formWRITE

Creates a new Ticket for a Ticket Form -- Required permission: Tickets - Create via POST /new_ticket_forms/{id}/process_form

tickets_create
repairshopr_post_otp_loginWRITE

Authorize a User with One Time Password via POST /otp_login

no provider scope
repairshopr_post_paymentsWRITE

Creates a Payment -- Required permission: Payments - Create via POST /payments

payments_create
repairshopr_post_portal_usersWRITE

Creates a Portal User -- Required permission: Global Admin via POST /portal_users

global_admin
repairshopr_post_portal_users_create_invitationWRITE

Creates an Invitation for a Portal User -- Required permission: Global Admin via POST /portal_users/create_invitation

global_admin
repairshopr_post_productsWRITE

Creates a Product -- Required permission: Products - Create via POST /products

products_create
repairshopr_post_products_by_id_add_imagesWRITE

Creates a Product Image -- Required permission: Products - Edit via POST /products/{id}/add_images

products_edit
repairshopr_post_products_by_product_id_product_serialsWRITE

Creates a Product Serial -- Required permission: Products - Edit via POST /products/{product_id}/product_serials

products_edit
repairshopr_post_products_by_product_id_product_serials_attach_to_line_itemWRITE

Adds Product Serials to a Line Item -- Required permission: Products - List/Search Additional permissions required depending on "record_type": - LineItem: "Invoices - Edit" or "Estimates - Edit" - TicketLineItem: Tickets - Edit via POST /products/{product_id}/product_serials/attach_to_line_item

products_list_search
repairshopr_post_products_by_product_id_product_skusWRITE

Creates a Product SKU -- Required permission: Products - Edit via POST /products/{product_id}/product_skus

products_edit
repairshopr_post_purchase_ordersWRITE

Creates a Purchase Order -- Required permission: Purchase Orders - Edit via POST /purchase_orders

purchase_orders_edit
repairshopr_post_purchase_orders_by_id_create_po_line_itemWRITE

Adds a Product to a Purchase Order -- Required permission: Purchase Orders - Edit via POST /purchase_orders/{id}/create_po_line_item

purchase_orders_edit
repairshopr_post_purchase_orders_by_id_receiveWRITE

receive purchase_order -- Required permission: Purchase Orders - Edit via POST /purchase_orders/{id}/receive

purchase_orders_edit
repairshopr_post_rmm_alertsWRITE

Creates an RMM Alert -- Required permission: RMM Alerts - Create Single-Customer Users can only access own RMM Alerts. via POST /rmm_alerts

rmm_alerts_create
repairshopr_post_rmm_alerts_by_id_muteWRITE

Mutes an RMM Alert by ID -- Required permission: RMM Alerts - Clear/Manage Single-Customer Users can only access own RMM Alerts. via POST /rmm_alerts/{id}/mute

rmm_alerts_clear_manage
repairshopr_post_rmm_public_scripts_by_asset_id_scheduleWRITE

Schedules a Script on an Asset -- Required permission: Scripts - Execute Single-Customer Users can only access own assets. via POST /rmm/public_scripts/{asset_id}/schedule

scripts_execute
repairshopr_post_schedulesWRITE

Creates an Invoice Schedule -- Required permission: Recurring Invoices - New Accepts every settable field on a schedule, so a schedule can be fully configured in one call. Add its line items afterwards with `POST /schedules/{id}/line_items`, or seed them from an existing invoice by passing `invoice_id`. `id`, `account_id`, `created_at`, `updated_at` and `last_run` are read-only. So are `subscription_status` and `recurring_type_id`, which are maintained for you: the first is recomputed from the linked contract and the unpaid invoice count on every run, and the second is what selects the billing engine for the whole schedule. Every id in the request is checked against your account before anything is written, so a rejected request changes nothing. Errors come back as `{"error": ["Location can't be found", ...]}` with status 422. via POST /schedules

recurring_invoices_new
repairshopr_post_schedules_by_id_add_line_itemWRITE

Adds a Line Item to an Invoice Schedule (deprecated) -- Required permission: Recurring Invoices - Edit **Deprecated.** Identical to `POST /schedules/{id}/line_items`, which matches the Invoice and Estimate APIs. Kept for existing integrations; use the nested route instead. via POST /schedules/{id}/add_line_item

recurring_invoices_edit
repairshopr_post_schedules_by_id_line_itemsWRITE

Adds a Line Item to an Invoice Schedule -- Required permission: Recurring Invoices - Edit Most fields only apply to one kind of line, chosen with `recurring_type_id`; the descriptions say which. `POST /schedules/{id}/add_line_item` is an older alias for this endpoint and behaves identically. via POST /schedules/{id}/line_items

recurring_invoices_edit
repairshopr_post_schedules_by_id_remove_line_itemWRITE

Removes a Line Item from an Invoice Schedule (deprecated) -- Required permission: Recurring Invoices - Edit **Deprecated.** Identical to `DELETE /schedules/{id}/line_items/{schedule_line_item_id}`, which matches the Invoice and Estimate APIs. Kept for existing integrations; use the nested route instead. via POST /schedules/{id}/remove_line_item

recurring_invoices_edit
repairshopr_post_ticket_blueprints_by_id_applyWRITE

Creates tickets from a Blueprint -- Required permission: Ticket Blueprints - Create Ticket From Blueprint Creates a parent ticket and child tickets from the blueprint, assigned to the given customer. Returns the parent ticket ID and array of child ticket IDs. via POST /ticket_blueprints/{id}/apply

ticket_blueprints_create_ticket_from_blueprint
repairshopr_post_ticket_timersWRITE

Creates a Ticket Timer that starts running -- Required permission: Ticket Timers - Overview Creates a Ticket Timer that starts directly in status_running (start_time is set to now, end_time is left unset). The timer always belongs to the authenticated technician — any client-supplied user_id is ignored. A technician holds at most one active timer per ticket. If they already have a running or paused timer on the ticket it is resumed and returned with a 200 rather than a second timer being created, and the request body is ignored. An omitted or null `billable` resolves to the account's "time is non-billable by default" setting, matching the Web App. via POST /ticket_timers

ticket_timers_overview
repairshopr_post_ticket_timers_by_id_pauseWRITE

Pauses a running Ticket Timer -- Required permission: Ticket Timers - Overview Pauses a running Ticket Timer. Returns a 422 if the timer is not currently running. via POST /ticket_timers/{id}/pause

ticket_timers_overview
repairshopr_post_ticket_timers_by_id_startWRITE

Starts (or resumes a paused) Ticket Timer -- Required permission: Ticket Timers - Overview Starts a Ticket Timer that has never been started, or resumes a paused one. Returns a 422 if the timer is already running or has been stopped. via POST /ticket_timers/{id}/start

ticket_timers_overview
repairshopr_post_ticket_timers_by_id_stopWRITE

Stops a running or paused Ticket Timer -- Required permission: Ticket Timers - Overview Stops a running or paused Ticket Timer. Returns a 422 if the timer is already stopped. If the account has `ticket_timer_charge_by_default` enabled, this also creates the ticket line item for the charged time. via POST /ticket_timers/{id}/stop

ticket_timers_overview
repairshopr_post_ticketsWRITE

Creates a Ticket -- Required permission: Tickets - Create Sending `parent_id` additionally requires: Ticket Parent-Child - Edit. Requests that send it without that permission, or on an account without parent/child tickets enabled, are rejected with 403. Single-Customer Users can only access own tickets. via POST /tickets

tickets_create
repairshopr_post_tickets_by_id_add_line_itemWRITE

Creates a Ticket Line Item -- Required permission: Tickets - Edit Single-Customer Users can only access own tickets. via POST /tickets/{id}/add_line_item

tickets_edit
repairshopr_post_tickets_by_id_attach_file_urlWRITE

Attach a file to a Ticket -- Required permission: Tickets - Edit Single-Customer Users can only access own tickets. via POST /tickets/{id}/attach_file_url

tickets_edit
repairshopr_post_tickets_by_id_charge_timer_entryWRITE

Charges a Ticket Timer -- Required permission: Ticket Timers - Overview via POST /tickets/{id}/charge_timer_entry

ticket_timers_overview
repairshopr_post_tickets_by_id_commentWRITE

Adds a Comment to a Ticket -- Required permission: Tickets - Edit Single-Customer Users can only access own tickets. via POST /tickets/{id}/comment

tickets_edit
repairshopr_post_tickets_by_id_delete_attachmentWRITE

Deletes a Ticket Attachment -- Required permission: Tickets - Edit Single-Customer Users can only access own tickets. via POST /tickets/{id}/delete_attachment

tickets_edit
repairshopr_post_tickets_by_id_delete_timer_entryWRITE

Deletes a Ticket Timer -- Required permission: Ticket Timers - Overview via POST /tickets/{id}/delete_timer_entry

ticket_timers_overview
repairshopr_post_tickets_by_id_printWRITE

Prints a Ticket by ID -- Required permission: Tickets - View Details Single-Customer Users can only access own tickets. via POST /tickets/{id}/print

tickets_view_details
repairshopr_post_tickets_by_id_remove_line_itemWRITE

Deletes a Ticket Line Item -- Required permission: Tickets - Edit Single-Customer Users can only access own tickets. via POST /tickets/{id}/remove_line_item

tickets_edit
repairshopr_post_tickets_by_id_timer_entryWRITE

Create a Ticket Timer for a Ticket -- Required permission: Ticket Timers - Overview via POST /tickets/{id}/timer_entry

ticket_timers_overview
repairshopr_post_tickets_by_ticket_id_worksheet_resultsWRITE

Creates Worksheet Result -- Required permissions: "Tickets - View Details" or "Tickets - View 'Their Ticket' Details (assigned to them)" Single-Customer Users can only access own tickets. via POST /tickets/{ticket_id}/worksheet_results

tickets_view_details
repairshopr_post_user_devicesWRITE

Creates a User Device via POST /user_devices

no provider scope
repairshopr_post_vendorsWRITE

Creates a Vendor -- Required permission: Vendors - New via POST /vendors

vendors_new
repairshopr_post_wiki_pagesWRITE

Creates a Wiki Page -- Required permission: Documentation - Create via POST /wiki_pages

documentation_create
repairshopr_put_appointment_types_by_idWRITE

Updates an existing Appointment Type by ID -- Required permission: Global Admin via PUT /appointment_types/{id}

global_admin
repairshopr_put_appointments_by_idWRITE

Updates an existing Appointment by ID -- No special permissions required. via PUT /appointments/{id}

no provider scope
repairshopr_put_contacts_by_idWRITE

Updates an existing Contact -- Required permission: Customers - Edit Single-Customer Users can only access own contacts. via PUT /contacts/{id}

customers_edit
repairshopr_put_contracts_by_idWRITE

Updates an existing Contract by ID -- Required permission: Contracts - Edit Covered items are part of the contract payload: * `product_price_overrides` — the covered products with their contracted rate (`price_retail_cents` or `discount_percentage`) and their block-list status (`blacklisted`, meaning the product is billed separately from the contract). * `non_billable_product_ids` — products covered by the contract and therefore not billed on their own. * `schedule_ids` — the recurring invoice schedules this contract governs. Link a schedule to a contract by sending `contract_id` to the Schedule endpoints. via PUT /contracts/{id}

contracts_edit
repairshopr_put_customer_assets_by_idWRITE

Updates an existing Asset by ID -- Required permission: Assets - Edit Single-Customer Users can only access own assets. via PUT /customer_assets/{id}

assets_edit
repairshopr_put_customers_by_customer_id_payment_profiles_by_idWRITE

Updates a Payment Profile via PUT /customers/{customer_id}/payment_profiles/{id}

no provider scope
repairshopr_put_customers_by_customer_id_phones_by_idWRITE

Updates an existing Phone by ID -- Required permission: Customers - Edit Single-Customer Users can only access own. via PUT /customers/{customer_id}/phones/{id}

customers_edit
repairshopr_put_customers_by_idWRITE

Updates an existing Customer by ID -- Required permission: Customers - Edit Single-Customer Users can only access own customer (self). via PUT /customers/{id}

customers_edit
repairshopr_put_estimates_by_idWRITE

Updates an existing Estimate by ID -- Required permission: Estimates - Edit via PUT /estimates/{id}

estimates_edit
repairshopr_put_estimates_by_id_line_items_by_line_item_idWRITE

Updates a Line Item -- Required permission: Estimates - Edit via PUT /estimates/{id}/line_items/{line_item_id}

estimates_edit
repairshopr_put_invoices_by_idWRITE

Updates an existing invoice by ID -- This updates an existing Invoice, all parameters overwrite existing params via PUT /invoices/{id}

no provider scope
repairshopr_put_invoices_by_id_line_items_by_line_item_idWRITE

Updates an a line item of an invoice by ID -- This updates an existing Invoice's line item, all parameters overwrite existing params via PUT /invoices/{id}/line_items/{line_item_id}

no provider scope
repairshopr_put_leads_by_idWRITE

Updates an existing Lead by ID -- Required permission: None via PUT /leads/{id}

no provider scope
repairshopr_put_portal_users_by_idWRITE

Updates an existing Portal User by ID -- Required permission: Global Admin via PUT /portal_users/{id}

global_admin
repairshopr_put_products_by_idWRITE

Updates an existing Product by ID -- Required permission: Products - Edit via PUT /products/{id}

products_edit
repairshopr_put_products_by_id_location_quantitiesWRITE

Updates a Location Quantity -- Required permission: Products - Edit Quantities via PUT /products/{id}/location_quantities

products_edit_quantities
repairshopr_put_products_by_product_id_product_serials_by_idWRITE

Updates an existing Product Serial by ID -- Required permission: Products - Edit via PUT /products/{product_id}/product_serials/{id}

products_edit
repairshopr_put_products_by_product_id_product_skus_by_idWRITE

Updates an existing Product SKU by ID -- Required permission: Products - Edit via PUT /products/{product_id}/product_skus/{id}

products_edit
repairshopr_put_purchase_orders_by_idWRITE

Updates a Purchase Order -- Required permission: Purchase Orders - Edit Updates allowed fields on a Purchase Order. Only the following fields may be modified: `status`, `general_notes`, `shipping_cents`, `delivery_tracking`, `vendor_id`. via PUT /purchase_orders/{id}

purchase_orders_edit
repairshopr_put_schedules_by_idWRITE

Updates an existing Invoice Schedule by ID -- Required permission: Recurring Invoices - Edit Accepts the same fields as `POST /schedules`. Only the fields you send are changed; omitted fields are left alone. Changing `customer_id` on a schedule that already has a `contract_id` or a `payment_id` requires sending a matching one too, or an empty one to unlink — otherwise the schedule would keep pointing at another customer's contract or card. `id`, `account_id`, `created_at`, `updated_at` and `last_run` are read-only. So are `subscription_status` and `recurring_type_id`, which are maintained for you: the first is recomputed from the linked contract and the unpaid invoice count on every run, and the second is what selects the billing engine for the whole schedule. Every id in the request is checked against your account before anything is written, so a rejected request changes nothing. Errors come back as `{"error": ["Location can't be found", ...]}` with status 422. via PUT /schedules/{id}

recurring_invoices_edit
repairshopr_put_schedules_by_id_line_items_by_schedule_line_item_idWRITE

Updates a Line Item -- Required permission: Recurring Invoices - Edit Accepts the same fields as adding one. Only the fields you send are changed. via PUT /schedules/{id}/line_items/{schedule_line_item_id}

recurring_invoices_edit
repairshopr_put_tickets_by_idWRITE

Updates an existing Ticket by ID -- Required permission: Tickets - Edit Sending `parent_id` additionally requires: Ticket Parent-Child - Edit. Requests that send it without that permission, or on an account without parent/child tickets enabled, are rejected with 403. Send an empty `parent_id` to unlink the Ticket from its parent. Single-Customer Users can only access own tickets. via PUT /tickets/{id}

tickets_edit
repairshopr_put_tickets_by_id_update_line_itemWRITE

Updates an existing Ticket Line Item -- Required permission: Tickets - Edit Single-Customer Users can only access own tickets. via PUT /tickets/{id}/update_line_item

tickets_edit
repairshopr_put_tickets_by_id_update_timer_entryWRITE

Updates an existing Ticket Timer -- Required permission: Ticket Timers - Overview via PUT /tickets/{id}/update_timer_entry

ticket_timers_overview
repairshopr_put_tickets_by_ticket_id_worksheet_results_by_idWRITE

Updates a Worksheet Result -- Required permissions: "Tickets - View Details" or "Tickets - View 'Their Ticket' Details (assigned to them)" Single-Customer Users can only access own tickets. The `answers` object accepts one or more field updates. Each key should be the field's slug, and the value should be an object containing `value` (the new field value) and optionally `user` (who made the change). If `user` is not provided, it defaults to the API token owner. via PUT /tickets/{ticket_id}/worksheet_results/{id}

tickets_view_details
repairshopr_put_timelogsWRITE

Updates a Timelog -- Users with permission "Timelogs - Manage" may see timelogs for any/all users. Otherwise, results scoped to current user. via PUT /timelogs

no provider scope
repairshopr_put_user_devices_by_idWRITE

Updates an existing User Device by UUID via PUT /user_devices/{id}

no provider scope
repairshopr_put_vendors_by_idWRITE

Updates an existing Vendor page by ID -- Required permission: Vendors - Edit via PUT /vendors/{id}

vendors_edit
repairshopr_put_wiki_pages_by_idWRITE

Updates an existing Wiki Page by ID -- Required permission: Documentation - Edit via PUT /wiki_pages/{id}

documentation_edit

Put RepairShopr behind one governed endpoint.

Same permissions, same audit trail, whatever else you connect next.