---
title: DataScope API Integration on Truto
slug: datascope
category: Survey
canonical: "https://truto.one/integrations/detail/datascope/"
---

# DataScope API Integration on Truto



**Category:** Survey  
**Status:** Generally available

## MCP-ready AI tools

Truto exposes 38 tools for DataScope that AI agents can call directly.

- **get_single_data_scope_form_schema_by_id** — Get the field schema of a selected form in datascope. Returns the schema object with its id and attributes containing the form's form-specific question and field definitions. Required: id.
- **create_a_data_scope_hooks_flow** — Register a hooks flow webhook in datascope that fires when a new answer is submitted for a form. Returns the registration outcome in result. Only one active connection per form is supported. Required: hooks_flow_id, subscription_url.
- **list_all_data_scope_tasks_forms_flows** — List the forms available in the Datascope account. Returns the form entries with their type, key, and label.
- **list_all_data_scope_list_users** — List the users available in the datascope account. Returns an array of user records with type, user_key, and identifier. Takes no query or body parameters.
- **create_a_data_scope_power_automate_finding_changed_status** — Create a Power Automate trigger subscription in DataScope that fires whenever a ticket changes its status. Returns the registration outcome (result). Only one active connection per account is supported. Required: event, subscription_url, version, platform.
- **create_a_data_scope_power_automate_new_task_assigned** — Register a datascope trigger subscription so Power Automate flows fire when a new task is assigned on the selected form. Returns the registration outcome in result. Only one active connection per form is supported. Required: event, form_id, subscription_url, version, platform.
- **create_a_data_scope_power_automate_new_pdf** — Register a DataScope Power Automate trigger that fires when a new PDF is generated for a form by email backup or auto notify. Returns: result. Only one active connection per form is supported. Required: event, form_id, subscription_url, version, platform.
- **create_a_data_scope_power_automate_change_status** — Register a Power Automate trigger subscription in datascope that fires when a form answer changes its status. Returns: result. Only one active connection per form is supported. Required: event, form_id, subscription_url, version, platform.
- **create_a_data_scope_power_automate_new_signed_pdf** — Register a Power Automate subscription in datascope for the new_signed_pdf event so the flow fires when a PDF is fully signed. Returns the registration outcome (result). Only one active connection per form is supported. Required: event, form_id, subscription_url, version, platform.
- **create_a_data_scope_power_automate_new_rejected_pdf** — Create a datascope Rejected Signature trigger subscription so a Power Automate flow fires whenever a PDF signature request is rejected on the monitored form. Returns: result. Only one active connection per form is supported. Required: event, form_id, subscription_url, version, platform.
- **update_a_data_scope_power_automate_updated_pdf_signature_by_id** — Subscribe to datascope's Updated signature (Signatures) trigger, which fires when the signatures of a PDF are updated. Returns the subscription registration outcome (result). Only one active connection per form is supported. Required: event, form_id, subscription_url, version, platform.
- **delete_a_data_scope_delete_hook_by_id** — Delete a webhook subscription in datascope, unsubscribing the hook for the given account. Returns an empty 204 response on success. Required: id, account_id, webhook_id.
- **update_a_data_scope_answer_by_id** — Update the value of a single question in an already-submitted DataScope form answer, identified by the form's name and the answer's code. Returns: status, form_answer, id, name, code, list_type, length. Required: form_name, form_code, question_name, question_value.
- **data_scope_answers_v_5** — List DataScope form answers through the Answers V5 (Beta) endpoint; version reproduces the response shape of earlier versions (v1-v4) and custom_fields unlocks extra data. Returns: created_at, updated_at, id, name, code, list_type, length. Max date range 90 days; default and max page size 200.
- **list_all_data_scope_answers** — List recent form answers submitted to DataScope forms, with each question's value flattened into a dynamic top-level key named after the question. Returns: form_answer_id, form_id, form_name, form_state, user_name, code, created_at, latitude, longitude. Default and max 200 submissions; date range capped at 90 days.
- **data_scope_answers_metadata** — List recent DataScope form answers with all questions grouped in a nested answers array and assigned-task location metadata. Returns: answers, form_answer_id, form_id, form_name, form_state, created_at, assign_id, assign_location_name, updated_at, finished.
- **update_a_data_scope_answer_status_by_id** — Change the status of one submitted form answer in datascope; the change is recorded in the answer's history, fires status-change webhooks, and notifies the submitting user. Returns: key, identifier, id, name, code, list_type, length. Requires form_name, form_code, and form_state_id. Returns a 400 with an empty body when the form name, answer code, or status id does not match. Required: form_name, form_code, form_state_id.
- **list_all_data_scope_answer_statuses** — List the answer statuses configured in your datascope account. Returns: key, identifier, id, name, code, list_type, length. Takes no parameters.
- **list_all_data_scope_signature_requests** — List datascope signature requests with their signers nested, ordered by updated_at ascending and keyset-paginated for incremental sync. Returns: deleted_at, created_at, updated_at, id, name, code, list_type, length. Max 200 per page.
- **list_all_data_scope_locations** — List all locations in the datascope account. Returns: id, name, description, code, list_type, length. No filters or paging.
- **create_a_data_scope_location** — Create a location in datascope from the fields sent in the required location object (name, description, code, company_code, company_name, address, city, country, latitude, longitude, phone, email). Returns the created location with its id, name, code, address, and email.
- **update_a_data_scope_location_by_id** — Update a location in datascope by id, sending the whole location object (read current values with Get All Locations first). Returns the location as it now stands, including its id, name, code, address, city, and email. Required: id, location.
- **list_all_data_scope_list_elements** — List all elements of a custom list in datascope, filtered by the list's internal code. Returns each element's id, name, description, code, list_id, and created_at/updated_at timestamps. Required: metadata_type.
- **get_single_data_scope_list_element_by_id** — Get a single element of a custom list in datascope by its internal identifier. Returns the element's id, name, description, code, list_id, account_id, and created_at/updated_at timestamps. Required: metadata_type, metadata_id.
- **create_a_data_scope_list_element** — Create a new element in a custom list in datascope: the target list is identified by the metadata_type query parameter and the element fields are sent as list_object in the body. Returns: id, name, description, code, created_at, updated_at, metadata_type. Not for locations lists — use the locations endpoints. Required: metadata_type and list_object. Returns 422 on wrong parameters and 403 when…
- **update_a_data_scope_list_element_by_id** — Update an existing element of a custom list in datascope by sending the full list_object in the body and the element's id in the path. Returns the updated element's id, name, code, list_type, and length. Required: id and list_object. Returns 422 on wrong parameters and 403 when forbidden.
- **data_scope_list_elements_bulk_update** — Bulk replace all elements of a custom list in datascope: existing objects for the metadata_type are deleted and replaced by the list_objects provided, with codes absent from the payload soft-deleted (experimental, destructive). Returns the list's id, name, code, list_type, and length. Required: metadata_type, name, and list_objects. Rejects the locations metadata_type with 400.
- **create_a_data_scope_list** — Create an empty list in DataScope. Returns the created list object including id, name, description, code, list_type, and length. Send the list attributes (name, description, code, list_type) under a top-level list object. Required: list.
- **update_a_data_scope_list_by_id** — Update an existing DataScope list by id. Returns the updated list object including id, name, description, code, list_type, and length. Send the list attributes (name, description, code, list_type) under a top-level list object. Required: id, list.
- **get_single_data_scope_task_assign_by_id** — Get a single task assignment in datascope by id — use the internal id, not assign_id. Returns the full record including assign_id, response_code, form_name, user_email, completed, on_time, delay_time, and status. Required: id. Returns 404 when the assignment does not belong to this account.
- **list_all_data_scope_task_assigns** — List task assignments in datascope for the authenticated account, matching the platform's Excel export plus the internal id. Returns the task_assigns array plus total, limit, and offset; records include assign_id, form_name, user_email, completed, on_time, and status. Omit start and end to return all history.
- **list_all_data_scope_notifications** — List DataScope notifications about PDF and Excel documents users were notified about in a date range. Returns: id, type, url, form_name, form_code, user, created_at, name, code, list_type, length. The window defaults to the last 7 days.
- **list_all_data_scope_files** — List PDF and Excel files DataScope generated in a date range, returning download links rather than file contents. Returns: id, url, form_name, form_code, user, name, code, list_type, length. The window defaults to the last 7 days when no range is supplied.
- **create_a_data_scope_file** — Create a new form answer and generate its PDF from an existing DataScope form template (beta Send Data action). Returns: ok, form_answer_id, id, name, code, list_type, length. Additional parameters are treated as answers to the form's questions; not all question types are supported and GSheet Sync and webhook triggers are not fired. Required: form_id.
- **list_all_data_scope_tickets** — List datascope tickets created within a date range. Returns: id, code, name, description, list_type, length. Dates use dd-mm-yyyy format, the range defaults to the last 7 days, and may not exceed 90 days.
- **get_single_data_scope_ticket_by_id** — Get a single datascope ticket by id. Returns the ticket with id, code, name, type, status, priority, ISO 8601 dates, location_name, creator_name, and comma-separated assignees and invitees. Required: id (the Firestore document id from the ticket URL).
- **data_scope_tickets_recent** — List the five most recently created datascope tickets. Returns the ticket fields id, name, type, status, priority, creation_date, and assignees. No parameters or filtering.
- **data_scope_tickets_types** — List the datascope ticket types configured in the account. Returns: id, name, code, list_type, length.

## How it works

1. **Link your customer's DataScope account.** Use Truto's frontend SDK; we handle every OAuth and API key flow so you don't need to create the OAuth app.
2. **Authentication is automatic.** Truto refreshes tokens, stores credentials securely, and injects them into every API request.
3. **Call Truto's API to reach DataScope.** The Proxy API is a 1-to-1 mapping of the DataScope API.
4. **Get a unified response format.** Every response uses a single shape, with cursor-based pagination and data in the `result` field.

## Use cases

- **Sync field inspection data into EAM platforms** — Enterprise Asset Management vendors can offer DataScope as a native integration so field-reported defects and findings automatically become work orders in their platform, closing the loop between mobile inspections and asset maintenance.
- **Archive signed compliance PDFs automatically** — Construction, HSE, and compliance SaaS platforms can subscribe to signed PDF events from DataScope and ingest completed audit documents with GPS metadata directly into their compliance dashboards for audit-ready record keeping.
- **Dispatch work orders to field crews** — Field Service Management tools can push task assignments into DataScope so technicians receive the right form on their mobile device, eliminating double entry between the dispatch system and the field app.
- **Enrich CRM records with on-site survey data** — CRMs serving field sales teams can pull structured answers, photos, and GPS coordinates from DataScope forms to update customer records and advance deal stages when a site visit is completed.
- **Keep master data in sync across back-office systems** — ERP, HR, and inventory platforms can bulk-replace DataScope lists and locations nightly, ensuring field workers always select from an accurate catalog of equipment, clients, sites, or materials.

## What you can build

- **Webhook-driven PDF archiving** — Listen to new signed, rejected, or updated PDF events and automatically ingest the generated document into your platform with full form metadata.
- **Two-way ticket (Findings) sync** — Pull DataScope tickets with priority, status, assignee, and location, and react to status changes via webhooks to mirror findings as issues in your product.
- **Task assignment dispatcher** — Create and monitor task assignments tied to a specific form and user email, and track completion, on-time rate, and delay metrics from your dashboard.
- **Form answer ingestion with GPS context** — Fetch answers via the Answers V5 endpoint to pull nested form responses enriched with latitude, longitude, timestamps, and form state IDs into your analytics or system of record.
- **Bulk list and location sync** — Push master data from your users' ERP or CRM into DataScope lists and locations using bulk update endpoints, keeping dropdowns consistent across systems.
- **Status automation on form completion** — Subscribe to change_status and finding_changed_status events to trigger downstream workflows in your app the moment a field worker updates a task or finding.

## FAQs

### How does authentication work for DataScope through Truto?

Truto handles the DataScope auth flow so your users connect their DataScope account once from your product. Your application calls Truto's unified endpoints without storing or rotating DataScope API credentials directly.

### Which real-time events can we subscribe to?

You can create event subscriptions for new_task_assigned, change_status, finding_changed_status, new_pdf, new_signed_pdf, and new_rejected_pdf. These let you react to task dispatch, form state changes, finding updates, and PDF lifecycle events without polling.

### Can we pull form responses with GPS and media context?

Yes. The Answers V5 endpoint returns detailed form responses in nested or flattened JSON, including latitude, longitude, assignment location, timestamps, and form state IDs so you can tie submissions back to where and when they were completed.

### Can we programmatically assign tasks to specific field users?

Yes. You can list users, create task assignments tied to a form_id and user_email, and read back execution metrics such as completed, on_time, and delay_time to monitor field performance from your product.

### How should we handle large master data syncs into DataScope?

Use the bulk update endpoint for list elements to replace entire lists in a single operation. This is designed for nightly batch syncs from an ERP or CRM, and is paired with CRUD endpoints for locations and individual list elements when you need incremental updates.

### Can we access the ticketing (Findings) module programmatically?

Yes. You can list tickets, fetch a single ticket by ID, retrieve recent tickets, and query ticket types. Combined with the finding_changed_status webhook, this supports two-way sync between DataScope Findings and external issue trackers.
