When to use this endpoint

Use after a list supplies an ID, or to inspect a raw quote before a field update. Use the mapped detail API when CRM2 field names or selected fields are needed.

Authentication and permissions

Authenticate with signed API-key fields or a CRM session. Requires Quotes View (pageQuotes_view); non-admin users blocked by legacy crm_access bit 32 are denied. Client administrators inherit page permissions.

Quote visibility follows the account’s department/account-manager customer filters for non-admin users, including signed keys. Export routes additionally require pageMain_exportTableData. Linked Jobs require Jobs View and their TeamAccess scope; invoice enrichment requires Invoices View and the legacy invoice access check.

Parameters

ParameterTypeRequiredDescription
idPositive integer-compatible quote IDYesLocal primary ID, integer-converted. Not a quote number. Extra fields parameters are ignored by the raw reader.

Example request

$quote = FM_api('Quote_get', ['id'=>'1042']);

Example response

{"id":"1042","quote_num":"QT-1042","meta":"{}","form_fields":"{}","total_net":"100.00","deleted":"0"}

This is an illustrative subset of the full SELECT * response; it is not a fields projection.

Errors and unusual responses

ResponseCondition
{"error":"not logged in"}No authenticated tenant context is available. Invalid signed credentials can be rejected by the dispatcher before the handler runs.
{"error":"invalid or missing parameter: id"}Missing/nonpositive ID.
{"error":"requested quote does not exist"}No active row or failed lookup.
{"error":"permission denied"}Required Quotes/Export permission is absent or legacy access restrictions apply.

Legacy application errors may be returned with HTTP 200. Check the decoded response for error, not only the HTTP status.

Behaviour and edge cases

  • Returns one full active, visible database row. Fields/ids do not project this raw response; JSON columns remain stored text/null. Missing, deleted or invisible targets return requested quote does not exist.
  • No pagination, ordering, recalculation or other primary record write.
  • No direct caller for this endpoint was found in the mobile app or its m-service intermediary.

Side effects

  • Reads active permitted records without quote cost, history, email or derived Job-cache writes.

See it in Fieldmotion

CRM1

Quotes → Notes/Fields loads Quote_get in pageQuoteNotesFields. Filter Network for Quote_get when opening that dialog.

CRM2

Quotes email and Job/Invoice linking widgets read Quote_get; ordinary detail/layout loads use Quote_getRequestedDetails or Quote_getLayoutDetails.

Related endpoints