Get an operation
- Permissions
- Depends on the request
- Also available as
fieldtask_get_operation
Returns what happened to a create request: which record it created, and the status of any follow-up work that runs after the record is saved.
Every successful create returns an Operation-Location header pointing here. MCP create tools return the same ID as operation_id. Use this endpoint when you need to confirm a create after a timeout, or to check follow-up work such as geocoding a location address or synchronization with a connected system.
Who can read an operation
Only the connection that made the create request can read its operation, and for MCP connections only the person who approved the connection. Any other caller gets 404 resource_not_found.
Permissions
This operation has no fixed permission requirement; see the conditions below.
The connection needs current read access to the kind of record the operation created:
| Created by | Permissions needed to read the operation |
|---|---|
customer.create | customers:read |
customer_location.create | customer_locations:read, customers:read |
invoice.create | customers:read, invoices:read |
job.create | jobs:read |
job_item.create | job_items:read, jobs:read |
member_invitation.create | members:invite, members:read |
product.create | products:read |
quote.create | customers:read, quotes:read |
Request
Responses
- 200
- 400
- 401
- 403
- 404
- 405
- 410
- 429
- 503
OK
Response Headers
Responses must not be cached.
Server-generated request correlation ID.
Bad Request
Response Headers
Responses must not be cached.
Server-generated request correlation ID.
Unauthorized
Response Headers
Responses must not be cached.
Server-generated request correlation ID.
Forbidden
Response Headers
Responses must not be cached.
Server-generated request correlation ID.
Not Found
Response Headers
Responses must not be cached.
Server-generated request correlation ID.
Method Not Allowed
Response Headers
Responses must not be cached.
Server-generated request correlation ID.
Gone
Response Headers
Responses must not be cached.
Server-generated request correlation ID.
Too Many Requests
Response Headers
Responses must not be cached.
Seconds before retry; present on 429 and an in-progress operation.
Server-generated request correlation ID.
Service Unavailable
Response Headers
Responses must not be cached.
Server-generated request correlation ID.
Reading the result
| Field | Meaning |
|---|---|
data.local_status | Always committed: the record was saved in FieldTask. |
data.command and data.resource | What was created, with its type and ID. Read the record itself through its own endpoint. |
data.http_status | The status of the original create response, 201. |
data.result_expires_at | When this operation result stops being available, seven days after the create. |
data.integration | Follow-up work that runs separately from the create. |
The follow-up work never changes or removes the saved record.
integration.status | Meaning |
|---|---|
not_applicable | There's no follow-up work. |
pending | Follow-up work is queued or running. Read the operation again later. |
succeeded | All follow-up work finished. |
partial | Some follow-up work finished; the rest was blocked or failed. |
blocked | Follow-up work can't run until something is configured or reconciled. |
failed | Follow-up work failed. |
outcome_unknown | FieldTask couldn't confirm whether follow-up work took effect. Check the other system before doing anything that could duplicate it. |
Each entry in integration.targets reports one piece of work, with its own status and, when it didn't succeed, an error_code:
error_code | Meaning |
|---|---|
configuration_required | The work needs configuration that isn't in place, for example address geocoding or a connected system's settings. |
authorization_required | The connected system needs to be authorized again. |
provider_unavailable | The other system couldn't be reached. |
invalid_upstream_data | The other system returned data FieldTask couldn't use. |
reconciliation_required | The records in FieldTask and the other system need to be matched manually. |
Reading an operation doesn't retry or repeat any follow-up work.
After seven days
Operation results are kept for seven days. After result_expires_at, this endpoint returns 410 operation_result_expired. That doesn't mean the create failed: the record still exists. Keep the record ID from the original create response for longer-term reconciliation.
Errors
This endpoint accepts no query parameters.
| Status | code | Meaning | What to do |
|---|---|---|---|
| 400 | invalid_query | The query string has an unknown, repeated or invalid parameter. | Send only the documented query parameters, each once. |
| 401 | invalid_token | The bearer token is missing, malformed, expired, revoked or issued for a different resource (for example an MCP sign-in). | Send a current REST API token or REST OAuth access token as Authorization: Bearer …. |
| 403 | api_access_not_enabled | FieldTask hasn't enabled API access for this organization, or has disabled it. | An owner or admin requests access in Settings → API connections. |
| 403 | insufficient_scope | The connection lacks a permission this request needs. error.code is missing_permission. | Add the permission named in error.message to the connection. |
| 403 | operation_forbidden | The connection's access changed while the request was processed, or the result would include data the connection can no longer read. | Check the connection's permissions, then retry. Retry creates with the same key and body. |
| 404 | resource_not_found | The record doesn't exist or isn't visible to this connection, the feature isn't available in this environment, or the URL is wrong. | Check the ID, the API origin and the path (no trailing slash). |
| 405 | method_not_allowed | This path doesn't accept the HTTP method, or the create isn't enabled in this environment. The Allow header lists the methods that are. | Use a method listed in Allow. |
| 410 | resource_gone | The record created by this operation no longer exists. | Don't create it again automatically. Check in FieldTask whether it was removed on purpose. |
| 410 | operation_result_expired | The operation result is older than seven days and is no longer kept. This doesn't mean the create failed. | Reconcile using the record ID you saved from the original response. |
| 429 | rate_limit_exceeded | Too many requests in the current minute, or too many concurrent requests, for the organization or connection. | Wait for Retry-After seconds, then retry. |
| 429 | daily_quota_exceeded | The organization or connection has used its daily allowance for this kind of request. Allowances reset at 00:00 UTC. | Wait for Retry-After seconds, or check remaining allowance in Settings → API connections. |
| 503 | temporarily_unavailable | The service couldn't complete the request. | Retry with exponential backoff. Retry creates with the same key and body. |