All integrations

Typeform

MARKETING · TASKS

Workspaces, forms, themes, and responses in the account they connected.

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.

typeform_delete_forms_by_form_idWRITE

Deletes the form with the given `form_id` and all of the form's responses. via DELETE /forms/{form_id}

forms:write
typeform_delete_forms_by_form_id_responsesWRITE

Delete responses to a form. You must specify the `included_response_ids` parameter. Deletion does not happen straight away, instead, a 200 response status code indicates the request had been succesfully registered. Not found response IDs will be ignored. Consider checking if responses have been actually deleted using the "Retrieve responses" endpoint or checking Typeform itself. via DELETE /forms/{form_id}/responses

responses:write
typeform_delete_forms_by_form_id_translations_by_languageWRITE

Deletes the content of a translation for a given form and language. Typeform's scopes table documents no scope for this operation, so Agentic Fabriq requires none (whether Typeform checks one is unverified). via DELETE /forms/{form_id}/translations/{language}

no provider scope
typeform_delete_forms_by_form_id_webhooks_by_tagWRITE

Delete a webhook. via DELETE /forms/{form_id}/webhooks/{tag}

webhooks:write
typeform_delete_images_by_image_idWRITE

Deletes an image from your Typeform account. via DELETE /images/{image_id}

images:write
typeform_delete_rtbf_by_account_id_responsesWRITE

Right to be forgotten: delete every response associated with the account. WARNING: measured 2026-09-13, Typeform answers this path 404 'Endpoint not found' for every account_id shape tried (it appears only in Typeform's Postman collection), so it is likely unavailable on api.typeform.com today. Typeform's scopes table documents no scope for this operation, so Agentic Fabriq requires none (whether Typeform checks one is unverified). via DELETE /rtbf/{account_id}/responses

no provider scope
typeform_delete_themes_by_theme_idWRITE

Deletes a theme from your Typeform account. via DELETE /themes/{theme_id}

themes:write
typeform_delete_workspaces_by_workspace_idWRITE

Delete a workspace. via DELETE /workspaces/{workspace_id}

workspaces:write
typeform_get_accounts_by_account_id_workspacesREAD

Retrieve all workspaces you have access to within the specific account. account_id is the 26-character account ULID; other shapes are answered 404. Typeform's scopes table documents no scope for this operation, so Agentic Fabriq requires none (whether Typeform checks one is unverified). via GET /accounts/{account_id}/workspaces

no provider scope
typeform_get_formsREAD

Retrieves a list of JSON descriptions for all forms in your Typeform account (public and private). Forms can be sorted by creation date or last update date, in ascending or descending order. via GET /forms

forms:read
typeform_get_forms_by_form_idREAD

Retrieves a form by the given `form_id`. Includes any theme and images attached to the form as references. Details about the fields and elements for this endpoint are available in the **Create Form** description. via GET /forms/{form_id}

forms:read
typeform_get_forms_by_form_id_messagesREAD

Retrieves the customizable messages for a form (specified by `form_id`) using the form's specified language. You can format messages with bold (`*bold*`) and italic (`_italic_`) text. HTML tags are forbidden. via GET /forms/{form_id}/messages

forms:read
typeform_get_forms_by_form_id_responsesREAD

Returns form responses and date and time of form landing and submission. Very recent responses (say within the last 30 minutes) may not be returned. Considering using Typeform webhooks instead for real-time submission data. Returned as JSON (the XLSX/CSV renderings are not offered). Querying the wrong data center returns EMPTY results, not an error. via GET /forms/{form_id}/responses

responses:read
typeform_get_forms_by_form_id_translations_by_languageREAD

Serves the translation payload for a given language. Typeform's scopes table documents no scope for this operation, so Agentic Fabriq requires none (whether Typeform checks one is unverified). via GET /forms/{form_id}/translations/{language}

no provider scope
typeform_get_forms_by_form_id_translations_mainREAD

Retrieves the form content in the main language, as if it were a translation. Useful for using it as a base to translate different languages. Typeform's scopes table documents no scope for this operation, so Agentic Fabriq requires none (whether Typeform checks one is unverified). via GET /forms/{form_id}/translations/main

no provider scope
typeform_get_forms_by_form_id_translations_statusREAD

Retrieve the status of the translations for each language for a given form Typeform's scopes table documents no scope for this operation, so Agentic Fabriq requires none (whether Typeform checks one is unverified). via GET /forms/{form_id}/translations/status

no provider scope
typeform_get_forms_by_form_id_webhooksREAD

Retrieve all webhooks for the specified typeform. via GET /forms/{form_id}/webhooks

webhooks:read
typeform_get_forms_by_form_id_webhooks_by_tagREAD

Retrieve a single webhook. via GET /forms/{form_id}/webhooks/{tag}

webhooks:read
typeform_get_forms_by_form_id_webhooks_by_tag_deliveriesREAD

Retrieve data about the last 30 days of deliveries for an specific webhook in your Typeform account. via GET /forms/{form_id}/webhooks/{tag}/deliveries

webhooks:read
typeform_get_forms_by_form_id_webhooks_by_tag_deliveries_by_delivery_idREAD

Retrieve data about specified webhook delivery in your Typeform account. We store deliveries of webhooks for 30 days. via GET /forms/{form_id}/webhooks/{tag}/deliveries/{delivery_id}

webhooks:read
typeform_get_imagesREAD

Retrieves a list of JSON descriptions for all images in your Typeform account. Images are listed in reverse-chronological order based on the date you added them to your account. via GET /images

images:read
typeform_get_images_by_image_idREAD

Retrieves the JSON description or the binary of the original image for the specified `image_id`. **NOTE:** Default is to return the binary of the original image. Use the `Accept` header to specify `application/json` to return the JSON description of the image instead. Agentic Fabriq always asks for application/json, so this returns the JSON description; the binary image is not offered. via GET /images/{image_id}

images:read
typeform_get_images_by_image_id_background_by_sizeREAD

Retrieve the JSON description or the binary of the requested background format. Use the `Accept` header to specify the response format. If you use `application/json`, the JSON representation of the resource will be returned. Otherwise, the image as a binary will be returned (if the MIME type matches with the stored one). Agentic Fabriq always asks for application/json, so this returns the JSON description; the binary image is not offered. via GET /images/{image_id}/background/{size}

images:read
typeform_get_images_by_image_id_choice_by_sizeREAD

Retrieve the JSON description or the binary of the requested choice format. Use the `Accept` header to specify the response format. If you use `application/json`, the JSON representation of the resource will be returned. Otherwise, the image as a binary will be returned (if the MIME type matches with the stored one). Agentic Fabriq always asks for application/json, so this returns the JSON description; the binary image is not offered. via GET /images/{image_id}/choice/{size}

images:read
typeform_get_images_by_image_id_image_by_sizeREAD

Retrieve the JSON description or the binary of the requested image. Use the `Accept` header to specify the response format. If you use `application/json`, the JSON representation of the resource will be returned. Otherwise, the image as a binary will be returned (if the MIME type matches with the stored image). Agentic Fabriq always asks for application/json, so this returns the JSON description; the binary image is not offered. via GET /images/{image_id}/image/{size}

images:read
typeform_get_insights_by_form_id_summaryREAD

Retrieve the insights summary (views, starts, submissions, completion rate and per-question drop-off) for a form. Typeform's scopes table documents no scope for this operation, so Agentic Fabriq requires none (whether Typeform checks one is unverified). via GET /insights/{form_id}/summary

no provider scope
typeform_get_meREAD

Retrieve basic information from your Typeform account. via GET /me

accounts:read
typeform_get_media_audios_by_id_masterREAD

Retrieves the processed master audio file URL. This endpoint should be polled to check the transcoding status. **Download Process:** 1. After requesting the master file (POST), poll this endpoint to check the transcoding `status` 2. When `status` is `"ready"`, the `url` field contains the download URL for the processed audio 3. Use the returned URL to download the audio file **Status Values:** - `none`: Audio master is not yet requested - `preparing`: Audio master is being prepared - `ready`: Audio is ready for download (URL provided) **Polling Recommendations:** - Poll every 2-3 seconds initially - After 30 seconds, increase polling interval to 5-10 seconds - Stop polling once status is `ready` or `errored` **Note:** The download URL is only valid for 24 hours and can be regenerated by calling the POST endpoint again. `id` is the audio id from the upload endpoint, not a form or image id; an id no audio has answers an empty 404. Typeform's scopes table documents no scope for this operation, so Agentic Fabriq requires none (whether Typeform checks one is unverified). via GET /media/audios/{id}/master

no provider scope
typeform_get_media_videos_by_id_masterREAD

Retrieves the processed master video file URL. This endpoint should be polled to check the transcoding status. **Download Process:** 1. After requesting the master file (POST), poll this endpoint to check the transcoding `status` 2. When `status` is `"ready"`, the `url` field contains the download URL for the processed video 3. Use the returned URL to download the video file **Status Values:** - `none`: Video master is not yet requested - `preparing`: Video master is being prepared - `ready`: Video is ready for download (URL provided) **Polling Recommendations:** - Poll every 2-3 seconds initially - After 30 seconds, increase polling interval to 5-10 seconds - Stop polling once status is `ready` or `errored` **Note:** The download URL is only valid for 24 hours and can be regenerated by calling the POST endpoint again. `id` is the video id from typeform_post_media_videos, not a form or image id; an id no video has answers an empty 404, and a video whose file has not been uploaded yet answers 409. Typeform's scopes table documents no scope for this operation, so Agentic Fabriq requires none (whether Typeform checks one is unverified). via GET /media/videos/{id}/master

no provider scope
typeform_get_themesREAD

Retrieves a list of JSON descriptions for all themes in your Typeform account (public and private). Themes are listed in reverse-chronological order based on the date you added them to your account. via GET /themes

themes:read
typeform_get_themes_by_theme_idREAD

Retrieves a theme in your Typeform account. via GET /themes/{theme_id}

themes:read
typeform_get_workspacesREAD

Retrieve all workspaces you have access to. This will rerieve all workspaces you have access to from multiple organisations. via GET /workspaces

workspaces:read
typeform_get_workspaces_by_workspace_idREAD

Retrieve a workspace. via GET /workspaces/{workspace_id}

workspaces:read
typeform_patch_forms_by_form_idWRITE

Updates an existing form. Typeform's scopes table documents no scope for this operation, so Agentic Fabriq requires none (whether Typeform checks one is unverified). via PATCH /forms/{form_id}

no provider scope
typeform_patch_themes_by_theme_idWRITE

Updates a theme in your Typeform account. **NOTE:** You can't change Typeform's public themes (the built-in themes that are available in all accounts). This endpoint support partial payloads. It enables a caller to update a theme by providing only a subset of fields that need to be updated, leaving the rest of the theme definition unaltered. Each provided field must be complete though; for instance, if one decides to update the `colors` field, then all its subfields must be provided. Failing that, the request will be considered invalid. Typeform's scopes table documents no scope for this operation, so Agentic Fabriq requires none (whether Typeform checks one is unverified). via PATCH /themes/{theme_id}

no provider scope
typeform_patch_workspaces_by_workspace_idWRITE

Update a workspace. via PATCH /workspaces/{workspace_id}

workspaces:write
typeform_post_accounts_by_account_id_workspacesWRITE

Create a workspace in a specific account. account_id is the 26-character account ULID; other shapes are answered 404. Typeform's scopes table documents no scope for this operation, so Agentic Fabriq requires none (whether Typeform checks one is unverified). via POST /accounts/{account_id}/workspaces

no provider scope
typeform_post_formsWRITE

Here's the general structure for requests to create a form: - `title`: Title to use for the form. - `type`: Type of form. - `settings`: Object that specifies form settings and metadata, including the language to use for the form, whether the form is publicly available, the basis for the progress bar, and search engine indexing settings. - `theme`: Theme to use for the form. - `workspace`: Workspace that contains the form. - `hidden`: Array of Hidden Fields to use in the form. - `variables`: Object that keeps track of total score, price and enrichment variables containing third-party data, if you use them in the form. Read [Data enrichment with Typeform](https://www.typeform.com/help/a/data-enrichment-with-typeform-23794452273812/) for more information about enrichment variables. - `welcome_screens`: Array of objects that specify settings and properties for the form's welcome screen. - `thankyou_screens`: Array of objects that specify settings and properties for the form's thank you screen. - `fields`: Array of objects that specify the fields to use in the form and their properties, validations, and attachments. - `logic`: Array of Logic Jump objects to use in the form. Expand the schema below for details about each of these elements. For optional elements, if you don't send a value and the element doesn't have a default value, no attribute will be returned. Any images you want to use in your form must already exist in your Typeform account. If you try to create a form that includes an image that isn't already in your Typeform account, the response will include an "IMAGE_NOT_FOUND" error. Use the [POST https://api.typeform.com/images](/create/reference/create-image) endpoint to add images to your account. **NOTE:** It is not possible to inject third-party content into a typeform using the Create API. via POST /forms

forms:write
typeform_post_forms_by_form_id_responses_searchWRITE

Retrieves form responses using a structured filter format that supports combining multiple conditions on answers, metadata, tags, hidden fields, response IDs, and submission time. Prefer this endpoint over `GET /forms/{form_id}/responses` when you need to filter by answer values or combine conditions. Querying the wrong data center returns EMPTY results, not an error. Typeform's scopes table documents no scope for this operation, so Agentic Fabriq requires none (whether Typeform checks one is unverified). via POST /forms/{form_id}/responses/search

no provider scope
typeform_post_forms_by_form_id_translations_by_language_autoWRITE

Requests an automatic translation for a form and language, stores and returns it. Typeform's scopes table documents no scope for this operation, so Agentic Fabriq requires none (whether Typeform checks one is unverified). via POST /forms/{form_id}/translations/{language}/auto

no provider scope
typeform_post_imagesWRITE

Adds an image in your Typeform account. Specify the URL of your image or send your image in [base64](https://en.wikipedia.org/wiki/Base64) format, which encodes the image data as ASCII text. You can use a tool like [Base64 Image Encoder](https://www.base64-image.de) to get the base64 code for the image you want to add. via POST /images

images:write
typeform_post_media_audios_by_id_masterWRITE

Initiates the master file generation process for an audio file. This should be called after uploading an audio file. **Master File Process:** 1. After uploading an audio file to the `upload_url`, call this endpoint to start processing 2. The service will begin generating the master file (high-quality downloadable version) 3. Use the GET endpoint to poll for status and retrieve the download URL when ready **Note:** This endpoint is idempotent - calling it multiple times for the same audio will not restart processing. `id` is the audio id from the upload endpoint, not a form or image id; an id no audio has answers an empty 404. Typeform's scopes table documents no scope for this operation, so Agentic Fabriq requires none (whether Typeform checks one is unverified). via POST /media/audios/{id}/master

no provider scope
typeform_post_media_videosWRITE

Creates a new video upload. Returns an upload URL where the video file should be uploaded via PUT request. **Upload Process:** 1. Call this endpoint to create a video upload and receive an `upload_url` and `id` 2. Upload your video file to the `upload_url` using a PUT request with the video file (ReadStream) as the body **Note:** The `upload_url` is a temporary signed URL that expires after a short period. Step 1 of 3: returns `id` and a short-lived `upload_url`; PUT the file there, then call the master tools with that `id`. Typeform's scopes table documents no scope for this operation, so Agentic Fabriq requires none (whether Typeform checks one is unverified). via POST /media/videos

no provider scope
typeform_post_media_videos_by_id_masterWRITE

Initiates the master file generation process for a video. This should be called after uploading a video file. **Master File Process:** 1. After uploading a video to the `upload_url`, call this endpoint to start processing 2. The service will begin generating the master file (high-quality downloadable version) 3. Use the GET endpoint to poll for status and retrieve the download URL when ready **Note:** This endpoint is idempotent - calling it multiple times for the same video will not restart processing. `id` is the video id from typeform_post_media_videos, not a form or image id; an id no video has answers an empty 404, and a video whose file has not been uploaded yet answers 409. Typeform's scopes table documents no scope for this operation, so Agentic Fabriq requires none (whether Typeform checks one is unverified). via POST /media/videos/{id}/master

no provider scope
typeform_post_media_videos_listWRITE

Retrieves multiple videos with optional per-video clip time configurations for instant clipping. **Features:** - Fetch multiple videos in a single request - Apply per-video clip times (start_time, end_time) for instant clipping - Get signed Mux playback tokens for secure video access - Support for millisecond or second time units **Authentication:** - Requires Authorization header with bearer token OR - Respondent token in request body for form respondent access **Instant Clipping:** Videos can be clipped on-the-fly without creating new files. The returned playback URLs will only stream the specified time range. Tokens include clip parameters as JWT claims. Typeform's scopes table documents no scope for this operation, so Agentic Fabriq requires none (whether Typeform checks one is unverified). via POST /media/videos/list

no provider scope
typeform_post_themesWRITE

Creates a new theme. via POST /themes

themes:write
typeform_post_workspacesWRITE

Create a workspace. The workspace gets created in the account where the user has the organisation role - owner. via POST /workspaces

workspaces:write
typeform_put_forms_by_form_idWRITE

Updates an existing form. Your request body must include all the existing form fields, in addition to the new email field. Overwrites the previously stored form with the given `form_id`. Any new fields in your request will be added to the form. Likewise, any fields you don't include in your request will be deleted from the form. **Make sure your `PUT` request contains every field you want to include in your updated form, including the field `id`.** **NOTE:** Tread carefully when updating fields in forms. `PUT` overwrites the entire form, so if you don't include each field (with the original field `id`) in your `PUT` request, the missing fields **and results for those fields** will be deleted. Details about the fields and elements for this endpoint are available in the **Create Form** description. The `theme` property applies a theme to the form. If you don't specify a value for the 'theme' property, Typeform applies a **new** copy of the default theme to the form, **even if you already have a copy of the default theme applied to this form.** via PUT /forms/{form_id}

forms:write
typeform_put_forms_by_form_id_messagesWRITE

Specifies new values for the customizable messages in a form (specified by `form_id`). You can format messages with bold (`*bold*`) and italic (`_italic_`) text. HTML tags are forbidden. via PUT /forms/{form_id}/messages

forms:write
typeform_put_forms_by_form_id_translations_by_languageWRITE

Updates the content of a translation for a given form and language. Typeform's scopes table documents no scope for this operation, so Agentic Fabriq requires none (whether Typeform checks one is unverified). via PUT /forms/{form_id}/translations/{language}

no provider scope
typeform_put_forms_by_form_id_webhooks_by_tagWRITE

Create or update a webhook. via PUT /forms/{form_id}/webhooks/{tag}

webhooks:write
typeform_put_themes_by_theme_idWRITE

Updates a theme in your Typeform account. **NOTE:** You can't change Typeform's public themes (the built-in themes that are available in all accounts). This endpoint is meant for receiving a full theme payload. The theme definition you provide will overwrite any existing theme with the same ID, even if that means overwriting fields with default values. For partial updates, use the `PATCH` endpoint. via PUT /themes/{theme_id}

themes:write

Put Typeform behind one governed endpoint.

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