# nodes

node_type: @brightdata/n8n-nodes-brightdata.brightData
package_name: @brightdata/n8n-nodes-brightdata
display_name: BrightData
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: brd-cholpon
author_github_url: https://github.com/brightdata-com/n8n-nodes-brightdata.git
npm_package_name: @brightdata/n8n-nodes-brightdata
npm_version: 1.1.1
community_fetched_at: 2026-04-16T09:43:36.008Z
ai_summary_generated_at: 2026-03-25 22:47:20
description:
  Interact with Bright Data to scrape websites or use existing datasets from the marketplace to generate adapted snapshots

properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "webUnlocker",
      "options": [
        {
          "name": "Marketplace Dataset",
          "value": "marketplaceDataset"
        },
        {
          "name": "Web Scraper",
          "value": "webScrapper"
        },
        {
          "name": "Web Unlocker",
          "value": "webUnlocker"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "request",
      "options": [
        {
          "name": "Web Search",
          "value": "WebSearch",
          "action": "Search the web and get serp results",
          "routing": {
            "request": {
              "url": "/request",
              "body": {
                "url": "={{`https://www.google.com/search?q=${encodeURIComponent($parameter[\"query\"])}&start=${(($parameter[\"page\"] || 1) - 1) * 10}&brd_json=1`}}",
                "zone": "={{$parameter[\"zone\"]}}",
                "format": "raw",
                "country": "={{$parameter[\"country\"]}}"
              },
              "method": "POST"
            }
          }
        },
        {
          "name": "Send a Request",
          "value": "request",
          "action": "Access and extract data from a specific URL",
          "routing": {
            "request": {
              "url": "/request",
              "body": {
                "url": "={{$parameter[\"url\"]}}",
                "zone": "={{$parameter[\"zone\"]}}",
                "format": "={{$parameter[\"data_format\"] === \"markdown\" ? \"raw\" : $parameter[\"format\"]}}",
                "method": "={{$parameter[\"method\"]}}",
                "country": "={{$parameter[\"country\"]}}",
                "data_format": "={{$parameter[\"data_format\"] || undefined}}"
              },
              "method": "POST"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "webUnlocker"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listDatasets",
      "options": [
        {
          "name": "Deliver Snapshot",
          "value": "deliverSnapshot",
          "action": "Deliver a snapshot to specified storage",
          "routing": {
            "request": {
              "url": "/datasets/snapshots/{{$parameter[\"snapshot_id\"]}}/deliver",
              "method": "POST"
            }
          }
        },
        {
          "name": "Filter Dataset",
          "value": "filterDataset",
          "action": "Filter a dataset to create a snapshot",
          "routing": {
            "request": {
              "url": "/datasets/filter",
              "body": "={{\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"dataset_id\": $parameter[\"dataset_id\"].value || $parameter[\"dataset_id\"],\n\t\t\t\t\t\t\t\t\"records_limit\": $parameter[\"records_limit\"],\n\t\t\t\t\t\t\t\t\"filter\": $parameter[\"filter_type\"] === \"filter_single\" \n\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\"name\": $parameter[\"field_name\"],\n\t\t\t\t\t\t\t\t\t\t\"operator\": $parameter[\"field_operator\"], \n\t\t\t\t\t\t\t\t\t\t\"value\": $parameter[\"field_value\"]\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t: $parameter[\"filter_type\"] === \"filters_group\"\n\t\t\t\t\t\t\t\t\t? JSON.parse($parameter[\"filters_group\"])\n\t\t\t\t\t\t\t\t\t: {}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}",
              "method": "POST"
            }
          }
        },
        {
          "name": "Get Dataset Metadata",
          "value": "getDatasetMetadata",
          "action": "Retrieve metadata for a specific dataset by dataset id",
          "routing": {
            "request": {
              "url": "=/datasets/{{$parameter[\"dataset_id\"]}}/metadata",
              "method": "GET"
            }
          }
        },
        {
          "name": "Get Snapshot Content",
          "value": "getSnapshotContent",
          "action": "Retrieve data by snapshot id",
          "routing": {
            "request": {
              "qs": {
                "part": "={{$parameter[\"part\"]}}",
                "format": "={{$parameter[\"format\"]}}",
                "compress": "={{$parameter[\"compress\"] || false}}",
                "batch_size": "={{$parameter[\"batch_size\"]}}"
              },
              "url": "=/datasets/snapshots/{{$parameter[\"snapshot_id\"]}}/download",
              "method": "GET"
            }
          }
        },
        {
          "name": "Get Snapshot Metadata",
          "value": "getSnapshotMetadata",
          "action": "Get metadata for a selected snapshot by snapshot id",
          "routing": {
            "request": {
              "url": "=/datasets/snapshots/{{$parameter[\"snapshot_id\"]}}",
              "method": "GET"
            }
          }
        },
        {
          "name": "Get Snapshot Parts",
          "value": "getSnapshotParts",
          "action": "Split snapshot data to parts by snapshot id",
          "routing": {
            "request": {
              "url": "=/datasets/snapshots/{{$parameter[\"snapshot_id\"]}}/parts",
              "method": "GET"
            }
          }
        },
        {
          "name": "List Datasets",
          "value": "listDatasets",
          "action": "List available datasets",
          "routing": {
            "request": {
              "url": "/datasets/list",
              "method": "GET"
            }
          }
        },
        {
          "name": "List Snapshots",
          "value": "listSnapshots",
          "action": "List all your snapshot ids",
          "routing": {
            "request": {
              "url": "/datasets/snapshots",
              "method": "GET"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "marketplaceDataset"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "scrapeByUrl",
      "options": [
        {
          "name": "Deliver Snapshot",
          "value": "deliverSnapshot",
          "action": "Deliver a snapshot to specified storage",
          "routing": {
            "request": {
              "url": "/datasets/v3/deliver/{{$parameter[\"snapshot_id\"]}}",
              "method": "POST"
            }
          }
        },
        {
          "name": "Download Snapshot",
          "value": "downloadSnapshot",
          "action": "Download the snapshot content",
          "routing": {
            "request": {
              "url": "=/datasets/v3/snapshot/{{$parameter[\"snapshot_id\"]}}",
              "method": "GET"
            }
          }
        },
        {
          "name": "Get Snapshots",
          "value": "getSnapshots",
          "action": "Get filtered snapshots",
          "routing": {
            "request": {
              "qs": {
                "skip": "={{$parameter[\"skip\"]}}",
                "limit": "={{$parameter[\"limit\"]}}",
                "status": "={{$parameter[\"status\"]}}",
                "to_date": "={{$parameter[\"to_date\"]}}",
                "from_date": "={{$parameter[\"from_date\"]}}",
                "dataset_id": "={{$parameter[\"dataset_id\"]}}"
              },
              "url": "/datasets/v3/snapshots",
              "method": "GET"
            }
          }
        },
        {
          "name": "Monitor Progress Snapshot",
          "value": "monitorProgressSnapshot",
          "action": "Check the status of a batch extraction",
          "routing": {
            "request": {
              "url": "=/datasets/v3/progress/{{$parameter[\"snapshot_id\"]}}",
              "method": "GET"
            }
          }
        },
        {
          "name": "Scrape By URL",
          "value": "scrapeByUrl",
          "action": "Extract structured data from a single URL",
          "routing": {
            "request": {
              "qs": {
                "format": "={{$parameter[\"format\"]}}",
                "dataset_id": "={{$parameter[\"dataset_id\"]}}",
                "include_errors": "={{$parameter[\"include_errors\"]}}"
              },
              "url": "/datasets/v3/scrape",
              "body": "={{JSON.parse($parameter[\"urls\"])}}",
              "method": "POST"
            }
          }
        },
        {
          "name": "Trigger Collection By URL",
          "value": "triggerCollectionByUrl",
          "action": "Initiate batch extraction from URL",
          "routing": {
            "request": {
              "qs": {
                "notify": "={{$parameter[\"notify\"]}}",
                "endpoint": "={{$parameter[\"endpoint\"]}}",
                "dataset_id": "={{$parameter[\"dataset_id\"]}}"
              },
              "url": "/datasets/v3/trigger",
              "body": "={{JSON.parse($parameter[\"urls\"])}}",
              "method": "POST"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "webScrapper"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Web Search",
      "value": "WebSearch",
      "action": "Search the web and get serp results",
      "routing": {
        "request": {
          "url": "/request",
          "body": {
            "url": "={{`https://www.google.com/search?q=${encodeURIComponent($parameter[\"query\"])}&start=${(($parameter[\"page\"] || 1) - 1) * 10}&brd_json=1`}}",
            "zone": "={{$parameter[\"zone\"]}}",
            "format": "raw",
            "country": "={{$parameter[\"country\"]}}"
          },
          "method": "POST"
        }
      },
      "resource": "webUnlocker"
    },
    {
      "name": "Send a Request",
      "value": "request",
      "action": "Access and extract data from a specific URL",
      "routing": {
        "request": {
          "url": "/request",
          "body": {
            "url": "={{$parameter[\"url\"]}}",
            "zone": "={{$parameter[\"zone\"]}}",
            "format": "={{$parameter[\"data_format\"] === \"markdown\" ? \"raw\" : $parameter[\"format\"]}}",
            "method": "={{$parameter[\"method\"]}}",
            "country": "={{$parameter[\"country\"]}}",
            "data_format": "={{$parameter[\"data_format\"] || undefined}}"
          },
          "method": "POST"
        }
      },
      "resource": "webUnlocker"
    },
    {
      "name": "Deliver Snapshot",
      "value": "deliverSnapshot",
      "action": "Deliver a snapshot to specified storage",
      "routing": {
        "request": {
          "url": "/datasets/snapshots/{{$parameter[\"snapshot_id\"]}}/deliver",
          "method": "POST"
        }
      },
      "resource": "marketplaceDataset"
    },
    {
      "name": "Filter Dataset",
      "value": "filterDataset",
      "action": "Filter a dataset to create a snapshot",
      "routing": {
        "request": {
          "url": "/datasets/filter",
          "body": "={{\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"dataset_id\": $parameter[\"dataset_id\"].value || $parameter[\"dataset_id\"],\n\t\t\t\t\t\t\t\t\"records_limit\": $parameter[\"records_limit\"],\n\t\t\t\t\t\t\t\t\"filter\": $parameter[\"filter_type\"] === \"filter_single\" \n\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\"name\": $parameter[\"field_name\"],\n\t\t\t\t\t\t\t\t\t\t\"operator\": $parameter[\"field_operator\"], \n\t\t\t\t\t\t\t\t\t\t\"value\": $parameter[\"field_value\"]\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t: $parameter[\"filter_type\"] === \"filters_group\"\n\t\t\t\t\t\t\t\t\t? JSON.parse($parameter[\"filters_group\"])\n\t\t\t\t\t\t\t\t\t: {}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}",
          "method": "POST"
        }
      },
      "resource": "marketplaceDataset"
    },
    {
      "name": "Get Dataset Metadata",
      "value": "getDatasetMetadata",
      "action": "Retrieve metadata for a specific dataset by dataset id",
      "routing": {
        "request": {
          "url": "=/datasets/{{$parameter[\"dataset_id\"]}}/metadata",
          "method": "GET"
        }
      },
      "resource": "marketplaceDataset"
    },
    {
      "name": "Get Snapshot Content",
      "value": "getSnapshotContent",
      "action": "Retrieve data by snapshot id",
      "routing": {
        "request": {
          "qs": {
            "part": "={{$parameter[\"part\"]}}",
            "format": "={{$parameter[\"format\"]}}",
            "compress": "={{$parameter[\"compress\"] || false}}",
            "batch_size": "={{$parameter[\"batch_size\"]}}"
          },
          "url": "=/datasets/snapshots/{{$parameter[\"snapshot_id\"]}}/download",
          "method": "GET"
        }
      },
      "resource": "marketplaceDataset"
    },
    {
      "name": "Get Snapshot Metadata",
      "value": "getSnapshotMetadata",
      "action": "Get metadata for a selected snapshot by snapshot id",
      "routing": {
        "request": {
          "url": "=/datasets/snapshots/{{$parameter[\"snapshot_id\"]}}",
          "method": "GET"
        }
      },
      "resource": "marketplaceDataset"
    },
    {
      "name": "Get Snapshot Parts",
      "value": "getSnapshotParts",
      "action": "Split snapshot data to parts by snapshot id",
      "routing": {
        "request": {
          "url": "=/datasets/snapshots/{{$parameter[\"snapshot_id\"]}}/parts",
          "method": "GET"
        }
      },
      "resource": "marketplaceDataset"
    },
    {
      "name": "List Datasets",
      "value": "listDatasets",
      "action": "List available datasets",
      "routing": {
        "request": {
          "url": "/datasets/list",
          "method": "GET"
        }
      },
      "resource": "marketplaceDataset"
    },
    {
      "name": "List Snapshots",
      "value": "listSnapshots",
      "action": "List all your snapshot ids",
      "routing": {
        "request": {
          "url": "/datasets/snapshots",
          "method": "GET"
        }
      },
      "resource": "marketplaceDataset"
    },
    {
      "name": "Deliver Snapshot",
      "value": "deliverSnapshot",
      "action": "Deliver a snapshot to specified storage",
      "routing": {
        "request": {
          "url": "/datasets/v3/deliver/{{$parameter[\"snapshot_id\"]}}",
          "method": "POST"
        }
      },
      "resource": "webScrapper"
    },
    {
      "name": "Download Snapshot",
      "value": "downloadSnapshot",
      "action": "Download the snapshot content",
      "routing": {
        "request": {
          "url": "=/datasets/v3/snapshot/{{$parameter[\"snapshot_id\"]}}",
          "method": "GET"
        }
      },
      "resource": "webScrapper"
    },
    {
      "name": "Get Snapshots",
      "value": "getSnapshots",
      "action": "Get filtered snapshots",
      "routing": {
        "request": {
          "qs": {
            "skip": "={{$parameter[\"skip\"]}}",
            "limit": "={{$parameter[\"limit\"]}}",
            "status": "={{$parameter[\"status\"]}}",
            "to_date": "={{$parameter[\"to_date\"]}}",
            "from_date": "={{$parameter[\"from_date\"]}}",
            "dataset_id": "={{$parameter[\"dataset_id\"]}}"
          },
          "url": "/datasets/v3/snapshots",
          "method": "GET"
        }
      },
      "resource": "webScrapper"
    },
    {
      "name": "Monitor Progress Snapshot",
      "value": "monitorProgressSnapshot",
      "action": "Check the status of a batch extraction",
      "routing": {
        "request": {
          "url": "=/datasets/v3/progress/{{$parameter[\"snapshot_id\"]}}",
          "method": "GET"
        }
      },
      "resource": "webScrapper"
    },
    {
      "name": "Scrape By URL",
      "value": "scrapeByUrl",
      "action": "Extract structured data from a single URL",
      "routing": {
        "request": {
          "qs": {
            "format": "={{$parameter[\"format\"]}}",
            "dataset_id": "={{$parameter[\"dataset_id\"]}}",
            "include_errors": "={{$parameter[\"include_errors\"]}}"
          },
          "url": "/datasets/v3/scrape",
          "body": "={{JSON.parse($parameter[\"urls\"])}}",
          "method": "POST"
        }
      },
      "resource": "webScrapper"
    },
    {
      "name": "Trigger Collection By URL",
      "value": "triggerCollectionByUrl",
      "action": "Initiate batch extraction from URL",
      "routing": {
        "request": {
          "qs": {
            "notify": "={{$parameter[\"notify\"]}}",
            "endpoint": "={{$parameter[\"endpoint\"]}}",
            "dataset_id": "={{$parameter[\"dataset_id\"]}}"
          },
          "url": "/datasets/v3/trigger",
          "body": "={{JSON.parse($parameter[\"urls\"])}}",
          "method": "POST"
        }
      },
      "resource": "webScrapper"
    }
  ]

npm_readme:
  ![Banner image](images/n8n-and-n8nhackers.png)

  # n8n-nodes-brightdata

  This is an n8n community node. It helps you to use [Bright Data APIs](https://docs.brightdata.com/scraping-automation/introduction) from n8n.

  If you have any questions or remarks please [contact me](mailto:support@n8nhackers.com).

  [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.

  ## Installation

  Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.

  ## Compatibility

  This node was developed and tested with n8n version 1.81.4

  ## Resources

  This node currently supports the next Resources:

  ### Marketplace Dataset

  Bright Data’s Marketplace DataSet API allows access to a centralized platform providing regularly updated, ethically sourced datasets from multiple domains, offering flexible solutions for data customization and acquisition.

  The next operations are available:

  - Deliver Snapshot
  - Filter Dataset
  - Get Dataset Metadata
  - Get Snapshot Content
  - Get Snapshot Metadata
  - Get Snapshot Parts
  - List Datasets

  Ideal for:

  - Access to datasets across 120+ domains.
  - High-quality, ethically sourced data ensuring accuracy and compliance.
  - Regular updates from publicly available information.
  - Ready-to-use and on-demand solutions.
  - Flexible purchase options with comprehensive customization.
  - Suitable for various fields like social media, real estate, B2B data, and AI training.

  ### Web Unlocker

  Bright Data’s Web Unlocker API makes data collection easy by managing proxies and avoiding blocks.

  Just send an API request with the target website, and get clean HTML/JSON responses.

  The Web Unlocker handles:

  - Optimal proxy selection
  - Custom headers
  - Fingerprinting
  - CAPTCHAs

  Ideal for:

  - Scraping any website without blocks
  - Emulating real-user behavior
  - Teams without proxy infrastructure
  - Paying only for successful requests
  - [Premium domains](https://docs.brightdata.com/scraping-automation/web-unlocker/features#current-list-of-premium-domains) hard to be scraped (MediaMarkt, Hermes... )

  Please, follow [documentation](https://docs.brightdata.com/scraping-automation/web-unlocker/introduction) to setup this API.

  #### Usage

  - Resource: choose Unlocker API
    - Operation: choose "Send a Request".
      - Properties:
        - zone: Choose between your existing zone names.
        - url: The target URL you wish to access via Web Unlocker API.
        - method: The method to call the target URL.
        - format: Defines the response format. Use raw to receive the raw response from the target site. JSON is simpler for managing the output.
        - country: The country you will use to access the target URL.

  ### TL;DR - WebUnlocker

  ![Get deals of the day](images/workflow-sample.png?raw=true "Get deals of the day")

  Don't want to read? Install n8n-nodes-brightdata in your n8n from Settings / Community nodes. Copy the URL of [Get deals of the day](https://raw.githubusercontent.com/n8nhackers/n8n-nodes-brightdata/refs/heads/main/use-cases/workflow-sample.json "Get deals of the day") and paste into "Import for URL" submenu at n8n.

  This n8n workflow automates the process of collecting and delivering the "Deals of the Day" from MediaMarkt, specifically tailored to user preferences, and sends those deals via email.

  This workflow is useful for automating product deal recommendations based on user input and sending personalized emails with the best deals available.

  #### Workflow Overview:

  1. **User Interaction via Form**:
     - The user submits a form where they can select categories (such as appliances, cell phones, etc.) and provide their email address. This triggers the workflow to gather personalized deals based on their input.
  2. **Data Extraction**:
     - Once the form is submitted, the workflow calls **Bright Data** community node to scrape data from the MediaMarkt website (`https://www.mediamarkt.es/es/campaign/campanas-y-ofertas`) using a proxy service. The data is retrieved in JSON format.
  3. **HTML Content Extraction**:
     - The raw HTML content from the website is extracted, focusing on the title and body, which are key to processing the content for recommendation.
  4. **Recommendation Generation using OpenAI**:
     - The extracted data is processed through **OpenAI** (GPT-4o-mini) to generate a list of recommended deals. This involves categorizing deals based on the user-selected categories, and filtering or translating content if necessary. The deal list includes properties like name, description, price, and a link.
  5. **Data Structuring**:
     - The generated list of deals is split into individual deal items using **SplitOut**.
  6. **Document Creation**:
     - Using **[Document Generator](https://www.npmjs.com/package/n8n-nodes-document-generator)** community node, an HTML template is populated with the recommended deals and structured into a user-friendly format.
  7. **Email Delivery**:
     - The document containing the recommended deals is sent to the user's email via **SMTP email send** with a personalized message that includes the list of deals.

  #### Workflow Connections:

  1. **Form Submission** → **Bright Data (Scrape Deals)**: The form triggers the request to scrape the MediaMarkt deals page.
  2. **Bright Data** → **HTML Extraction**: The scraped content is processed to extract key page data.
  3. **HTML Extraction** → **OpenAI (Deal Generation)**: The extracted content is used as input for GPT-4o-mini to generate deal recommendations.
  4. **OpenAI** → **SplitOut**: The results are split into individual deal items.
  5. **SplitOut** → **DocumentGenerator**: The items are formatted into an HTML document.
  6. **DocumentGenerator** → **Send Email**: The document is emailed to the user.

  #### Final Output:

  - The user receives an email with a personalized list of the best deals based on their selected categories.

  #### Credentials Used:

  - **Bright Data API**: For scraping data from MediaMarkt.
  - **OpenAI API**: To generate the list of recommended deals using GPT-4o-mini.
  - **SMTP**: For sending the email with the deals.

  #### External nodes Used:

  - **[Bright Data](https://www.npmjs.com/package/n8n-nodes-brightdata)**: For scrapping data from MediaMarkt.
  - **[Document Generator](https://www.npmjs.com/package/n8n-nodes-document-generator)**: For generating html output using templates.

  ### TL;DR - Marketplace Dataset

  ![Marketplace Datasets](images/marketplace-dataset-workflow-sample.png?raw=true "Marketplace Datasets")

  New Marketplace Dataset API allows to create custom snapshots by filtering existing Bright Data datasets (more than [160 datasets](https://docs.brightdata.com/datasets/introduction)).

  Datasets are updated by Bright Data, so you don't have to scrape anything.

  Your can get a list of records from the full dataset without scrapping the records by yourself. This is faster and cheaper than adquiring data from zero.
  You can use datasets to build custom AI Agents like:

  - Real Estate Agent to search houses to buy
  - Candidates Agent to search future workers

  Current existing datasets allow to get data from:

  - LinkedIn
  - Instagram
  - Facebook
  - Airbnb
  - Crunchbase
  - And many more (use operation 'List Datasets' to get all)

  Install n8n-nodes-brightdata in your n8n from Settings / Community nodes. Copy the URL of [Get Marketplace Functions](https://raw.githubusercontent.com/n8nhackers/n8n-nodes-brightdata/refs/heads/main/use-cases/marketplace-dataset-workflow-sample.json) and paste into "Import for URL" submenu at n8n.

  ### TL;DR - More samples

  You can also use the next ready-to-use samples for your n8n (self-hosted version):

  - [Update LinkedIn Profiles one by one with Bright Data and Google Sheets with no scrapping](https://raw.githubusercontent.com/n8nhackers/n8n-nodes-brightdata/refs/heads/main/use-cases/Update_LinkedIn_Profiles_one_by_one_with_Bright_Data_and_Google_Sheets_with_no_scrapping.json)![Update LinkedIn Profiles](images/Update_LinkedIn_Profiles_one_by_one_with_Bright_Data_and_Google_Sheets_with_no_scrapping.png?raw=true "Update LinkedIn Profiles")
  - [Create a Prospect list for Commercial purposes with Google Search and Bright Data on-demand](https://raw.githubusercontent.com/n8nhackers/n8n-nodes-brightdata/refs/heads/main/use-cases/Create_a_Prospect_list_for_Commercial_purposes_with_Google_Search_and_Bright_Data_on_demand.json)![Create a Prospect List](images/Create_a_Prospect_list_for_Commercial_purposes_with_Google_Search_and_Bright_Data_on_demand.png?raw=true "Create a Prospect List")

  # Changelog

  Here you can find the list of changes applied to this node:

  - 0.1.33: Add samples for WebScrapper/Scrape By URL and WebScrapper/Create Snapshot
  - 0.1.32: Fix equals on MarketplaceDataset/filterSnapshot
  - 0.1.31: Add webScrapper/downloadSnapshot
  - 0.1.30: Add webScrapper/deliverSnapshot + Fix webScrapper/getSnapshots
  - 0.1.29: Fix error on Marketplace/Get Snapshot Content
  - 0.1.28: Fix errors on webScrapper resource
  - 0.1.25: Create Resource for WebScrapper API
  - 0.1.24: Return listDatasets in items output property
  - 0.1.23: Add notify webhook to "Marketplace Dataset API/Trigger Snapshot by URL"
  - 0.1.22: Return clear messages on API errors + improve filter Dataset
  - 0.1.21: Add getSnapshots + Trigger snapshots to generate snapshots on demand
  - 0.1.20: Added support to use Bright Data as an AI Agent tool
  - 0.1.19: Added support for Marketplace DataSet endpoints
  - 0.1.11: Added support for using this node as tool from an Agent

  # Contribution

  To make this node even better, please let us know, [how you use it](mailto:support@n8nhackers.com). Commits are always welcome.

  You can test this node following the next instructions:

  ```sh
  git clone git@github.com:n8nhackers/n8n-nodes-brightdata.git
  cd n8n-nodes-brightdata
  nvm use
  npm install -g n8n
  yarn install
  npm run build
  npm link
  mkdir ~/.n8n/custom/
  cd ~/.n8n/custom/
  npm link n8n-nodes-brightdata
  cd ..
  n8n start
  ```

  # Issues

  If you have any issues, please [let us know on GitHub](https://github.com/n8nhackers/n8n-nodes-brightdata/issues).

  # About

  Nodes by [n8nhackers.com](https://n8nhackers.com). For productive use and consulting on this, [contact us please](mailto:support@n8nhackers.com).

  Special thanks to [N8n nodemation](https://n8n.io) workflow automation by Jan Oberhauser.

  # License

  [MIT](https://github.com/n8n-io/n8n-nodes-starter/blob/master/LICENSE.md)

ai_documentation_summary:
  {"purpose":"A community n8n node that enables interaction with Bright Data APIs to scrape websites using the Web Unlocker or access and manipulate datasets from the Bright Data Marketplace.","capabilities":["Web scraping via Web Unlocker API with proxy management","Access to 120+ domains through Marketplace Datasets","Filtering and customizing dataset content","Retrieving dataset metadata and snapshot parts","Handling CAPTCHAs and fingerprinting","Supporting custom headers and optimal proxy selection","Returning responses in raw or JSON format"],"authentication":"API key required (Bright Data credentials)","commonUseCases":["Scraping protected websites without IP blocks","Automating data collection for e-commerce deal tracking","Accessing ethically sourced B2B or social media datasets","Generating personalized content based on scraped data"],"limitations":["Community node (may lack official support)","Compatible with n8n version 1.81.4","Requires Bright Data API access and potential subscription for premium domains"],"relatedNodes":["HTTP Request","OpenAI","SplitInArray","SplitInFields","Document Generator"]}


node_type: @gammatech/n8n-nodes-gamma.gamma
package_name: @gammatech/n8n-nodes-gamma
display_name: Gamma
description: Create AI-powered presentations, documents, and websites with Gamma
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: max.jackson
author_github_url: https://github.com/gamma-app/n8n-nodes-gamma.git
npm_package_name: @gammatech/n8n-nodes-gamma
npm_version: 0.1.3
community_fetched_at: 2026-04-16T09:43:36.008Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "generation",
      "options": [
        {
          "name": "Generation",
          "value": "generation",
          "description": "Create and manage AI-generated presentations, documents, and social posts"
        },
        {
          "name": "Theme",
          "value": "theme",
          "description": "Browse available themes (read-only - use to get theme IDs)"
        },
        {
          "name": "Folder",
          "value": "folder",
          "description": "Browse workspace folders (read-only - use to get folder IDs)"
        },
        {
          "name": "User",
          "value": "user",
          "description": "Get your account information"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a generation",
          "routing": {
            "request": {
              "url": "/v1.0/generations",
              "method": "POST"
            }
          },
          "description": "Create a new presentation, document, social post, or webpage"
        },
        {
          "name": "Create from Template",
          "value": "createFromTemplate",
          "action": "Create from template",
          "routing": {
            "request": {
              "url": "/v1.0/generations/from-template",
              "method": "POST"
            }
          },
          "description": "Remix an existing Gamma with new prompt"
        },
        {
          "name": "Get Status",
          "value": "getStatus",
          "action": "Get generation status",
          "routing": {
            "request": {
              "url": "=/v1.0/generations/{{$parameter[\"generationId\"]}}",
              "method": "GET"
            }
          },
          "description": "Check the status of a generation"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "generation"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "List",
          "value": "list",
          "action": "List themes",
          "routing": {
            "request": {
              "url": "/v1.0/themes",
              "method": "GET"
            }
          },
          "description": "Get available themes from your workspace"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "theme"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "List",
          "value": "list",
          "action": "List folders",
          "routing": {
            "request": {
              "url": "/v1.0/folders",
              "method": "GET"
            }
          },
          "description": "Get workspace folders"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "folder"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMe",
      "options": [
        {
          "name": "Get Me",
          "value": "getMe",
          "action": "Get user information",
          "routing": {
            "request": {
              "url": "/v1.0/me",
              "method": "GET"
            }
          },
          "description": "Get authenticated user and workspace information"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create",
      "value": "create",
      "action": "Create a generation",
      "routing": {
        "request": {
          "url": "/v1.0/generations",
          "method": "POST"
        }
      },
      "description": "Create a new presentation, document, social post, or webpage",
      "resource": "generation"
    },
    {
      "name": "Create from Template",
      "value": "createFromTemplate",
      "action": "Create from template",
      "routing": {
        "request": {
          "url": "/v1.0/generations/from-template",
          "method": "POST"
        }
      },
      "description": "Remix an existing Gamma with new prompt",
      "resource": "generation"
    },
    {
      "name": "Get Status",
      "value": "getStatus",
      "action": "Get generation status",
      "routing": {
        "request": {
          "url": "=/v1.0/generations/{{$parameter[\"generationId\"]}}",
          "method": "GET"
        }
      },
      "description": "Check the status of a generation",
      "resource": "generation"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List themes",
      "routing": {
        "request": {
          "url": "/v1.0/themes",
          "method": "GET"
        }
      },
      "description": "Get available themes from your workspace",
      "resource": "theme"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List folders",
      "routing": {
        "request": {
          "url": "/v1.0/folders",
          "method": "GET"
        }
      },
      "description": "Get workspace folders",
      "resource": "folder"
    },
    {
      "name": "Get Me",
      "value": "getMe",
      "action": "Get user information",
      "routing": {
        "request": {
          "url": "/v1.0/me",
          "method": "GET"
        }
      },
      "description": "Get authenticated user and workspace information",
      "resource": "user"
    }
  ]

npm_readme:
  # @gammatech/n8n-nodes-gamma

  Official Gamma community node for n8n - Create AI-powered presentations, documents, and websites directly from your n8n workflows.

  **Status:** Published to npm ✅  
  **Created:** November 10, 2025  
  **Maintained by:** Max Jackson (Gamma)

  ---

  ## 🎯 What This Does

  Integrates Gamma's API v1.0 into n8n, allowing you to:
  - Generate presentations, documents, social posts, and webpages with AI
  - Create content from templates
  - List themes and folders
  - Export to PDF/PPTX
  - Automate content creation workflows

  ---

  ## 📦 Installation

  ### Option 1: From npm (After Publishing)

  ```bash
  # In n8n
  Settings → Community Nodes → Install
  # Enter: @gammatech/n8n-nodes-gamma
  ```

  ### Option 2: Local Development

  ```bash
  # Clone and build
  git clone <this-repo>
  cd n8n-gamma-node
  npm install
  npm run build
  npm link

  # In your n8n installation
  cd ~/.n8n/custom
  npm link n8n-nodes-gamma

  # Start n8n
  n8n start
  ```

  ---

  ## 🏗️ Project Structure

  Based on Gamma's OpenAPI spec and using `@devlikeapro/n8n-openapi-node` for generation.

  ```
  n8n-gamma-node/
  ├── GAMMA_API_OPENAPI_SPEC.yaml   # OpenAPI spec (copied from root)
  ├── package.json                   # npm package config
  ├── tsconfig.json                  # TypeScript config
  ├── .gitignore
  ├── credentials/
  │   └── GammaApi.credentials.ts   # API key authentication
  ├── nodes/
  │   └── Gamma/
  │       ├── Gamma.node.ts         # Main node (generated from OpenAPI)
  │       ├── Gamma.node.json       # Node metadata
  │       └── gamma.svg             # Gamma logo icon
  ├── docs/
  │   ├── SETUP.md                  # Setup and development guide
  │   ├── PUBLISHING.md             # How to publish to npm
  │   ├── VERIFICATION.md           # n8n verification process
  │   └── n8n-resources.md          # All n8n documentation links
  └── examples/
      ├── basic-presentation.json   # Simple workflow example
      ├── zapier-alternative.json   # Replacing Zapier
      └── content-pipeline.json     # Advanced automation
  ```

  ---

  ## 🚀 Quick Start (Development)

  ### Prerequisites

  - Node.js 18+ (LTS recommended)
  - npm or pnpm
  - n8n installed globally (`npm install n8n -g`)

  ### Development Workflow

  ```bash
  # 1. Install dependencies
  npm install

  # 2. Build the node
  npm run build

  # 3. Link to local n8n
  npm link
  cd ~/.n8n/custom
  npm link n8n-nodes-gamma

  # 4. Start n8n
  n8n start

  # 5. Open browser at http://localhost:5678
  # Search for "Gamma" in nodes panel
  ```

  ### Watch Mode (Auto-rebuild)

  ```bash
  npm run dev
  # Rebuilds automatically on file changes
  ```

  ---

  ## 🔑 Authentication

  The node requires a Gamma API key:

  1. Log into [gamma.app](https://gamma.app)
  2. Go to Settings & Members → API
  3. Generate API key
  4. Copy key (starts with `sk-gamma-`)
  5. In n8n: Create credential → Gamma API
  6. Paste API key

  ---

  ## 📚 Available Operations

  ### Generations Resource

  **Create Generation**
  - Generate presentations, documents, social posts, or webpages
  - Parameters: inputText, textMode, format, numCards, themeId, imageOptions, etc.
  - Returns: generationId for status polling

  **Get Generation Status**
  - Poll for generation completion
  - Returns: status, gammaUrl, exportUrl, credits used

  **Create from Template**
  - Remix existing Gamma with new prompt
  - Parameters: prompt, gammaId (template), themeId, imageOptions
  - Returns: generationId

  ### Themes Resource

  **List Themes**
  - Get available themes for styling
  - Parameters: limit, query (search), cursor (pagination)
  - Returns: themes with IDs and names

  ### Folders Resource

  **List Folders**
  - Get workspace folders for organization
  - Parameters: limit, query (search), cursor (pagination)
  - Returns: folders with IDs and names

  ### User Resource

  **Get Me**
  - Get authenticated user info
  - Returns: email, workspaceName

  ---

  ## 🎨 Example Workflows

  ### ⚡ Auto-Polling Workflow (Recommended!)

  **Problem**: Gamma generations are async and take 30-90 seconds to complete.  
  **Solution**: Use our auto-polling workflow template!

  📥 **Import the workflow**: `examples/auto-polling-workflow.json`

  This workflow automatically:
  - ✅ Creates the generation
  - ✅ Waits 30 seconds
  - ✅ Checks status
  - ✅ Loops until completed
  - ✅ Outputs gammaUrl when done

  **No more manual clicking!** This gives users a much better experience.

  ### Basic: Generate Presentation (Manual Polling)

  ```
  Trigger (Manual/Schedule)
      ↓
  Gamma: Create Generation
      - inputText: "Introduction to renewable energy"
      - format: presentation
      - textMode: generate
      - numCards: 10
      ↓
  Gamma: Get Generation Status 
      (Click Execute repeatedly until status = "completed")
      ↓
  Send Email with gammaUrl
  ```

  ⚠️ **Note**: Manual polling requires clicking "Execute" every 30 seconds. Use the auto-polling workflow above for better UX!

  ### Advanced: Content Pipeline

  ```
  RSS Feed (New Article)
      ↓
  Extract Content
      ↓
  Gamma: Create Generation
      - inputText: {{article content}}
      - format: presentation
      ↓
  Wait for Completion (poll)
      ↓
  Gamma: Create from Template (social version)
      - gammaId: {{generated gammaId}}
      - format: social
      ↓
  Post to Social Media
  ```

  ---

  ## 🛠️ Development Guide

  ### Built With

  - **TypeScript** - Node language
  - **@devlikeapro/n8n-openapi-node** - OpenAPI → n8n generator
  - **n8n-workflow** - n8n node types
  - **Gamma OpenAPI v3 spec** - API specification

  ### Key Files

  **`nodes/Gamma/Gamma.node.ts`**
  - Main node implementation
  - Auto-generated from OpenAPI spec using `@devlikeapro/n8n-openapi-node`
  - Handles all API operations

  **`credentials/GammaApi.credentials.ts`**
  - API key authentication
  - Header: `X-API-KEY`

  **`package.json`**
  - npm package configuration
  - MUST include `n8n-community-node-package` in keywords
  - MUST start with `n8n-nodes-`

  ---

  ## 📝 Publishing

  ### To npm (Unverified)

  ```bash
  # 1. Update version
  npm version patch  # or minor, major

  # 2. Build
  npm run build

  # 3. Publish
  npm publish
  ```

  Anyone with self-hosted n8n can install immediately.

  ### For Verification (n8n Cloud)

  Requirements for verified community nodes:
  - ✅ MIT license
  - ✅ No runtime dependencies in package.json
  - ✅ Passes `npm run lint`
  - ✅ Good documentation
  - ✅ Follows n8n conventions

  **Steps:**
  1. Publish to npm (unverified first)
  2. Submit via [n8n Creator Portal](https://n8n.io/creators)
  3. Wait for manual review
  4. Once approved → available on n8n Cloud

  See `docs/VERIFICATION.md` for details.

  ---

  ## 🔗 Resources

  **Official Gamma:**
  - API Docs: https://developers.gamma.app
  - Help Center: https://help.gamma.app
  - API Slack: [Contact for access]

  **n8n Documentation:**
  - Creating Nodes: https://docs.n8n.io/integrations/creating-nodes/
  - Community Nodes: https://docs.n8n.io/integrations/community-nodes/
  - Declarative Style: https://docs.n8n.io/integrations/creating-nodes/build/declarative-style-node/

  **OpenAPI Generator:**
  - devlikeapro/n8n-openapi-node: https://github.com/devlikeapro/n8n-openapi-node
  - npm package: https://www.npmjs.com/package/@devlikeapro/n8n-openapi-node

  ---

  ## 💪 Why This Matters for Gamma

  ### Developer Relations Play

  **This n8n node:**
  - Expands Gamma's automation ecosystem beyond Zapier/Make
  - Reaches self-hosted automation users (enterprises, privacy-focused)
  - Shows commitment to open integration ecosystem
  - Provides reference implementation for community

  **For your DevRel role:**
  - Demonstrates technical ability (built official integration)
  - Shows ownership (end-to-end from spec to published node)
  - Community engagement (support users in n8n forums)
  - Content creation opportunity (tutorials, videos, blog posts)

  ---

  ## 📊 Success Metrics

  Track these to show impact:
  - npm downloads/week
  - n8n Cloud installations (after verification)
  - Community forum mentions
  - GitHub stars/forks
  - Support tickets reduced (self-service via node)

  ---

  ## 🎯 Roadmap

  **Phase 1: MVP** (You are here)
  - [x] Project setup
  - [ ] Generate node from OpenAPI spec
  - [ ] Test locally
  - [ ] Publish to npm (unverified)

  **Phase 2: Polish**
  - [ ] Add examples folder with workflows
  - [ ] Create video tutorial
  - [ ] Write blog post
  - [ ] Submit for verification

  **Phase 3: Growth**
  - [ ] Community support in n8n forums
  - [ ] Advanced workflow examples
  - [ ] Integration guides
  - [ ] Case studies

  ---

  ## 👥 Contributing

  This is an official Gamma integration. For bugs or features:
  - Internal: Message Max directly
  - External (after publishing): GitHub issues

  ---

  **Status:** Published to npm ✅  
  **Next Step:** Continue n8n review / listing workflow as needed

  See `docs/SETUP.md` for complete development guide.

ai_documentation_summary:
  {"purpose":"This n8n community node integrates with Gamma's API to create AI-powered presentations, documents, social posts, and webpages directly from workflows.","capabilities":["Generate presentations, documents, social posts, and webpages from text prompts","Create content from existing Gamma templates","List available themes and workspace folders","Export generated content to PDF and PPTX formats","Retrieve generation status and URLs (gammaUrl, exportUrl)","Get authenticated user information"],"authentication":"API key required (Gamma API key starting with 'sk-gamma-')","commonUseCases":["Automated content creation from RSS feeds or external data sources","Scheduled generation of presentations or social media posts","Content pipelines that convert articles into presentations","Template-based content remixing for different formats"],"limitations":["Generations are asynchronous and require polling for completion (30-90 seconds)","Manual polling requires repeated execution clicks; auto-polling workflow recommended","Requires npm installation and potential local development setup for community nodes","Some advanced features may require n8n Cloud verification for publishing"],"relatedNodes":["Manual Trigger","Schedule Trigger","Wait Node","HTTP Request Node","Function Node"]}


node_type: n8n-nodes-pdfbolt.pdfBolt
package_name: n8n-nodes-pdfbolt
display_name: PDFBolt
description: Generate PDFs from HTML, URLs, and templates with PDFBolt API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: pdfbolt
author_github_url: https://github.com/pdfbolt/
npm_package_name: n8n-nodes-pdfbolt
npm_version: 0.1.5
community_fetched_at: 2026-04-16T09:43:36.009Z
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "convertHtml",
      "options": [
        {
          "name": "Convert HTML to PDF",
          "value": "convertHtml",
          "action": "Convert HTML to PDF",
          "description": "Paste your HTML code and get a PDF file"
        },
        {
          "name": "Convert Template to PDF",
          "value": "convertTemplate",
          "action": "Convert template to PDF",
          "description": "Use a PDFBolt template with your JSON data to generate a PDF"
        },
        {
          "name": "Convert URL to PDF",
          "value": "convertUrl",
          "action": "Convert URL to PDF",
          "description": "Enter a webpage URL and get a PDF of that page"
        },
        {
          "name": "Get Usage",
          "value": "getUsage",
          "action": "Get API usage",
          "description": "Check your plan, remaining conversions, and expiry date"
        }
      ],
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Convert HTML to PDF",
      "value": "convertHtml",
      "action": "Convert HTML to PDF",
      "description": "Paste your HTML code and get a PDF file"
    },
    {
      "name": "Convert Template to PDF",
      "value": "convertTemplate",
      "action": "Convert template to PDF",
      "description": "Use a PDFBolt template with your JSON data to generate a PDF"
    },
    {
      "name": "Convert URL to PDF",
      "value": "convertUrl",
      "action": "Convert URL to PDF",
      "description": "Enter a webpage URL and get a PDF of that page"
    },
    {
      "name": "Get Usage",
      "value": "getUsage",
      "action": "Get API usage",
      "description": "Check your plan, remaining conversions, and expiry date"
    }
  ]

npm_readme:
  # n8n-nodes-pdfbolt

  This is an [n8n](https://n8n.io/) community node for [PDFBolt](https://pdfbolt.com) – a scalable and privacy-first PDF generation API.

  Convert HTML content, URLs, and templates to high-quality PDFs directly from your n8n workflows.

  ## Installation

  Follow the [n8n community node installation guide](https://docs.n8n.io/integrations/community-nodes/installation/).

  In your n8n instance:
  1. Go to **Settings** > **Community Nodes**
  2. Enter `n8n-nodes-pdfbolt`
  3. Click **Install**

  ## Operations

  | Operation | Description |
  |-----------|-------------|
  | **Convert HTML to PDF** | Paste your HTML code and get a PDF file |
  | **Convert URL to PDF** | Enter a webpage URL and get a PDF of that page |
  | **Convert Template to PDF** | Use a PDFBolt template with your JSON data to generate a PDF |
  | **Get Usage** | Check your plan, remaining conversions, and expiry date |

  ### Endpoints

  Each conversion operation supports three endpoints:

  | Endpoint | Description |
  |----------|-------------|
  | **Direct (PDF in Response)** | Get the PDF file immediately in the response. The simplest option. |
  | **Sync (PDF via URL)** | Get a download URL for the PDF (valid 24h) with conversion details. |
  | **Async (PDF via Webhook)** | Convert in the background and send the result to your webhook when ready. Best for large volumes. |

  ### Additional Options

  Fine-tune your PDF output with 30+ parameters:

  - **Page Layout** – format, orientation, dimensions, margins, scale, page ranges
  - **Output** – filename, compression, content disposition
  - **Header & Footer** – custom HTML templates with dynamic page numbers
  - **Rendering** – background graphics, media type, JavaScript, timeout, wait conditions
  - **Viewport & Device** – viewport size, mobile emulation, device scale factor
  - **HTTP** – cookies, custom headers, basic authentication
  - **Print Production** – PDF/X standards, color space (RGB/CMYK), ICC profiles

  ## Credentials

  You need a PDFBolt API key. Get one at [app.pdfbolt.com](https://app.pdfbolt.com/api-keys).

  ## Resources

  - [PDFBolt API Documentation](https://pdfbolt.com/docs)
  - [Conversion Parameters](https://pdfbolt.com/docs/parameters)
  - [PDFBolt Dashboard](https://app.pdfbolt.com)
  - [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/community-nodes/)

  ## License

  [MIT](LICENSE)


node_type: n8n-nodes-notte.notteTrigger
package_name: n8n-nodes-notte
display_name: Notte Trigger
description: Triggers on new Notte persona emails or SMS messages
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: notte-lucas
author_github_url: https://github.com/nottelabs/
npm_package_name: n8n-nodes-notte
npm_version: 0.1.6
community_fetched_at: 2026-04-16T09:43:36.010Z
npm_readme:
  # n8n-nodes-notte

  [n8n](https://n8n.io/) community node for [Notte](https://notte.cc) — AI browser automation, web scraping, and workflow execution.

  ## Features

  This node provides three modes of operation:

  ### Agent Mode
  Run an AI agent that autonomously performs browser tasks. Provide a URL and a natural language instruction — the node handles session lifecycle, agent execution, and polling automatically.

  - Structured output via JSON schema
  - Auto-login with Vault credentials
  - Persona identity support
  - Vision and captcha solving options

  ### Scrape Mode
  Extract structured data from any URL. Define a JSON schema for the output format and provide extraction instructions.

  - CSS selector scoping
  - Proxy and captcha support
  - Returns both markdown and structured JSON

  ### Function Mode
  Execute deployed Notte functions (authored via the [Notte CLI](https://docs.notte.cc)). Pass variables from your n8n workflow and get results back.

  - Key-value variable injection from n8n expressions
  - Configurable polling interval and timeout
  - Fire-and-forget or wait-for-completion

  ### Trigger Node
  Poll for new persona emails or SMS messages to kick off workflows automatically.

  ## Installation

  ### In n8n (recommended)
  1. Go to **Settings > Community Nodes**
  2. Search for `n8n-nodes-notte`
  3. Click **Install**

  ### Manual
  ```bash
  npm install n8n-nodes-notte
  ```

  ## Credentials

  You need a Notte API key. Get one at [notte.cc](https://notte.cc).

  | Field | Description |
  |-------|-------------|
  | API Key | Your Notte API key |
  | Base URL | API endpoint (default: `https://api.notte.cc`) |

  ## Example Workflows

  ### Scheduled competitor scraping
  ```
  Schedule Trigger → Notte (Scrape: competitor.com/pricing) → Google Sheets
  ```

  ### AI agent task with notifications
  ```
  Webhook Trigger → Notte (Agent: "sign up for trial on {{url}}") → Slack
  ```

  ### Run deployed automation
  ```
  Schedule Trigger → Notte (Function: fn_abc123, variables from sheet) → Email
  ```

  ### React to verification emails
  ```
  Notte Trigger (New Email on persona) → Notte (Agent: "click verification link") → Done
  ```

  ## Development

  ```bash
  # Install dependencies
  npm install

  # Build
  npm run build

  # Lint
  npm run lint

  # Dev mode (auto-reload in local n8n)
  npm run dev
  ```

  ## License

  [MIT](LICENSE)


node_type: n8n-nodes-imessage.photonIMessage
package_name: n8n-nodes-imessage
display_name: iMessage by Photon
description: Send, search, and manage iMessage conversations via the Photon server
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: photon_dev
author_github_url: https://github.com/photon-hq/
npm_package_name: n8n-nodes-imessage
npm_version: 0.3.5
community_fetched_at: 2026-04-16T09:43:36.010Z
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "message",
      "options": [
        {
          "name": "Chat",
          "value": "chat",
          "description": "Create and manage conversations"
        },
        {
          "name": "Contact",
          "value": "contact",
          "description": "Share contact cards"
        },
        {
          "name": "Handle",
          "value": "handle",
          "description": "Check iMessage availability"
        },
        {
          "name": "Message",
          "value": "message",
          "description": "Send, search, and manage messages"
        },
        {
          "name": "Poll",
          "value": "poll",
          "description": "Create and manage polls in chats"
        },
        {
          "name": "Scheduled Message",
          "value": "scheduledMessage",
          "description": "Schedule messages for later delivery"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "sendMessage",
      "options": [
        {
          "name": "Download Attachment",
          "value": "downloadAttachment",
          "action": "Download an attachment",
          "description": "Download a received file or media attachment"
        },
        {
          "name": "Edit Message",
          "value": "editMessage",
          "action": "Edit a message",
          "description": "Edit the text of a previously sent message"
        },
        {
          "name": "Get Messages",
          "value": "getMessages",
          "action": "Get messages",
          "description": "Retrieve messages from a chat"
        },
        {
          "name": "React to Message",
          "value": "reactToMessage",
          "action": "React to a message",
          "description": "Send a tapback reaction (love, like, laugh, etc.)"
        },
        {
          "name": "Search Messages",
          "value": "searchMessages",
          "action": "Search messages",
          "description": "Search messages by text content across chats"
        },
        {
          "name": "Send Attachment",
          "value": "sendAttachment",
          "action": "Send an attachment",
          "description": "Send a file attachment to a chat"
        },
        {
          "name": "Send Message",
          "value": "sendMessage",
          "action": "Send a message",
          "description": "Send a text message to a chat"
        },
        {
          "name": "Unsend Message",
          "value": "unsendMessage",
          "action": "Unsend a message",
          "description": "Retract a sent message (recipients will see it was unsent)"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listChats",
      "options": [
        {
          "name": "Create Chat",
          "value": "createChat",
          "action": "Create a chat",
          "description": "Start a new conversation with one or more participants"
        },
        {
          "name": "List Chats",
          "value": "listChats",
          "action": "List chats",
          "description": "Retrieve recent conversations with participants and last message"
        },
        {
          "name": "Mark Chat Read",
          "value": "markChatRead",
          "action": "Mark a chat as read",
          "description": "Mark all messages in a chat as read"
        },
        {
          "name": "Start Typing",
          "value": "startTyping",
          "action": "Start typing indicator",
          "description": "Show the typing bubble (…) in a chat"
        },
        {
          "name": "Stop Typing",
          "value": "stopTyping",
          "action": "Stop typing indicator",
          "description": "Hide the typing bubble"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "chat"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "createScheduledMessage",
      "options": [
        {
          "name": "Create Scheduled Message",
          "value": "createScheduledMessage",
          "action": "Create a scheduled message",
          "description": "Schedule a message to be sent at a future date/time"
        },
        {
          "name": "List Scheduled Messages",
          "value": "listScheduledMessages",
          "action": "List scheduled messages",
          "description": "Get all pending scheduled messages"
        },
        {
          "name": "Delete Scheduled Message",
          "value": "deleteScheduledMessage",
          "action": "Delete a scheduled message",
          "description": "Cancel and remove a scheduled message before it sends"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "scheduledMessage"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "createPoll",
      "options": [
        {
          "name": "Create Poll",
          "value": "createPoll",
          "action": "Create a poll",
          "description": "Create an interactive poll in a group chat"
        },
        {
          "name": "Vote",
          "value": "vote",
          "action": "Vote on a poll",
          "description": "Cast a vote on a poll option"
        },
        {
          "name": "Unvote",
          "value": "unvote",
          "action": "Remove vote from a poll",
          "description": "Remove your vote from a poll option"
        },
        {
          "name": "Add Option",
          "value": "addOption",
          "action": "Add a poll option",
          "description": "Add a new option to an existing poll"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "poll"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "shareContactCard",
      "options": [
        {
          "name": "Share Contact Card",
          "value": "shareContactCard",
          "action": "Share your contact card",
          "description": "Share your Name and Photo contact card in a chat"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "contact"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "checkAvailability",
      "options": [
        {
          "name": "Check iMessage Availability",
          "value": "checkAvailability",
          "action": "Check i message availability",
          "description": "Check if a phone number or email can receive iMessages"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "handle"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Download Attachment",
      "value": "downloadAttachment",
      "action": "Download an attachment",
      "description": "Download a received file or media attachment",
      "resource": "message"
    },
    {
      "name": "Edit Message",
      "value": "editMessage",
      "action": "Edit a message",
      "description": "Edit the text of a previously sent message",
      "resource": "message"
    },
    {
      "name": "Get Messages",
      "value": "getMessages",
      "action": "Get messages",
      "description": "Retrieve messages from a chat",
      "resource": "message"
    },
    {
      "name": "React to Message",
      "value": "reactToMessage",
      "action": "React to a message",
      "description": "Send a tapback reaction (love, like, laugh, etc.)",
      "resource": "message"
    },
    {
      "name": "Search Messages",
      "value": "searchMessages",
      "action": "Search messages",
      "description": "Search messages by text content across chats",
      "resource": "message"
    },
    {
      "name": "Send Attachment",
      "value": "sendAttachment",
      "action": "Send an attachment",
      "description": "Send a file attachment to a chat",
      "resource": "message"
    },
    {
      "name": "Send Message",
      "value": "sendMessage",
      "action": "Send a message",
      "description": "Send a text message to a chat",
      "resource": "message"
    },
    {
      "name": "Unsend Message",
      "value": "unsendMessage",
      "action": "Unsend a message",
      "description": "Retract a sent message (recipients will see it was unsent)",
      "resource": "message"
    },
    {
      "name": "Create Chat",
      "value": "createChat",
      "action": "Create a chat",
      "description": "Start a new conversation with one or more participants",
      "resource": "chat"
    },
    {
      "name": "List Chats",
      "value": "listChats",
      "action": "List chats",
      "description": "Retrieve recent conversations with participants and last message",
      "resource": "chat"
    },
    {
      "name": "Mark Chat Read",
      "value": "markChatRead",
      "action": "Mark a chat as read",
      "description": "Mark all messages in a chat as read",
      "resource": "chat"
    },
    {
      "name": "Start Typing",
      "value": "startTyping",
      "action": "Start typing indicator",
      "description": "Show the typing bubble (…) in a chat",
      "resource": "chat"
    },
    {
      "name": "Stop Typing",
      "value": "stopTyping",
      "action": "Stop typing indicator",
      "description": "Hide the typing bubble",
      "resource": "chat"
    },
    {
      "name": "Create Scheduled Message",
      "value": "createScheduledMessage",
      "action": "Create a scheduled message",
      "description": "Schedule a message to be sent at a future date/time",
      "resource": "scheduledMessage"
    },
    {
      "name": "List Scheduled Messages",
      "value": "listScheduledMessages",
      "action": "List scheduled messages",
      "description": "Get all pending scheduled messages",
      "resource": "scheduledMessage"
    },
    {
      "name": "Delete Scheduled Message",
      "value": "deleteScheduledMessage",
      "action": "Delete a scheduled message",
      "description": "Cancel and remove a scheduled message before it sends",
      "resource": "scheduledMessage"
    },
    {
      "name": "Create Poll",
      "value": "createPoll",
      "action": "Create a poll",
      "description": "Create an interactive poll in a group chat",
      "resource": "poll"
    },
    {
      "name": "Vote",
      "value": "vote",
      "action": "Vote on a poll",
      "description": "Cast a vote on a poll option",
      "resource": "poll"
    },
    {
      "name": "Unvote",
      "value": "unvote",
      "action": "Remove vote from a poll",
      "description": "Remove your vote from a poll option",
      "resource": "poll"
    },
    {
      "name": "Add Option",
      "value": "addOption",
      "action": "Add a poll option",
      "description": "Add a new option to an existing poll",
      "resource": "poll"
    },
    {
      "name": "Share Contact Card",
      "value": "shareContactCard",
      "action": "Share your contact card",
      "description": "Share your Name and Photo contact card in a chat",
      "resource": "contact"
    },
    {
      "name": "Check iMessage Availability",
      "value": "checkAvailability",
      "action": "Check i message availability",
      "description": "Check if a phone number or email can receive iMessages",
      "resource": "handle"
    }
  ]

npm_readme:
  # n8n-nodes-imessage

  [![npm version](https://img.shields.io/npm/v/n8n-nodes-imessage.svg)](https://www.npmjs.com/package/n8n-nodes-imessage)
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

  This is an n8n community node for [Photon iMessage](https://github.com/photon-hq/advanced-imessage-kit). It lets you send, receive, search, and automate iMessage conversations directly from your n8n workflows.

  [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.

  ## Prerequisites

  Photon hosts the iMessage server for you — no self-hosting required.

  1. Visit [photon.codes](https://photon.codes) to create an account
  2. Get your **Server URL** and **API Key** from the Photon dashboard

  ## Installation

  Follow the [n8n community nodes installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) to install `n8n-nodes-imessage` in your n8n instance.

  ```
  npm install n8n-nodes-imessage
  ```

  ## Credentials

  1. In n8n, go to **Credentials** and create a new **Photon iMessage API** credential
  2. Enter your **Server URL** — from your [Photon dashboard](https://photon.codes) (no trailing slash)
  3. Enter your **API Key** — from your [Photon dashboard](https://photon.codes), sent as an `X-API-Key` header on every request
  4. Click **Test** to verify the connection

  ## Nodes

  ### Photon iMessage (Action Node)

  Perform operations on your iMessage account.

  #### Message

  | Operation | Description |
  |-----------|-------------|
  | **Send Message** | Send a text message to a chat. Supports reply-to, message effects (confetti, fireworks, etc.), and subject lines. |
  | **Send Attachment** | Send a file from the server Mac to a chat. Supports voice messages. |
  | **Unsend Message** | Retract a sent message. |
  | **Edit Message** | Edit the text of a sent message. |
  | **React to Message** | Send a tapback reaction (love, like, dislike, laugh, emphasize, question). |
  | **Download Attachment** | Download a received file or media attachment. |
  | **Search Messages** | Search messages by text content across all chats or a specific chat. |
  | **Get Messages** | Retrieve messages from a chat with date range and sort options. |

  #### Chat

  | Operation | Description |
  |-----------|-------------|
  | **List Chats** | List all conversations with optional last message preview. |
  | **Create Chat** | Start a new conversation with one or more participants. |
  | **Mark Chat Read** | Mark all messages in a chat as read. |
  | **Start Typing** | Show the typing indicator in a chat. |
  | **Stop Typing** | Hide the typing indicator in a chat. |

  #### Contact

  | Operation | Description |
  |-----------|-------------|
  | **Share Contact Card** | Share your Name and Photo contact card in a chat. |

  #### Poll

  | Operation | Description |
  |-----------|-------------|
  | **Create Poll** | Create an interactive poll in a chat. |
  | **Vote** | Vote on a poll option. |
  | **Unvote** | Remove your vote from a poll option. |
  | **Add Option** | Add a new option to an existing poll. |

  #### Scheduled Message

  | Operation | Description |
  |-----------|-------------|
  | **Create Scheduled Message** | Schedule a message to send later. Supports one-time and recurring schedules (hourly, daily, weekly, monthly, yearly). |
  | **List Scheduled Messages** | View all pending scheduled messages. |
  | **Delete Scheduled Message** | Remove a scheduled message. |

  #### Handle

  | Operation | Description |
  |-----------|-------------|
  | **Check iMessage Availability** | Check if a phone number or email address supports iMessage. |

  ### Photon iMessage Trigger (Polling Trigger)

  Triggers your workflow when new iMessages are received.

  | Parameter | Description |
  |-----------|-------------|
  | **Chat GUID** | Only trigger for messages in a specific chat (leave blank for all). |
  | **Include Sent Messages** | Also trigger for messages you sent (default: off). |
  | **Max Messages Per Poll** | Maximum number of messages to fetch per poll interval (default: 100). |

  The trigger polls for new messages and tracks the last message timestamp to avoid duplicates.

  ## Chat GUID Format

  The Chat GUID identifies a conversation:

  - **iMessage DM**: `iMessage;-;+1234567890` or `iMessage;-;email@example.com`
  - **SMS DM**: `SMS;-;+1234567890`
  - **Group chat**: `iMessage;+;chat123456789`

  ## Resources

  - [Photon](https://photon.codes) — Get your API key and server URL
  - [Photon advanced-imessage-kit](https://github.com/photon-hq/advanced-imessage-kit) — The iMessage SDK
  - [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/community-nodes/)

  ## License

  [MIT](LICENSE)


node_type: @scrapeops/n8n-nodes-scrapeops.ScrapeOps
package_name: @scrapeops/n8n-nodes-scrapeops
display_name: ScrapeOps
description: Interact with ScrapeOps Proxy, Parser and Data APIs
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: lucashellison
author_github_url: https://github.com/scrapeops/n8n-community-node.git
npm_package_name: @scrapeops/n8n-nodes-scrapeops
npm_version: 0.2.7
community_fetched_at: 2026-04-16T09:43:36.011Z
ai_summary_generated_at: 2026-03-25 22:51:43
npm_readme:
  # ScrapeOps n8n Community Node

  [![npm version](https://badge.fury.io/js/%40scrapeops%2Fn8n-nodes-scrapeops.svg)](https://badge.fury.io/js/%40scrapeops%2Fn8n-nodes-scrapeops)
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

  The **[ScrapeOps n8n node](https://n8n.io/integrations/scrapeops/)** is a powerful integration that brings ScrapeOps' web scraping capabilities directly into your n8n workflows. This node allows you to leverage ScrapeOps' proxy aggregation, HTML parsing, and structured data extraction services without writing complex code.

  ![ScrapeOps N8N Node](https://scrapeops-assets-2.nyc3.cdn.digitaloceanspaces.com/Docs/n8n/n8n-scrapeops-node-integration.png)

  ## What is ScrapeOps?

  [ScrapeOps](https://scrapeops.io) provides a suite of tools to simplify web scraping operations:

  - **🔀 Proxy API**: Access high-quality proxies through a single endpoint for reliable web scraping
  - **📊 Parser API**: Extract structured data from HTML content of popular websites
  - **💾 Data API**: Retrieve and query data from ScrapeOps datasets

  ## ✨ Key Features

  ### 🔀 Proxy API
  - Smart proxy rotation across multiple providers
  - [JavaScript rendering support](https://scrapeops.io/docs/web-scraping-proxy-api-aggregator/advanced-functionality/headless-browser/) for dynamic sites
  - [Anti-bot bypass capabilities](https://scrapeops.io/docs/web-scraping-proxy-api-aggregator/advanced-functionality/anti-bot-bypass/) (Cloudflare, DataDome, etc.)
  - [Geo-targeting options](https://scrapeops.io/docs/web-scraping-proxy-api-aggregator/advanced-functionality/country-geotargeting/)
  - [Mobile and residential proxy support](https://scrapeops.io/docs/web-scraping-proxy-api-aggregator/advanced-functionality/residential-proxies/)
  - [Session management](https://scrapeops.io/docs/web-scraping-proxy-api-aggregator/advanced-functionality/sticky-sessions/) for multi-step scraping

  ### 📊 Parser API
  - Extract structured data from popular websites without maintaining your own parsers
  - **Supported Sites**: [Amazon](https://scrapeops.io/docs/parser-api/parsers/amazon-product-parser/), [eBay](https://scrapeops.io/docs/parser-api/parsers/ebay-product-parser/), [Walmart](https://scrapeops.io/docs/parser-api/parsers/walmart-product-parser/), [Indeed](https://scrapeops.io/docs/parser-api/parsers/indeed-product-parser/), [Redfin](https://scrapeops.io/docs/parser-api/parsers/redfin-product-parser/)
  - **Page Types**: Product pages, search results, reviews, categories
  - Returns clean, structured JSON data

  ### 💾 Data API
  - Direct access to structured data endpoints
  - **[Amazon Product API](https://scrapeops.io/docs/data-api/amazon-product-api/)**: Get product details by ASIN or URL
  - **[Amazon Search API](https://scrapeops.io/docs/data-api/amazon-product-search-api/)**: Search products and get structured results
  - No HTML scraping required - get data in a single request

  ---

  ## 📦 Installation

  ### Method 1: Install via n8n Cloud UI (Recommended)

  If you're using n8n Cloud, you can easily install the ScrapeOps node directly from the UI:

  1. **Sign in to n8n**, open the editor, and click **+** in the top right to open the Nodes panel

  ![Plus Sign in n8n](https://scrapeops-assets-2.nyc3.cdn.digitaloceanspaces.com/Docs/n8n/click_plus_n8n_scrapeops.png)

  2. **Search for "ScrapeOps"** node using the search bar. Look for the version marked by a badge ☑. Then, select **install**.

  ![Type ScrapeOps](https://scrapeops-assets-2.nyc3.cdn.digitaloceanspaces.com/Docs/n8n/type_scrapeops-n8n.png)

  3. The ScrapeOps node will be installed and appear in your node palette automatically.

  ### Method 2: Install via n8n Settings (Self-Hosted)

  For self-hosted n8n instances:

  1. Open your n8n instance
  2. Navigate to **Settings** → **Community Nodes**
  3. Click **Install a community node**
  4. Enter the package name: `@scrapeops/n8n-nodes-scrapeops`
  5. Click **Install**
  6. Restart your n8n instance when prompted

  ### Method 3: Manual Installation (Self-Hosted)

  ```bash
  # Navigate to your n8n installation directory
  cd ~/.n8n

  # Install the ScrapeOps node
  npm install @scrapeops/n8n-nodes-scrapeops

  # Restart n8n
  n8n start
  ```

  ### Method 4: Docker Installation

  For Docker users, add the node to your `docker-compose.yml`:

  ```yaml
  version: '3.8'
  services:
    n8n:
      image: n8nio/n8n
      environment:
        - N8N_COMMUNITY_NODES_ENABLED=true
        - NODE_FUNCTION_ALLOW_EXTERNAL=n8n-nodes-scrapeops
      volumes:
        - ~/.n8n:/home/node/.n8n
  ```

  Then install the node:

  ```bash
  docker exec -it <container_name> npm install @scrapeops/n8n-nodes-scrapeops
  docker restart <container_name>
  ```

  ---

  ## 🔑 Authentication

  ### Getting Your ScrapeOps API Key

  To use the ScrapeOps node, you'll need a **ScrapeOps API key** which you can get by signing up for a [free account here](https://scrapeops.io/app/register/proxy).

  **Steps to get your API key:**

  1. **Sign up for a free account** at [ScrapeOps](https://scrapeops.io/app/register/proxy)
  2. **Verify your email address** (required to activate your API key)
  3. **Visit your dashboard** at [ScrapeOps Dashboard](https://scrapeops.io/app/dashboard)
  4. **Copy your API key** from the dashboard

  ![Get The API Key](./images/scrapeops-dashboard.png)

  > ⚠️ **Important:** You must confirm your email address to activate your API key. Check your inbox for a verification email from ScrapeOps.

  ### Configure Credentials in n8n

  1. In n8n, go to **Credentials** → **Add Credential**.

  ![Create Credentials](https://scrapeops-assets-2.nyc3.cdn.digitaloceanspaces.com/Docs/n8n/create_credential_n8n.png)

  2. Search for **"ScrapeOps API"** and enter your API key.

  ![Enter API Key](https://scrapeops-assets-2.nyc3.cdn.digitaloceanspaces.com/Docs/n8n/add_key_save.png)

  3. Save and test the credentials.

  ---

  ## 🎯 Quick Start

  ### Adding the Node to a Workflow

  1. Create a new workflow in n8n.
  2. Click Add to Workflow **"ScrapeOps"** node from the palette.

  ![Add to Workflow](https://scrapeops-assets-2.nyc3.cdn.digitaloceanspaces.com/Docs/n8n/add%20to%20workflow%20n8n%20scrapeops.png)

  3. Select an API (Proxy, Parser, or Data) and configure parameters.

  ![Choose API Type](https://scrapeops-assets-2.nyc3.cdn.digitaloceanspaces.com/Docs/n8n/3%20types%20of%20API.png)


  You can monitor your usage in the [ScrapeOps Dashboard](https://scrapeops.io/app/dashboard).

  ---

  ## 📚 API Documentation

  ### 🔀 Proxy API

  Route GET/POST requests through proxies to scrape blocked sites.

  **Basic Parameters:**
  - **URL:** Target URL to scrape (required)
  - **Method:** GET or POST (default: GET)  
  - **Return Type:** Default (raw response) or JSON

  **Advanced Options:**

  | Option | Type | Description | Default | Example Values |
  |--------|------|-------------|---------|----------------|
  | **[Follow Redirects](https://scrapeops.io/docs/web-scraping-proxy-api-aggregator/advanced-functionality/follow-redirects/)** | Boolean | Follow HTTP redirects | true | `true`, `false` |
  | **[Keep Headers](https://scrapeops.io/docs/web-scraping-proxy-api-aggregator/advanced-functionality/custom-headers/)** | Boolean | Use your custom headers | false | `true`, `false` |
  | **[Initial Status Code](https://scrapeops.io/docs/web-scraping-proxy-api-aggregator/advanced-functionality/transparent-status-codes/)** | Boolean | Return initial status code | false | `true`, `false` |
  | **[Final Status Code](https://scrapeops.io/docs/web-scraping-proxy-api-aggregator/advanced-functionality/transparent-status-codes/)** | Boolean | Return final status code | false | `true`, `false` |
  | **[Optimize Request](https://scrapeops.io/docs/web-scraping-proxy-api-aggregator/advanced-functionality/optimize-request/)** | Boolean | Auto-optimize settings | false | `true`, `false` |
  | **[Max Request Cost](https://scrapeops.io/docs/web-scraping-proxy-api-aggregator/advanced-functionality/optimize-request/)** | Number | Max credits to use (with optimize) | 0 | `10`, `50`, `100` |
  | **[Render JavaScript](https://scrapeops.io/docs/web-scraping-proxy-api-aggregator/advanced-functionality/headless-browser/)** | Boolean | Enable headless browser | false | `true`, `false` |
  | **[Wait Time](https://scrapeops.io/docs/web-scraping-proxy-api-aggregator/advanced-functionality/wait-time/)** | Number | Wait before capture (ms) | 0 | `3000`, `5000` |
  | **[Wait For](https://scrapeops.io/docs/web-scraping-proxy-api-aggregator/advanced-functionality/wait-for/)** | String | CSS selector to wait for | - | `.product-title`, `#content` |
  | **[Scroll](https://scrapeops.io/docs/web-scraping-proxy-api-aggregator/advanced-functionality/scroll-page/)** | Number | Scroll pixels before capture | 0 | `1000`, `2000` |
  | **[Screenshot](https://scrapeops.io/docs/web-scraping-proxy-api-aggregator/advanced-functionality/screenshot/)** | Boolean | Return base64 screenshot | false | `true`, `false` |
  | **[Device Type](https://scrapeops.io/docs/web-scraping-proxy-api-aggregator/advanced-functionality/device-type/)** | String | Device emulation | desktop | `desktop`, `mobile` |
  | **[Premium Proxies](https://scrapeops.io/docs/web-scraping-proxy-api-aggregator/advanced-functionality/premium-proxies/)** | String | Premium level | level_1 | `level_1`, `level_2` |
  | **[Residential Proxies](https://scrapeops.io/docs/web-scraping-proxy-api-aggregator/advanced-functionality/residential-proxies/)** | Boolean | Use residential IPs | false | `true`, `false` |
  | **[Mobile Proxies](https://scrapeops.io/docs/web-scraping-proxy-api-aggregator/advanced-functionality/mobile-proxies/)** | Boolean | Use mobile IPs | false | `true`, `false` |
  | **[Session Number](https://scrapeops.io/docs/web-scraping-proxy-api-aggregator/advanced-functionality/sticky-sessions/)** | Number | Sticky session ID | 0 | `12345`, `67890` |
  | **[Country](https://scrapeops.io/docs/web-scraping-proxy-api-aggregator/advanced-functionality/country-geotargeting/)** | String | Geo-targeting country | - | `us`, `gb`, `de`, `fr`, `ca`, `au`, `jp`, `in` |
  | **[Bypass](https://scrapeops.io/docs/web-scraping-proxy-api-aggregator/advanced-functionality/anti-bot-bypass/)** | String | Anti-bot bypass level | - | `cloudflare_level_1`, `cloudflare_level_2`, `cloudflare_level_3`, `datadome`, `perimeterx`, `incapsula`, `generic_level_1` to `generic_level_4` |

  **Example Configuration:**
  ```
  API Type: Proxy API
  URL: https://example.com
  Method: GET
  Render JavaScript: true
  Wait Time: 3000
  Country: us
  ```

  ### 📊 Parser API

  Parse HTML into structured JSON for supported domains.

  **Parameters:**
  - **Domain:** [Amazon](https://scrapeops.io/docs/parser-api/parsers/amazon-product-parser/), [eBay](https://scrapeops.io/docs/parser-api/parsers/ebay-product-parser/), [Walmart](https://scrapeops.io/docs/parser-api/parsers/walmart-product-parser/), [Indeed](https://scrapeops.io/docs/parser-api/parsers/indeed-product-parser/), [Redfin](https://scrapeops.io/docs/parser-api/parsers/redfin-product-parser/)
  - **URL:** Page URL (required)
  - **HTML Content:** Raw HTML to parse (required)

  **Example Configuration:**
  ```
  API Type: Parser API
  Domain: Amazon
  URL: https://www.amazon.com/dp/B08N5WRWNW
  HTML Content: {{ $node["Proxy_API"].json.body }}
  ```

  ### 💾 Data API

  Tap into pre-scraped datasets for commerce, jobs, and real estate without maintaining your own crawlers or parsers.

  **Workflow basics**

  - **Domain**: Choose `Amazon`, `eBay`, `Walmart`, `Indeed`, or `Redfin`.
  - **API Type**: Select the dataset endpoint that matches the data you need (product, search, reviews, etc.).
  - **Input Type**: Decide whether you want to identify the record via ID, query, or URL.
  - **Advanced Options**: Provide localization parameters (`country`, `tld`) when available to scope the dataset to a specific market.

  **1. Amazon Product Data (Using URL)**
  ```text
  Domain: Amazon
  API Type: Product API
  Input Type: URL
  Product URL: https://www.amazon.com/dp/B08N5WRWNW
  ```

  **2. Walmart Search Results (Using Query)**
  ```text
  Domain: Walmart
  API Type: Search API
  Input Type: Query
  Search Query: laptop
  Advanced Options: Country = us
  ```

  **Supported Domains:**
  - **Amazon**: Product, Search
  - **eBay**: Product, Search, Feedback, Category, Store
  - **Walmart**: Product, Search, Review, Shop, Browse, Category
  - **Indeed**: Job Search, Job Detail, Company Search/Reviews/Jobs
  - **Redfin**: Sale/Rent Search, Detail, Building, Agent, State



  ---

  ## 🎯 Common Use Cases

  ### 1. **Price Monitoring**
  - Track product prices across multiple e-commerce sites
  - Set up alerts for price drops
  - Generate competitive pricing reports

  ### 2. **Market Research**
  - Collect product reviews and ratings
  - Monitor competitor inventory
  - Track market trends

  ### 3. **Lead Generation**
  - Extract business information from directories
  - Collect job postings from career sites
  - Find real estate listings

  ### 4. **Content Aggregation**
  - Collect news articles
  - Monitor social media mentions
  - Aggregate product descriptions

  ---

  ## 🛠️ Best Practices

  ### 1. Start Simple
  Begin with basic requests and add complexity:
  ```
  1. Basic GET request
  2. Add JavaScript rendering if needed
  3. Add wait conditions
  4. Enable anti-bot bypass if blocked
  ```

  ### 2. Optimize for Cost
  - Use [`optimize_request: true`](https://scrapeops.io/docs/web-scraping-proxy-api-aggregator/advanced-functionality/optimize-request/) for automatic optimization
  - Set `max_request_cost` to control spending
  - Only enable features you need

  ### 3. Handle Dynamic Content
  For JavaScript-heavy sites:
  ```
  Render JavaScript: true
  Wait Time: 3000
  Wait For: .main-content
  Scroll: 1000
  ```

  ### 4. Session Management
  For multi-step scraping:
  ```
  Session Number: 12345
  // Use same number across requests
  ```

  ---

  ## 🐛 Troubleshooting

  ### Node Not Appearing
  **Problem:** ScrapeOps node doesn't show up after installation

  **Solution:**
  1. Ensure n8n was restarted after installation
  2. Check that community nodes are enabled
  3. Verify the installation with: `npm list @scrapeops/n8n-nodes-scrapeops`

  ### Authentication Failures
  **Problem:** "Invalid API Key" error

  **Solution:**
  1. Verify API key is copied correctly (no extra spaces)
  2. Check if API key is active in ScrapeOps dashboard
  3. Ensure you're using the correct credential in the node

  ### Connection Timeouts
  **Problem:** Requests timing out

  **Solution:**
  1. Check your firewall settings
  2. Verify n8n can make external HTTP requests
  3. Test with a simple URL first (like httpbin.org)

  ---

  ## 📖 Resources

  - **[ScrapeOps Documentation](https://scrapeops.io/docs/intro/)** - Complete API documentation
  - **[ScrapeOps n8n Node Documentation](https://scrapeops.io/docs/n8n/overview)** - Complete ScrapeOps n8n Node documentation
  - **[n8n Community Nodes Documentation](https://docs.n8n.io/integrations/community-nodes/)** - n8n integration guide
  - **[ScrapeOps Dashboard](https://scrapeops.io/app/dashboard)** - Monitor usage and performance
  - **[n8n Community Forum](https://community.n8n.io/)** - Get help from the community

  ---

  ## 🤝 Support

  - **ScrapeOps Support:** support@scrapeops.io
  - **n8n Community Forum:** [community.n8n.io](https://community.n8n.io)
  - **GitHub Issues:** [Report bugs or request features](https://github.com/ScrapeOps/n8n-community-node/issues)

  ---

  ## 📄 License

  [MIT](LICENSE.md)

  ---

  **Ready to automate your web scraping?** Get started with the [ScrapeOps n8n integration](https://n8n.io/integrations/scrapeops/) today!

ai_documentation_summary:
  {"purpose":"The ScrapeOps n8n node integrates web scraping capabilities including proxy aggregation, HTML parsing, and structured data extraction directly into n8n workflows.","capabilities":["Proxy API with smart rotation and anti-bot bypass","Headless browser support for dynamic sites","Geo-targeting and mobile/residential proxy support","Session management for multi-step scraping","Parser API for Amazon, eBay, Walmart, Indeed, and Redfin","Data API for direct product and search data retrieval","Structured JSON data extraction"],"authentication":"API Key required (ScrapeOps API key)","commonUseCases":["E-commerce price monitoring","Product data extraction from Amazon/eBay","Web scraping with proxy rotation","Structured data queries without HTML parsing"],"limitations":["Email verification required to activate API key","Free account limits apply (specifics not detailed in README)"],"relatedNodes":["HTTP Request","JSON Data","Code"]}


node_type: n8n-nodes-taddy.taddyApi
package_name: n8n-nodes-taddy
display_name: Taddy API
description: Interact with Taddy Podcast API - Search 4M+ podcasts and 180M+ episodes
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: jksr194
author_github_url: https://github.com/Julian194/n8n-taddy.git
npm_package_name: n8n-nodes-taddy
npm_version: 0.1.2
community_fetched_at: 2026-04-16T09:43:36.012Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Episode",
          "value": "episode"
        },
        {
          "name": "Latest Episode",
          "value": "latest"
        },
        {
          "name": "Podcast",
          "value": "podcast"
        },
        {
          "name": "Popular Content",
          "value": "popular"
        },
        {
          "name": "Search",
          "value": "search"
        },
        {
          "name": "Top Chart",
          "value": "topCharts"
        },
        {
          "name": "Transcript",
          "value": "transcript"
        }
      ],
      "required": true,
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "searchContent",
      "options": [
        {
          "name": "Search",
          "value": "searchContent",
          "action": "Search podcasts and episodes",
          "description": "Search across podcasts, episodes, comics, and creators"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "search"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getDetails",
      "options": [
        {
          "name": "Get",
          "value": "getDetails",
          "action": "Get a podcast",
          "description": "Get detailed information about a specific podcast"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "podcast"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getDetails",
      "options": [
        {
          "name": "Get",
          "value": "getDetails",
          "action": "Get an episode",
          "description": "Get detailed information about a specific episode"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "episode"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getPopular",
      "options": [
        {
          "name": "Get",
          "value": "getPopular",
          "action": "Get popular podcasts",
          "description": "Get popular/trending podcasts"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "popular"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getLatest",
      "options": [
        {
          "name": "Get",
          "value": "getLatest",
          "action": "Get latest episodes",
          "description": "Get latest episodes from multiple podcasts"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "latest"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getTranscript",
      "options": [
        {
          "name": "Get",
          "value": "getTranscript",
          "action": "Get a transcript",
          "description": "Get transcript for a specific episode"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "transcript"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getByCountry",
      "options": [
        {
          "name": "Get by Country",
          "value": "getByCountry",
          "action": "Get top charts by country",
          "description": "Get Apple Podcasts top charts by country"
        },
        {
          "name": "Get by Genre",
          "value": "getByGenres",
          "action": "Get top charts by genre",
          "description": "Get Apple Podcasts top charts by genre"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "topCharts"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Search",
      "value": "searchContent",
      "action": "Search podcasts and episodes",
      "description": "Search across podcasts, episodes, comics, and creators",
      "resource": "search"
    },
    {
      "name": "Get",
      "value": "getDetails",
      "action": "Get a podcast",
      "description": "Get detailed information about a specific podcast",
      "resource": "podcast"
    },
    {
      "name": "Get",
      "value": "getDetails",
      "action": "Get an episode",
      "description": "Get detailed information about a specific episode",
      "resource": "episode"
    },
    {
      "name": "Get",
      "value": "getPopular",
      "action": "Get popular podcasts",
      "description": "Get popular/trending podcasts",
      "resource": "popular"
    },
    {
      "name": "Get",
      "value": "getLatest",
      "action": "Get latest episodes",
      "description": "Get latest episodes from multiple podcasts",
      "resource": "latest"
    },
    {
      "name": "Get",
      "value": "getTranscript",
      "action": "Get a transcript",
      "description": "Get transcript for a specific episode",
      "resource": "transcript"
    },
    {
      "name": "Get by Country",
      "value": "getByCountry",
      "action": "Get top charts by country",
      "description": "Get Apple Podcasts top charts by country",
      "resource": "topCharts"
    },
    {
      "name": "Get by Genre",
      "value": "getByGenres",
      "action": "Get top charts by genre",
      "description": "Get Apple Podcasts top charts by genre",
      "resource": "topCharts"
    }
  ]

npm_readme:
  # n8n-nodes-taddy

  This is an n8n community node. It lets you use the Taddy Podcast API in your n8n workflows.

  Taddy provides access to over 4 million podcasts and 180+ million episodes through a comprehensive GraphQL API. Search for podcast content, get detailed podcast and episode information, discover popular content, find latest episodes, and access transcripts.

  [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.

  [Installation](#installation)  
  [Operations](#operations)  
  [Credentials](#credentials)  
  [Compatibility](#compatibility)  
  [Usage](#usage)  
  [Resources](#resources)

  ## Installation

  Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.

  Community package name: `n8n-nodes-taddy`

  ## Operations

  ### Search Content
  - **Full-text search** across podcasts and episodes with advanced filtering
  - **Field selection** - Choose which data fields to include in results
  - **Content type filtering** - Search podcasts, episodes, or both
  - **Advanced filters** - Language, country, genre, date ranges, duration, and more
  - **Exclude terms** - Exclude specific terms from search results
  - **Sorting options** - Sort by popularity or exactness
  - **Match types** - Exact phrase, all terms, or most terms matching

  ### Podcast Details
  - Get detailed podcast information by UUID, name, iTunes ID, or RSS URL
  - Includes episode list, metadata, genres, and statistics

  ### Episode Details
  - Get detailed episode information by UUID, GUID, or name
  - Includes podcast series information, transcript data, and chapters

  ### Popular Content
  - Discover trending podcasts with optional language and genre filtering
  - Pagination support for browsing popular content

  ### Latest Episodes
  - Get recent episodes from specific podcasts or RSS feeds
  - Filter by podcast UUIDs or RSS URLs with pagination

  ### Transcript
  - Retrieve episode transcripts in multiple formats (text, SRT, VTT, JSON)
  - Support for on-demand transcript generation

  ### Top Charts
  - Get Apple Podcasts top charts by country with filtering options
  - Get top charts by genre with optional country filtering
  - Support for both podcast series and episode content types

  ## Credentials

  To use this node, you need to authenticate with the Taddy API:

  ### Prerequisites
  1. Sign up for a Taddy API account at [taddy.org](https://taddy.org)
  2. Obtain your API credentials from the Taddy dashboard

  ### Setting up credentials in n8n
  1. In n8n, go to **Settings** > **Credentials**
  2. Click **Create New** and search for "Taddy API"
  3. Enter your credentials:
     - **X-USER-ID**: Your Taddy user identifier
     - **X-API-KEY**: Your Taddy API key
  4. Test the connection and save

  ### Authentication Method
  The node uses header-based authentication, automatically adding the required `X-USER-ID` and `X-API-KEY` headers to all API requests.

  ## Compatibility

  - **Minimum n8n version**: 0.174.0
  - **Tested with**: n8n 0.174.0 - 1.0.0+
  - **Node.js version**: 16+ (matches n8n requirements)

  This node follows n8n community node standards and should be compatible with all modern n8n versions.

  ## Usage

  ### Basic Search Example
  1. Add the Taddy API node to your workflow
  2. Select **Search Content** operation
  3. Enter a search term (e.g., "technology podcasts")
  4. Configure optional filters like language or date range
  5. Choose which fields to include in the response
  6. Execute to get search results with metadata

  ### Working with Results
  - **Search results** include pagination metadata as the first item for easy access to `totalCount` and `pagesCount`
  - **Episode results** automatically include podcast series information (name, UUID) by default
  - **Field selection** is content-type aware - episode-only fields are filtered out for podcast searches

  ### Advanced Features
  - **Exclude terms**: Use the dedicated "Exclude Terms" field to filter out unwanted content
  - **Response fields**: Select only the data fields you need to optimize response size
  - **Pagination**: Use the metadata from search results to implement pagination workflows
  - **Date filtering**: Supports precise date ranges with automatic epoch timestamp conversion

  ### Common Workflows
  - **Content Discovery**: Search → Filter → Extract podcast information for subscriptions
  - **Content Analysis**: Search with transcripts → Get transcript → Analyze content
  - **Monitoring**: Search for specific topics → Check for new episodes → Send notifications
  - **Trend Analysis**: Get top charts by country/genre → Track popular podcast trends

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [Taddy API Documentation](https://taddy.org) - Official API documentation and guides
  * [GraphQL API Reference](https://taddy.org/developers/graphql) - Complete API schema and examples
  * [Node Testing Guide](./docs/testing-guide.md) - Comprehensive testing procedures for this node

  ## Version History


  ### 0.1.2 (2025-07-29)
  - Repository Url fixed

  ### 0.1.1 (2025-07-29)
  - n8n guidelines checklist
  ### 0.1.0 (Initial Release)
  - Full Taddy API integration with 7 resource types
  - Advanced search with field selection and filtering
  - Podcast and episode detail operations
  - Popular content discovery
  - Latest episodes retrieval
  - Transcript access with multiple formats
  - Top charts by country and genre
  - Comprehensive error handling and validation
  - Production-ready with extensive testing coverage

ai_documentation_summary:
  {"purpose":"This n8n community node enables interaction with the Taddy Podcast API to search millions of podcasts and episodes, retrieve detailed content information, access transcripts, and discover trending content.","capabilities":["Full-text search across podcasts and episodes with advanced filtering","Field selection to optimize response data","Search by content type (podcast, episode, or both)","Filter by language, country, genre, date ranges, and duration","Exclude specific terms from search results","Sort results by popularity or exactness","Retrieve podcast details by UUID, name, iTunes ID, or RSS URL","Retrieve episode details including transcripts and chapters","Discover trending podcasts with pagination","Retrieve latest episodes from podcasts or RSS feeds"],"authentication":"API key required (X-USER-ID and X-API-KEY headers)","commonUseCases":["Content discovery and podcast subscription management","Content analysis using episode transcripts","Monitoring new episodes for specific topics","Trend analysis of popular podcast content"],"limitations":["Community node (not official n8n node)","Requires separate Taddy API account and credentials"],"relatedNodes":["n8n-nodes-webhook","n8n-nodes-http-request","n8n-nodes-ai-text-to-speech"]}


node_type: n8n-nodes-justcall.justCall
package_name: n8n-nodes-justcall
display_name: JustCall
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: devjustcall
author_github_url: https://github.com/saaslabsco/
npm_package_name: n8n-nodes-justcall
npm_version: 1.0.4
community_fetched_at: 2026-04-16T09:43:36.013Z
ai_summary_generated_at: 2026-03-25 22:51:43
description:
  Interact with JustCall API (Calls, SMS, Contacts, Phone Numbers, AI Voice Agents, Sales Dialer, JustCall AI)

properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "call",
      "options": [
        {
          "name": "AI Voice Agent",
          "value": "aiVoiceAgent"
        },
        {
          "name": "Call",
          "value": "call"
        },
        {
          "name": "Contact",
          "value": "contact"
        },
        {
          "name": "JustCall AI",
          "value": "justCallAi"
        },
        {
          "name": "Phone Number",
          "value": "phoneNumber"
        },
        {
          "name": "Sales Dialer",
          "value": "salesDialer"
        },
        {
          "name": "SMS",
          "value": "sms"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMany",
      "options": [
        {
          "name": "Download Call Recording",
          "value": "downloadRecording",
          "action": "Download call recording",
          "description": "Download the recording of a completed call"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a call",
          "description": "Get a specific call"
        },
        {
          "name": "Get Call Journey",
          "value": "getJourney",
          "action": "Get call journey",
          "description": "Get journey details of a completed call (available only after call has ended)"
        },
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get many calls",
          "description": "Get many calls"
        },
        {
          "name": "Get Voice Agent Data",
          "value": "getVoiceAgentData",
          "action": "Get voice agent data",
          "description": "Get voice agent insights and metadata for a completed call"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a call",
          "description": "Update a call (notes, disposition, rating)"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "call"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "send",
      "options": [
        {
          "name": "Send",
          "value": "send",
          "action": "Send an SMS",
          "description": "Send an SMS or MMS"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get an SMS",
          "description": "Get a specific SMS"
        },
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get many SMS",
          "description": "Get many SMS messages"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "sms"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a contact",
          "description": "Create a new contact"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a contact",
          "description": "Get a specific contact"
        },
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get many contacts",
          "description": "Get many contacts"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a contact",
          "description": "Update an existing contact"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "contact"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMany",
      "options": [
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get all phone numbers",
          "description": "Get all phone numbers"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a phone number",
          "description": "Get a specific phone number"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "phoneNumber"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listAgents",
      "options": [
        {
          "name": "List Agents",
          "value": "listAgents",
          "action": "List all AI voice agents",
          "description": "List all AI voice agents"
        },
        {
          "name": "Initiate Call",
          "value": "initiateCall",
          "action": "Initiate a call with AI voice agent",
          "description": "Initiate a call with an AI voice agent"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "aiVoiceAgent"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listCalls",
      "options": [
        {
          "name": "Add Contact to Campaign",
          "value": "addContactToCampaign",
          "action": "Add contact to a campaign",
          "description": "Add a contact to a Sales Dialer campaign"
        },
        {
          "name": "Get a Call",
          "value": "getCall",
          "action": "Get a call",
          "description": "Get a specific Sales Dialer call"
        },
        {
          "name": "Get a Campaign",
          "value": "getCampaign",
          "action": "Get a campaign",
          "description": "Get a specific Sales Dialer campaign"
        },
        {
          "name": "Get a Contact",
          "value": "getContact",
          "action": "Get a contact",
          "description": "Get a specific Sales Dialer contact"
        },
        {
          "name": "List All Calls",
          "value": "listCalls",
          "action": "List all calls",
          "description": "List all Sales Dialer calls"
        },
        {
          "name": "List All Campaigns",
          "value": "listCampaigns",
          "action": "List all campaigns",
          "description": "List all Sales Dialer campaigns"
        },
        {
          "name": "List All Contacts",
          "value": "listContacts",
          "action": "List all contacts",
          "description": "List all Sales Dialer contacts"
        },
        {
          "name": "List Campaign Contacts",
          "value": "listCampaignContacts",
          "action": "List campaign contacts",
          "description": "List contacts in a Sales Dialer campaign"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "salesDialer"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listCallsAiData",
      "options": [
        {
          "name": "Get Call AI Data",
          "value": "getCallAiData",
          "action": "Get call AI data",
          "description": "Get AI-generated analysis for a specific call"
        },
        {
          "name": "Get Meeting AI Data",
          "value": "getMeetingAiData",
          "action": "Get meeting AI data",
          "description": "Get AI-generated analysis for a specific meeting instance"
        },
        {
          "name": "List Calls AI Data",
          "value": "listCallsAiData",
          "action": "List calls AI data",
          "description": "List AI-generated analysis for JustCall and Sales Dialer calls"
        },
        {
          "name": "List Meetings AI Data",
          "value": "listMeetingsAiData",
          "action": "List meetings AI data",
          "description": "List AI-generated analysis for meeting instances"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "justCallAi"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Download Call Recording",
      "value": "downloadRecording",
      "action": "Download call recording",
      "description": "Download the recording of a completed call",
      "resource": "call"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a call",
      "description": "Get a specific call",
      "resource": "call"
    },
    {
      "name": "Get Call Journey",
      "value": "getJourney",
      "action": "Get call journey",
      "description": "Get journey details of a completed call (available only after call has ended)",
      "resource": "call"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get many calls",
      "description": "Get many calls",
      "resource": "call"
    },
    {
      "name": "Get Voice Agent Data",
      "value": "getVoiceAgentData",
      "action": "Get voice agent data",
      "description": "Get voice agent insights and metadata for a completed call",
      "resource": "call"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a call",
      "description": "Update a call (notes, disposition, rating)",
      "resource": "call"
    },
    {
      "name": "Send",
      "value": "send",
      "action": "Send an SMS",
      "description": "Send an SMS or MMS",
      "resource": "sms"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get an SMS",
      "description": "Get a specific SMS",
      "resource": "sms"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get many SMS",
      "description": "Get many SMS messages",
      "resource": "sms"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a contact",
      "description": "Create a new contact",
      "resource": "contact"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a contact",
      "description": "Get a specific contact",
      "resource": "contact"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get many contacts",
      "description": "Get many contacts",
      "resource": "contact"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a contact",
      "description": "Update an existing contact",
      "resource": "contact"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get all phone numbers",
      "description": "Get all phone numbers",
      "resource": "phoneNumber"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a phone number",
      "description": "Get a specific phone number",
      "resource": "phoneNumber"
    },
    {
      "name": "List Agents",
      "value": "listAgents",
      "action": "List all AI voice agents",
      "description": "List all AI voice agents",
      "resource": "aiVoiceAgent"
    },
    {
      "name": "Initiate Call",
      "value": "initiateCall",
      "action": "Initiate a call with AI voice agent",
      "description": "Initiate a call with an AI voice agent",
      "resource": "aiVoiceAgent"
    },
    {
      "name": "Add Contact to Campaign",
      "value": "addContactToCampaign",
      "action": "Add contact to a campaign",
      "description": "Add a contact to a Sales Dialer campaign",
      "resource": "salesDialer"
    },
    {
      "name": "Get a Call",
      "value": "getCall",
      "action": "Get a call",
      "description": "Get a specific Sales Dialer call",
      "resource": "salesDialer"
    },
    {
      "name": "Get a Campaign",
      "value": "getCampaign",
      "action": "Get a campaign",
      "description": "Get a specific Sales Dialer campaign",
      "resource": "salesDialer"
    },
    {
      "name": "Get a Contact",
      "value": "getContact",
      "action": "Get a contact",
      "description": "Get a specific Sales Dialer contact",
      "resource": "salesDialer"
    },
    {
      "name": "List All Calls",
      "value": "listCalls",
      "action": "List all calls",
      "description": "List all Sales Dialer calls",
      "resource": "salesDialer"
    },
    {
      "name": "List All Campaigns",
      "value": "listCampaigns",
      "action": "List all campaigns",
      "description": "List all Sales Dialer campaigns",
      "resource": "salesDialer"
    },
    {
      "name": "List All Contacts",
      "value": "listContacts",
      "action": "List all contacts",
      "description": "List all Sales Dialer contacts",
      "resource": "salesDialer"
    },
    {
      "name": "List Campaign Contacts",
      "value": "listCampaignContacts",
      "action": "List campaign contacts",
      "description": "List contacts in a Sales Dialer campaign",
      "resource": "salesDialer"
    },
    {
      "name": "Get Call AI Data",
      "value": "getCallAiData",
      "action": "Get call AI data",
      "description": "Get AI-generated analysis for a specific call",
      "resource": "justCallAi"
    },
    {
      "name": "Get Meeting AI Data",
      "value": "getMeetingAiData",
      "action": "Get meeting AI data",
      "description": "Get AI-generated analysis for a specific meeting instance",
      "resource": "justCallAi"
    },
    {
      "name": "List Calls AI Data",
      "value": "listCallsAiData",
      "action": "List calls AI data",
      "description": "List AI-generated analysis for JustCall and Sales Dialer calls",
      "resource": "justCallAi"
    },
    {
      "name": "List Meetings AI Data",
      "value": "listMeetingsAiData",
      "action": "List meetings AI data",
      "description": "List AI-generated analysis for meeting instances",
      "resource": "justCallAi"
    }
  ]

npm_readme:
  # n8n-nodes-justcall

  [![npm version](https://img.shields.io/npm/v/n8n-nodes-justcall)](https://www.npmjs.com/package/n8n-nodes-justcall)
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

  An n8n community node package that provides seamless integration with the JustCall API, enabling you to automate calls, SMS, contact management, AI voice agents, Sales Dialer campaigns, and JustCall AI insights within your n8n workflows.

  ## Features

  This package includes two main nodes:

  ### 1. JustCall Node

  A comprehensive node for interacting with the JustCall API, supporting the following resources:

  #### 📞 **Call**
  - **Get** - Retrieve a specific call by ID
  - **Get Many** - List and filter calls with pagination support
  - **Update** - Update call notes, disposition, and rating
  - **Download Call Recording** - Download the recording of a completed call
  - **Get Call Journey** - Get journey details of a completed call (available after call has ended)
  - **Get Voice Agent Data** - Get voice agent insights and metadata for a completed call

  #### 💬 **SMS**
  - **Send** - Send SMS or MMS messages
  - **Get** - Retrieve a specific SMS by ID
  - **Get Many** - List and filter SMS messages

  #### 👤 **Contact**
  - **Create** - Create a new contact
  - **Get** - Retrieve a specific contact
  - **Get Many** - List and filter contacts
  - **Update** - Update an existing contact

  #### 📱 **Phone Number**
  - **Get** - Retrieve a specific phone number
  - **Get Many** - List all phone numbers

  #### 🤖 **AI Voice Agent**
  - **List Agents** - List all available AI voice agents
  - **Initiate Call** - Initiate a call with an AI voice agent

  #### 📋 **Sales Dialer**
  - **List All Calls** - List all Sales Dialer calls with filters (campaign, agent, date range, etc.)
  - **Get a Call** - Get a specific Sales Dialer call by ID
  - **List All Campaigns** - List all Sales Dialer campaigns
  - **Get a Campaign** - Get a specific Sales Dialer campaign by ID
  - **List Campaign Contacts** - List contacts in a Sales Dialer campaign
  - **Add Contact to Campaign** - Add a contact to a Sales Dialer campaign (by phone number or contact ID)
  - **List All Contacts** - List all Sales Dialer contacts
  - **Get a Contact** - Get a specific Sales Dialer contact by ID

  #### 🧠 **JustCall AI**
  - **List Calls AI Data** - List AI-generated analysis for JustCall and Sales Dialer calls (summary, transcription, insights, action items)
  - **Get Call AI Data** - Get AI-generated analysis for a specific call
  - **List Meetings AI Data** - List AI-generated analysis for meeting instances
  - **Get Meeting AI Data** - Get AI-generated analysis for a specific meeting instance

  ### 2. JustCall Trigger Node

  A webhook trigger node that automatically starts workflows when JustCall events occur:

  - **Call Answered** - Triggered when a call is answered
  - **Call Completed** - Triggered when a call is completed
  - **Call Initiated** - Triggered when a call is initiated
  - **Call Missed** - Triggered when a call is missed
  - **Call Updated** - Triggered when a call is updated
  - **Incoming Call** - Triggered when an incoming call is received
  - **SMS Received** - Triggered when an SMS is received
  - **SMS Sent** - Triggered when an SMS is sent
  - **Voicemail Received** - Triggered when a voicemail is received

  ## Installation

  ### For n8n Cloud Users

  This node is available in the n8n community nodes catalog. You can install it directly from the n8n interface:

  1. Go to **Settings** → **Community Nodes**
  2. Search for `n8n-nodes-justcall`
  3. Click **Install**

  ### For Self-Hosted n8n

  If you're running a self-hosted instance of n8n, install this package in your n8n installation directory:

  ```bash
  npm install n8n-nodes-justcall
  ```

  Or if you're using n8n via Docker, add this to your `docker-compose.yml`:

  ```yaml
  services:
    n8n:
      environment:
        - N8N_USER_FOLDER=/home/node/.n8n
      volumes:
        - n8n_data:/home/node/.n8n
  ```

  Then install the package in the container:

  ```bash
  docker exec -it <container-name> npm install n8n-nodes-justcall
  ```

  ## Configuration

  ### API Credentials

  Before using the JustCall nodes, you need to configure your JustCall API credentials:

  1. In n8n, go to **Credentials** → **Add Credential**
  2. Search for **JustCall API**
  3. Enter your JustCall API key
     - You can find your API key in your JustCall dashboard under **Profile** → **APIs and Webhooks**

  ## Usage Examples

  ### Example 1: Send SMS on Contact Creation

  Create a workflow that automatically sends a welcome SMS when a new contact is created:

  1. Add a **JustCall** node
  2. Select **Contact** → **Create**
  3. Configure the contact details
  4. Add another **JustCall** node
  5. Select **SMS** → **Send**
  6. Use the contact's phone number from the previous node

  ### Example 2: Trigger Workflow on Call Completion

  Set up a workflow that processes call data when a call is completed:

  1. Add a **JustCall Trigger** node
  2. Select **Call Completed** event
  3. Add subsequent nodes to process the call data (e.g., save to database, send notification)

  ### Example 3: AI Voice Agent Outbound Call

  Initiate an outbound call using an AI voice agent:

  1. Add a **JustCall** node
  2. Select **AI Voice Agent** → **Initiate Call**
  3. Select the agent and provide the phone number
  4. Configure call parameters

  ### Example 4: Sales Dialer – Add Contact to Campaign

  Add a contact to a Sales Dialer campaign for power dialing:

  1. Add a **JustCall** node
  2. Select **Sales Dialer** → **Add Contact to Campaign**
  3. Enter the campaign ID and either phone number or contact ID
  4. Optionally add contact details (name, email, custom fields)

  ### Example 5: JustCall AI – Get Call Insights

  Retrieve AI-generated summary and insights for a call:

  1. Add a **JustCall** node
  2. Select **JustCall AI** → **Get Call AI Data**
  3. Enter the call ID (JustCall or Sales Dialer)
  4. Optionally enable summary, transcription, smart chapters, or action items

  ## Development

  ### Prerequisites

  - Node.js (v18 or higher)
  - npm or pnpm
  - TypeScript

  ### Setup

  1. Clone the repository:
  ```bash
  git clone https://github.com/saaslabsco/n8n-nodes-justcall.git
  cd n8n-nodes-justcall
  ```

  2. Install dependencies:
  ```bash
  npm install
  ```

  3. Build the project:
  ```bash
  npm run build
  ```

  ### Available Scripts

  - `npm run build` - Compile TypeScript to JavaScript
  - `npm run dev` - Watch mode for development
  - `npm run lint` - Run ESLint
  - `npm run lintfix` - Fix ESLint errors automatically
  - `npm run format` - Format code with Prettier
  - `npm run changeset` - Create a new changeset for versioning
  - `npm run version` - Bump versions based on changesets
  - `npm run release` - Publish the package

  ### Project Structure

  ```
  n8n-nodes-justcall/
  ├── nodes/
  │   └── JustCall/
  │       ├── descriptions/     # Node property descriptions
  │       ├── handlers/          # Operation handlers
  │       ├── utils/             # Utility functions
  │       ├── JustCall.node.ts   # Main JustCall node
  │       └── JustCallTrigger.node.ts  # Trigger node
  ├── credentials/               # Credential definitions
  └── dist/                     # Compiled output
  ```

  ## Contributing

  Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (`git checkout -b feature/amazing-feature`)
  3. Make your changes
  4. Run tests and linting (`npm run lint`)
  5. Commit your changes (`git commit -m 'Add some amazing feature'`)
  6. Create a changeset (`npm run changeset`)
  7. Push to the branch (`git push origin feature/amazing-feature`)
  8. Open a Pull Request

  ### Versioning

  This project uses [Changesets](https://github.com/changesets/changesets) for version management. When making changes:

  1. Run `npm run changeset` to document your changes
  2. Commit the changeset file along with your code changes
  3. When ready to release, maintainers will run `npm run version` to update versions and changelog

  ## Changelog

  See [CHANGELOG.md](./CHANGELOG.md) for a list of changes and version history.

  ## License

  This project is licensed under the MIT License - see the [LICENSE](./LICENSE) file for details.

  ## Support

  For issues, questions, or contributions, please visit:
  - **GitHub Issues**: [https://github.com/saaslabsco/n8n-nodes-justcall/issues](https://github.com/saaslabsco/n8n-nodes-justcall/issues)
  - **JustCall API Documentation**: [https://developer.justcall.io/reference/initiate_outbound_call_v21](https://developer.justcall.io/reference/initiate_outbound_call_v21)

  ## Author

  **JustCall Dev**
  - Email: dev@justcall.io
  - GitHub: [@saaslabsco](https://github.com/saaslabsco)

  ---

  Made with ❤️ by the JustCall team

ai_documentation_summary:
  {"purpose":"This n8n community node enables automation of JustCall API operations including calls, SMS, contacts, phone numbers, AI voice agents, sales dialer campaigns, and AI insights.","capabilities":["Retrieve and list calls with pagination","Update call notes, disposition, and ratings","Download call recordings","Retrieve call journey and voice agent data","Send and retrieve SMS/MMS messages","Create, retrieve, update, and list contacts","Retrieve and list phone numbers","List and initiate calls with AI voice agents","Manage Sales Dialer campaigns and contacts","Retrieve AI-generated call and meeting insights"],"authentication":"API key required","commonUseCases":["Automate welcome SMS upon contact creation","Process call data when calls complete","Initiate outbound calls using AI voice agents","Add contacts to sales dialer campaigns","Retrieve AI summaries and insights from calls"],"limitations":["Some features like Get Call Journey require the call to be completed","AI data retrieval may depend on JustCall AI service availability"],"relatedNodes":["JustCall Trigger","n8n-nodes-justcall"]}


node_type: n8n-nodes-terraform-cloud.terraformCloud
package_name: n8n-nodes-terraform-cloud
display_name: Terraform Cloud
description: Interact with the Terraform Cloud API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: valkiriaaquatica
author_github_url: https://github.com/valkiriaaquatica/n8n-terraform-cloud.git
npm_package_name: n8n-nodes-terraform-cloud
npm_version: 1.1.4
community_fetched_at: 2026-04-16T09:43:36.014Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "workspace",
      "options": [
        {
          "name": "Workspace",
          "value": "workspace"
        },
        {
          "name": "Run",
          "value": "run"
        },
        {
          "name": "Project",
          "value": "project"
        },
        {
          "name": "GitHub App Installation",
          "value": "githubAppInstallation"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Create Workspace",
          "value": "create",
          "action": "Create a workspace",
          "description": "Create a new workspace in an organization"
        },
        {
          "name": "Delete Workspace",
          "value": "delete",
          "action": "Delete a workspace",
          "description": "Delete a workspace by ID"
        },
        {
          "name": "Get Workspace Details",
          "value": "get",
          "action": "Get workspace details",
          "description": "Fetch workspace info including VCS settings"
        },
        {
          "name": "Get Workspace State",
          "value": "getState",
          "action": "Get workspace state metadata",
          "description": "Fetch the latest state version metadata (and download URL)"
        },
        {
          "name": "List Workspaces",
          "value": "list",
          "action": "List workspaces",
          "description": "List workspaces in an organization"
        },
        {
          "name": "Update Workspace",
          "value": "update",
          "action": "Update a workspace",
          "description": "Update workspace settings by ID"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "workspace"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Add Run Comment",
          "value": "addComment",
          "action": "Add a comment to a run",
          "description": "Attach a comment to a run"
        },
        {
          "name": "Apply Run",
          "value": "apply",
          "action": "Apply a run",
          "description": "Apply a run that is pending/approved"
        },
        {
          "name": "Cancel Run",
          "value": "cancel",
          "action": "Cancel a run",
          "description": "Cancel a running plan/apply"
        },
        {
          "name": "Create Plan (Manual Apply)",
          "value": "createPlanManualApply",
          "action": "Create a plan that waits for manual apply",
          "description": "Start a plan and leave it pending for manual apply/discard"
        },
        {
          "name": "Create Plan Run",
          "value": "createPlan",
          "action": "Create plan only run",
          "description": "Start a plan-only run in a workspace (plan-only flag)"
        },
        {
          "name": "Discard Run",
          "value": "discard",
          "action": "Discard a run",
          "description": "Discard a run that is waiting or paused"
        },
        {
          "name": "Get Status",
          "value": "getStatus",
          "action": "Get run status",
          "description": "Get the status/details of a run"
        },
        {
          "name": "List by Workspace",
          "value": "list",
          "action": "List runs",
          "description": "List runs for a workspace"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "run"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "List Projects",
          "value": "list",
          "action": "List projects",
          "description": "List projects in an organization"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "project"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "List Installations",
          "value": "list",
          "action": "List github app installations",
          "description": "List GitHub App installations for an organization"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "githubAppInstallation"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create Workspace",
      "value": "create",
      "action": "Create a workspace",
      "description": "Create a new workspace in an organization",
      "resource": "workspace"
    },
    {
      "name": "Delete Workspace",
      "value": "delete",
      "action": "Delete a workspace",
      "description": "Delete a workspace by ID",
      "resource": "workspace"
    },
    {
      "name": "Get Workspace Details",
      "value": "get",
      "action": "Get workspace details",
      "description": "Fetch workspace info including VCS settings",
      "resource": "workspace"
    },
    {
      "name": "Get Workspace State",
      "value": "getState",
      "action": "Get workspace state metadata",
      "description": "Fetch the latest state version metadata (and download URL)",
      "resource": "workspace"
    },
    {
      "name": "List Workspaces",
      "value": "list",
      "action": "List workspaces",
      "description": "List workspaces in an organization",
      "resource": "workspace"
    },
    {
      "name": "Update Workspace",
      "value": "update",
      "action": "Update a workspace",
      "description": "Update workspace settings by ID",
      "resource": "workspace"
    },
    {
      "name": "Add Run Comment",
      "value": "addComment",
      "action": "Add a comment to a run",
      "description": "Attach a comment to a run",
      "resource": "run"
    },
    {
      "name": "Apply Run",
      "value": "apply",
      "action": "Apply a run",
      "description": "Apply a run that is pending/approved",
      "resource": "run"
    },
    {
      "name": "Cancel Run",
      "value": "cancel",
      "action": "Cancel a run",
      "description": "Cancel a running plan/apply",
      "resource": "run"
    },
    {
      "name": "Create Plan (Manual Apply)",
      "value": "createPlanManualApply",
      "action": "Create a plan that waits for manual apply",
      "description": "Start a plan and leave it pending for manual apply/discard",
      "resource": "run"
    },
    {
      "name": "Create Plan Run",
      "value": "createPlan",
      "action": "Create plan only run",
      "description": "Start a plan-only run in a workspace (plan-only flag)",
      "resource": "run"
    },
    {
      "name": "Discard Run",
      "value": "discard",
      "action": "Discard a run",
      "description": "Discard a run that is waiting or paused",
      "resource": "run"
    },
    {
      "name": "Get Status",
      "value": "getStatus",
      "action": "Get run status",
      "description": "Get the status/details of a run",
      "resource": "run"
    },
    {
      "name": "List by Workspace",
      "value": "list",
      "action": "List runs",
      "description": "List runs for a workspace",
      "resource": "run"
    },
    {
      "name": "List Projects",
      "value": "list",
      "action": "List projects",
      "description": "List projects in an organization",
      "resource": "project"
    },
    {
      "name": "List Installations",
      "value": "list",
      "action": "List github app installations",
      "description": "List GitHub App installations for an organization",
      "resource": "githubAppInstallation"
    }
  ]

npm_readme:
  ![Terraform Cloud for n8n](https://user-images.githubusercontent.com/10284570/173569848-c624317f-42b1-45a6-ab09-f0ea3c247648.png)

  # n8n Terraform Cloud Nodes

  Custom n8n nodes to work with HashiCorp Terraform Cloud: manage runs, workspaces, projects, and state metadata.

  ## Nodes included
  - **TerraformCloud**: Run operations (create plan/manual apply, apply, cancel, discard, add comment), list runs by workspace, get run status, list projects, list workspaces, fetch latest workspace state metadata.

  ## What you can do (quick overview)
  ### Runs
  - Create plan-only runs or plans that wait for manual apply in a workspace.
  - Apply, cancel, or discard an existing run.
  - Add comments to a run.
  - List runs per workspace or fetch the status of a specific run.

  ### Workspaces
  - Create workspaces with vcs, variables, executions, directories...
  - List workspaces in an organization.
  - Fetch workspace details (includes current/latest run).
  - Fetch the current workspace state (state version + download URL).

  ### Projects
  - List projects in an organization.

  ## Credentials
  You will need an api token credential to interact with Terraform Cloud.

  ### Credentials for creating Workspace with VCS from Github App

  To create a workspace whose VCS source is a **GitHub App**, you must use a **User API Token**.  
  An **Organization API Token is not sufficient** for this purpose.

  #### How to create a User API Token

  1. Click on your profile picture in the upper-right corner.
  2. Go to **Account Settings**.
  3. Navigate to **Tokens**.
  4. Click **Create API Token**.


  ## Example flows

  ### General Overview
  ![alt text](image-1.png)

  ### Launch a plan and check its status
  1) TerraformCloud node → Resource `Run` → Operation `Create Plan (Manual Apply)` → set Workspace ID + message.  
  ![alt text](image-3.png)

  2) TerraformCloud node → Resource `Run` → Operation `Get Status` → use the `runId` from step 1.  
  ![alt text](image-4.png)

  ### Fetch workspace tf state
  1) TerraformCloud node → Resource `Workspace` → Operation `Get Workspace State`.  
  2) Provide `workspaceId` or enable `Resolve Workspace by Name` with `stateOrganization` + `workspaceName`.  
  ![alt text](image-5.png)

  ### Discard a Run from a Workspace
  1) TerraformCloud node → Resource `Run` → Operation `Discard a run`. 
  ![alt text](image.png)

  ### Create a Workspace
  1) TerraformCloud node → Resource `Run` → Operation `Create a Workspace`.There are a multiple options on the creations: vcs control, auto apply, variables...
  ![alt text](image-2.png)

  ## Requirements
  - Terraform Cloud API token with access to the target organization/workspaces.
  - n8n 1.0+ (tested on 2.0.3).

  ## Quick start
  ```bash
  npm install
  npm run dev   # starts n8n with the custom nodes linked
  ```

  ### Build and lint
  ```bash
  npm run build
  npm run lint
  ```

ai_documentation_summary:
  {"purpose":"This n8n node enables interaction with the HashiCorp Terraform Cloud API to manage runs, workspaces, projects, and state metadata.","capabilities":["Create plan-only runs or manual apply plans","Apply, cancel, or discard existing runs","Add comments to runs","List runs by workspace","Get status of a specific run","List projects in an organization","List workspaces in an organization","Create workspaces with VCS, variables, and executions","Fetch workspace details including current/latest run","Fetch workspace state metadata and download URL"],"authentication":"API token required (User API Token for GitHub App VCS, Organization API Token for general use)","commonUseCases":["Automating Terraform plan and apply workflows","Monitoring run status in CI/CD pipelines","Managing workspace configurations and state","Discarding failed or incomplete runs"],"limitations":["Organization API Token is insufficient for creating workspaces with GitHub App VCS (User API Token required)","Requires n8n 1.0+ (tested on 2.0.3)"],"relatedNodes":[]}


node_type: @crowdin/n8n-nodes-crowdin.crowdinFileBased
package_name: @crowdin/n8n-nodes-crowdin
display_name: Crowdin (File-Based)
description: Interact with crowdin.com API for localization management
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: taras.prosvirov
author_github_url: https://github.com/crowdin/n8n-nodes-crowdin.git
npm_package_name: @crowdin/n8n-nodes-crowdin
npm_version: 0.8.0
community_fetched_at: 2026-04-16T09:43:36.014Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "ai",
      "options": [
        {
          "name": "AI",
          "value": "ai"
        },
        {
          "name": "Storage",
          "value": "storage",
          "description": "\nStorage is a separate container for each file. You need to use _Add Storage_ method before adding files to your projects via API. Files that should be uploaded into storage include files for localization, screenshots, Glossaries, and Translation Memories.\n\n_Storage id_ is the identifier of the file uploaded to the Storage.\n\n__Note:__ Files uploaded to the storage are kept during the next 24 hours.\n"
        },
        {
          "name": "Languages",
          "value": "languages",
          "description": "\nCrowdin supports more than 300 world languages and custom languages created in the system.\n\nUse API to get the list of all supported languages and retrieve additional details (e.g. text direction, internal code) on specific language.\n"
        },
        {
          "name": "Projects",
          "value": "projects",
          "description": "\nUsing projects, you can keep your source files sorted.\n\nUse API to manage projects, change their settings, or remove them if required.\n"
        },
        {
          "name": "Source Files",
          "value": "sourceFiles",
          "description": "\nSource files are resources for translation. You can keep files structure using folders or manage different versions of the content via branches.\n\nUse API to keep the source files up to date, check on file revisions, and manage project branches. Before adding source files to the project, upload each file to the Storage first.\n\n__Note:__ If you use branches, make sure your master branch is the first one you integrate with Crowdin.\n"
        },
        {
          "name": "Translations",
          "value": "translations",
          "description": "\nTranslators can work with entirely untranslated project or you can pre-translate the files to ease the translations process.\n\nUse API to pre-translate files via Machine Translation (MT) or Translation Memory (TM), upload your existing translations, and download translations correspondingly. Pre-translate and build are [asynchronous operations](#section/Introduction/Asynchronous-Operations) and shall be completed with sequence of API methods.\n\n__Note:__ If there are no new translations or changes in build parameters, Crowdin will return the current build for such requests.\n"
        },
        {
          "name": "Source Strings",
          "value": "sourceStrings",
          "description": "\nSource strings are the text units for translation. Instead of modifying source files, you can manage source strings one by one.\n\nUse API to add, edit, or delete some specific strings  in the source-based and files-based projects (available only for the following file formats: CSV, RESX, JSON, Android XML, iOS strings, PROPERTIES, XLIFF).\n"
        },
        {
          "name": "String/Asset Translations",
          "value": "stringAssetTranslations",
          "description": "Use API to add or remove strings/asset translations, approvals, and votes."
        },
        {
          "name": "String/Asset Comments",
          "value": "stringAssetComments",
          "description": "Use API to list, add, edit or remove string/asset comments."
        },
        {
          "name": "Screenshots",
          "value": "screenshots",
          "description": "\nScreenshots provide translators with additional context for the source strings.  Screenshot tags allow specifying  which source strings are displayed on each screenshot.\n\nUse API to manage screenshots and their tags.\n"
        },
        {
          "name": "Glossaries",
          "value": "glossaries",
          "description": "\nGlossaries help to explain some specific terms or the ones often used in the project so that they can be properly and consistently translated.\n\nUse API to manage glossaries or specific terms. Glossary export and import are [asynchronous operations](#section/Introduction/Asynchronous-Operations) and shall be completed with sequence of API methods.\n"
        },
        {
          "name": "Style Guides",
          "value": "styleGuides",
          "description": "\nStyle Guides help to provide additional context for the translators.\n\nUse API to manage style guides.\n"
        },
        {
          "name": "Translation Memory",
          "value": "translationMemory",
          "description": "\nTranslation Memory (TM) is a vault of translations that were previously made in other projects. Those translations can be reused to speed up the translation process. Every translation made in the project is automatically added to the project Translation Memory.\n\nUse API to create, upload, download, or remove specific TM. Translation Memory export and import are [asynchronous operations](#section/Introduction/Asynchronous-Operations) and shall be completed with sequence of API methods.\n"
        },
        {
          "name": "Machine Translation Engines",
          "value": "machineTranslationEngines",
          "description": "\nMachine Translation Engines (MTE) are the sources for pre-translations. You can currently connect Google Translate, Microsoft Translator, Crowdin Translate, DeepL Pro and Amazon Translate engines.\n\nUse API to add, update, and delete specific MTE.\n"
        },
        {
          "name": "Translation Status",
          "value": "translationStatus",
          "description": "\nStatus represents the general localization progress on both translations and proofreading.\n\nUse API to check translation and proofreading progress on different levels: file, language, branch, directory.\n"
        },
        {
          "name": "Reports",
          "value": "reports",
          "description": "\nReports help to estimate costs, calculate translation costs, and identify the top members.\n\nUse API to generate Cost Estimate, Translation Cost, and Top Members reports. You can then export reports in .xlsx or .csv file formats. Report generation is an [asynchronous operation](#section/Introduction/Asynchronous-Operations) and shall be completed with a sequence of API methods."
        },
        {
          "name": "Tasks",
          "value": "tasks",
          "description": "\nCreate and assign tasks to get files translated or proofread by specific people. You can set the due dates, split words between people, and receive notifications about the changes and updates on tasks. Tasks are project-specific, so you’ll have to create them within a project.\n\nUse API to create, modify, and delete specific tasks.\n"
        },
        {
          "name": "Users",
          "value": "users",
          "description": "\nUsers API gives you the possibility to get profile information about the currently authenticated user.\n"
        },
        {
          "name": "Webhooks",
          "value": "webhooks",
          "description": "\nWebhooks allow you to collect information about events that happen in your Crowdin projects. You can select the request type, content type, and add a custom payload, which allows you to create integrations with other systems on your own.\n\nYou can configure webhooks for the following events:\n * project file is fully translated\n * project file is fully reviewed\n * project file is fully QA checked\n * all strings in project are translated\n * all strings in project are reviewed\n * all strings in project QA check are finished\n * final translation of string is updated (using Replace in suggestions feature)\n * source string is added\n * source string is updated\n * source string is deleted\n * source string is translated\n * translation for source string is updated (using Replace in suggestions feature)\n * one of translations is deleted\n * translation for string is approved\n * approval for previously added translation is removed\n\nUse API to create, modify, and delete specific webhooks.\n"
        },
        {
          "name": "Organization Webhooks",
          "value": "organizationWebhooks",
          "description": "\nWebhooks allow you to collect information about events that happen in your Crowdin account. You can select the request type, content type, and add a custom payload, which allows you to create integrations with other systems on your own.\n\nYou can configure webhooks for the following events:\n * project is created\n * project is deleted\n\nUse API to create, modify, and delete specific webhooks."
        },
        {
          "name": "Dictionaries",
          "value": "dictionaries",
          "description": "\nDictionaries allow you to create a storage of words that should be skipped by the spell checker.\n\nUse API to get the list of organization dictionaries and to edit a specific dictionary."
        },
        {
          "name": "Applications",
          "value": "applications",
          "description": "\nCrowdin Apps are web applications that can be integrated with Crowdin to extend its functionality.\n\nUse the API to manage the necessary app data.\n"
        },
        {
          "name": "Integrations",
          "value": "integrations",
          "description": "\nIntegration applications provide synchronization between Crowdin and external content management systems.\n\nUse the API to manage integration files, jobs, settings, and authentication."
        },
        {
          "name": "Bundles",
          "value": "bundles"
        },
        {
          "name": "Distributions",
          "value": "distributions"
        },
        {
          "name": "Labels",
          "value": "labels"
        },
        {
          "name": "Notifications",
          "value": "notifications"
        },
        {
          "name": "Security Logs",
          "value": "securityLogs"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "api.ai.prompts.snippets.getMany",
      "options": [
        {
          "name": "List AI Snippets",
          "value": "api.ai.prompts.snippets.getMany",
          "action": "List AI Snippets",
          "routing": {
            "send": {
              "paginate": "={{$parameter[\"returnAll\"]}}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "enabled": "={{!$parameter[\"returnAll\"]}}",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/users/{{$parameter[\"userId\"]}}/ai/settings/snippets",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `ai.prompt` (Read only)."
        },
        {
          "name": "Add AI Snippet",
          "value": "api.ai.prompts.snippets.post",
          "action": "Add AI Snippet",
          "routing": {
            "request": {
              "url": "=/users/{{$parameter[\"userId\"]}}/ai/settings/snippets",
              "method": "POST"
            }
          },
          "description": "**Required scopes:** `ai.prompt` (Read and Write)."
        },
        {
          "name": "Get AI Snippet",
          "value": "api.ai.prompts.snippets.get",
          "action": "Get AI Snippet",
          "routing": {
            "request": {
              "url": "=/users/{{$parameter[\"userId\"]}}/ai/settings/snippets/{{$parameter[\"aiSnippetId\"]}}",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `ai.prompt` (Read only)."
        },
        {
          "name": "Delete AI Snippet",
          "value": "api.ai.prompts.snippets.delete",
          "action": "Delete AI Snippet",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "set",
                  "properties": {
                    "value": "={{ { \"success\": true } }}"
                  }
                }
              ]
            },
            "request": {
              "url": "=/users/{{$parameter[\"userId\"]}}/ai/settings/snippets/{{$parameter[\"aiSnippetId\"]}}",
              "method": "DELETE"
            }
          },
          "description": "**Required scopes:** `ai.prompt` (Read and Write)."
        },
        {
          "name": "Edit AI Snippet",
          "value": "api.ai.prompts.snippets.patch",
          "action": "Edit AI Snippet",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "=/users/{{$parameter[\"userId\"]}}/ai/settings/snippets/{{$parameter[\"aiSnippetId\"]}}",
              "method": "PATCH"
            }
          },
          "description": "**Required scopes:** `ai.prompt` (Read and Write)."
        },
        {
          "name": "AI File Translations",
          "value": "api.users.ai.file-translations.post",
          "action": "AI File Translations",
          "routing": {
            "request": {
              "url": "=/users/{{$parameter[\"userId\"]}}/ai/file-translations",
              "method": "POST"
            }
          },
          "description": "**Required scopes:** `ai.translate` (Read and Write)."
        },
        {
          "name": "Get File Translations Status",
          "value": "api.users.ai.file-translations.get",
          "action": "Get File Translations Status",
          "routing": {
            "request": {
              "url": "=/users/{{$parameter[\"userId\"]}}/ai/file-translations/{{$parameter[\"jobIdentifier\"]}}",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `ai.translate` (Read and Write)."
        },
        {
          "name": "Cancel File Translations",
          "value": "api.users.ai.file-translations.delete",
          "action": "Cancel File Translations",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "set",
                  "properties": {
                    "value": "={{ { \"success\": true } }}"
                  }
                }
              ]
            },
            "request": {
              "url": "=/users/{{$parameter[\"userId\"]}}/ai/file-translations/{{$parameter[\"jobIdentifier\"]}}",
              "method": "DELETE"
            }
          },
          "description": "**Required scopes:** `ai.translate` (Read and Write)."
        },
        {
          "name": "Download Translated File",
          "value": "api.users.ai.file-translations.download",
          "action": "Download Translated File",
          "routing": {
            "request": {
              "url": "=/users/{{$parameter[\"userId\"]}}/ai/file-translations/{{$parameter[\"jobIdentifier\"]}}/download",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `ai.translate` (Read and Write)."
        },
        {
          "name": "Download Translated File Strings",
          "value": "api.users.ai.file-translations.download-strings",
          "action": "Download Translated File Strings",
          "routing": {
            "request": {
              "url": "=/users/{{$parameter[\"userId\"]}}/ai/file-translations/{{$parameter[\"jobIdentifier\"]}}/translations",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `ai.translate` (Read and Write)."
        },
        {
          "name": "Clone AI Prompt",
          "value": "api.users.ai.prompts.clones.post",
          "action": "Clone AI Prompt",
          "routing": {
            "request": {
              "url": "=/users/{{$parameter[\"userId\"]}}/ai/prompts/{{$parameter[\"aiPromptId\"]}}/clones",
              "method": "POST"
            }
          },
          "description": "**Required scopes:** `ai.prompt` (Read and Write)."
        },
        {
          "name": "List AI Prompts",
          "value": "api.ai.prompts.getMany",
          "action": "List AI Prompts",
          "routing": {
            "send": {
              "paginate": "={{$parameter[\"returnAll\"]}}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "enabled": "={{!$parameter[\"returnAll\"]}}",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/users/{{$parameter[\"userId\"]}}/ai/prompts",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `ai.prompt` (Read only)."
        },
        {
          "name": "Add AI Prompt",
          "value": "api.users.ai.prompts.post",
          "action": "Add AI Prompt",
          "routing": {
            "request": {
              "url": "=/users/{{$parameter[\"userId\"]}}/ai/prompts",
              "method": "POST"
            }
          },
          "description": "**Required scopes:** `ai.prompt` (Read and Write)."
        },
        {
          "name": "Get AI Prompt",
          "value": "api.users.ai.prompts.get",
          "action": "Get AI Prompt",
          "routing": {
            "request": {
              "url": "=/users/{{$parameter[\"userId\"]}}/ai/prompts/{{$parameter[\"aiPromptId\"]}}",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `ai.prompt` (Read only)."
        },
        {
          "name": "Delete AI Prompt",
          "value": "api.users.ai.prompts.delete",
          "action": "Delete AI Prompt",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "set",
                  "properties": {
                    "value": "={{ { \"success\": true } }}"
                  }
                }
              ]
            },
            "request": {
              "url": "=/users/{{$parameter[\"userId\"]}}/ai/prompts/{{$parameter[\"aiPromptId\"]}}",
              "method": "DELETE"
            }
          },
          "description": "**Required scopes:** `ai.prompt` (Read and Write)."
        },
        {
          "name": "Edit AI Prompt",
          "value": "api.users.ai.prompts.patch",
          "action": "Edit AI Prompt",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "=/users/{{$parameter[\"userId\"]}}/ai/prompts/{{$parameter[\"aiPromptId\"]}}",
              "method": "PATCH"
            }
          },
          "description": "**Required scopes:** `ai.prompt` (Read and Write)."
        },
        {
          "name": "List AI Provider Models",
          "value": "api.ai.providers.models.crowdin.getMany",
          "action": "List AI Provider Models",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/users/{{$parameter[\"userId\"]}}/ai/providers/models",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `ai.provider` (Read only)."
        },
        {
          "name": "List AI Providers",
          "value": "api.ai.providers.getMany",
          "action": "List AI Providers",
          "routing": {
            "send": {
              "paginate": "={{$parameter[\"returnAll\"]}}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "enabled": "={{!$parameter[\"returnAll\"]}}",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/users/{{$parameter[\"userId\"]}}/ai/providers",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `ai.provider` (Read only)."
        },
        {
          "name": "Add AI Provider",
          "value": "api.users.ai.providers.post",
          "action": "Add AI Provider",
          "routing": {
            "request": {
              "url": "=/users/{{$parameter[\"userId\"]}}/ai/providers",
              "method": "POST"
            }
          },
          "description": "**Required scopes:** `ai.provider` (Read and Write)."
        },
        {
          "name": "Get AI Provider",
          "value": "api.users.ai.providers.get",
          "action": "Get AI Provider",
          "routing": {
            "request": {
              "url": "=/users/{{$parameter[\"userId\"]}}/ai/providers/{{$parameter[\"aiProviderId\"]}}",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `ai.provider` (Read only)."
        },
        {
          "name": "Delete AI Provider",
          "value": "api.users.ai.providers.delete",
          "action": "Delete AI Provider",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "set",
                  "properties": {
                    "value": "={{ { \"success\": true } }}"
                  }
                }
              ]
            },
            "request": {
              "url": "=/users/{{$parameter[\"userId\"]}}/ai/providers/{{$parameter[\"aiProviderId\"]}}",
              "method": "DELETE"
            }
          },
          "description": "**Required scopes:** `ai.provider` (Read and Write)."
        },
        {
          "name": "Edit AI Provider",
          "value": "api.users.ai.providers.patch",
          "action": "Edit AI Provider",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "=/users/{{$parameter[\"userId\"]}}/ai/providers/{{$parameter[\"aiProviderId\"]}}",
              "method": "PATCH"
            }
          },
          "description": "**Required scopes:** `ai.provider` (Read and Write)."
        },
        {
          "name": "List AI Provider Models",
          "value": "api.ai.providers.models.getMany",
          "action": "List AI Provider Models",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/users/{{$parameter[\"userId\"]}}/ai/providers/{{$parameter[\"aiProviderId\"]}}/models",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `ai.provider` (Read only)."
        },
        {
          "name": "List Supported AI Provider Models",
          "value": "api.ai.providers.supported-models.crowdin.getMany",
          "action": "List Supported AI Provider Models",
          "routing": {
            "send": {
              "paginate": "={{$parameter[\"returnAll\"]}}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "enabled": "={{!$parameter[\"returnAll\"]}}",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/users/{{$parameter[\"userId\"]}}/ai/providers/supported-models",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `ai.provider` (Read only)."
        },
        {
          "name": "Generate AI Report",
          "value": "api.users.ai.reports.post",
          "action": "Generate AI Report",
          "routing": {
            "request": {
              "url": "=/users/{{$parameter[\"userId\"]}}/ai/reports",
              "method": "POST"
            }
          },
          "description": "**Required scopes:** `ai.provider` (Read only)."
        },
        {
          "name": "Check AI Report Generation Status",
          "value": "api.users.ai.reports.get",
          "action": "Check AI Report Generation Status",
          "routing": {
            "request": {
              "url": "=/users/{{$parameter[\"userId\"]}}/ai/reports/{{$parameter[\"aiReportId\"]}}",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `ai.provider` (Read only)."
        },
        {
          "name": "Download AI Report",
          "value": "api.users.ai.reports.download.download",
          "action": "Download AI Report",
          "routing": {
            "request": {
              "url": "=/users/{{$parameter[\"userId\"]}}/ai/reports/{{$parameter[\"aiReportId\"]}}/download",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `ai.provider` (Read only)."
        },
        {
          "name": "Get AI Settings",
          "value": "api.users.ai.settings.get",
          "action": "Get AI Settings",
          "routing": {
            "request": {
              "url": "=/users/{{$parameter[\"userId\"]}}/ai/settings",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `ai` (Read only)."
        },
        {
          "name": "Edit AI Settings",
          "value": "api.users.ai.settings.patch",
          "action": "Edit AI Settings",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "=/users/{{$parameter[\"userId\"]}}/ai/settings",
              "method": "PATCH"
            }
          },
          "description": "**Required scopes:** `ai` (Read and Write)."
        },
        {
          "name": "AI Translate Strings",
          "value": "api.users.ai.translate.strings.post",
          "action": "AI Translate Strings",
          "routing": {
            "request": {
              "url": "=/users/{{$parameter[\"userId\"]}}/ai/translate",
              "method": "POST"
            }
          },
          "description": "**Required scopes:** `ai.translate` (Read and Write)."
        },
        {
          "name": "Get Project AI Settings",
          "value": "api.projects.ai.settings.get",
          "action": "Get Project AI Settings",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/ai/settings",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project` (Read only)."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "ai"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /users/{userId}/ai/settings/snippets",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "ai"
          ],
          "operation": [
            "api.ai.prompts.snippets.getMany"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /users/{userId}/ai/settings/snippets",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "ai"
          ],
          "operation": [
            "api.ai.prompts.snippets.post"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /users/{userId}/ai/settings/snippets/{aiSnippetId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "ai"
          ],
          "operation": [
            "api.ai.prompts.snippets.get"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "DELETE /users/{userId}/ai/settings/snippets/{aiSnippetId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "ai"
          ],
          "operation": [
            "api.ai.prompts.snippets.delete"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "PATCH /users/{userId}/ai/settings/snippets/{aiSnippetId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "ai"
          ],
          "operation": [
            "api.ai.prompts.snippets.patch"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /users/{userId}/ai/file-translations",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "ai"
          ],
          "operation": [
            "api.users.ai.file-translations.post"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /users/{userId}/ai/file-translations/{jobIdentifier}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "ai"
          ],
          "operation": [
            "api.users.ai.file-translations.get"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "DELETE /users/{userId}/ai/file-translations/{jobIdentifier}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "ai"
          ],
          "operation": [
            "api.users.ai.file-translations.delete"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /users/{userId}/ai/file-translations/{jobIdentifier}/download",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "ai"
          ],
          "operation": [
            "api.users.ai.file-translations.download"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /users/{userId}/ai/file-translations/{jobIdentifier}/translations",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "ai"
          ],
          "operation": [
            "api.users.ai.file-translations.download-strings"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /users/{userId}/ai/prompts/{aiPromptId}/clones",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "ai"
          ],
          "operation": [
            "api.users.ai.prompts.clones.post"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /users/{userId}/ai/prompts",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "ai"
          ],
          "operation": [
            "api.ai.prompts.getMany"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /users/{userId}/ai/prompts",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "ai"
          ],
          "operation": [
            "api.users.ai.prompts.post"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /users/{userId}/ai/prompts/{aiPromptId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "ai"
          ],
          "operation": [
            "api.users.ai.prompts.get"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "DELETE /users/{userId}/ai/prompts/{aiPromptId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "ai"
          ],
          "operation": [
            "api.users.ai.prompts.delete"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "PATCH /users/{userId}/ai/prompts/{aiPromptId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "ai"
          ],
          "operation": [
            "api.users.ai.prompts.patch"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /users/{userId}/ai/providers/models",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "ai"
          ],
          "operation": [
            "api.ai.providers.models.crowdin.getMany"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /users/{userId}/ai/providers",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "ai"
          ],
          "operation": [
            "api.ai.providers.getMany"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /users/{userId}/ai/providers",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "ai"
          ],
          "operation": [
            "api.users.ai.providers.post"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /users/{userId}/ai/providers/{aiProviderId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "ai"
          ],
          "operation": [
            "api.users.ai.providers.get"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "DELETE /users/{userId}/ai/providers/{aiProviderId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "ai"
          ],
          "operation": [
            "api.users.ai.providers.delete"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "PATCH /users/{userId}/ai/providers/{aiProviderId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "ai"
          ],
          "operation": [
            "api.users.ai.providers.patch"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /users/{userId}/ai/providers/{aiProviderId}/models",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "ai"
          ],
          "operation": [
            "api.ai.providers.models.getMany"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /users/{userId}/ai/providers/supported-models",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "ai"
          ],
          "operation": [
            "api.ai.providers.supported-models.crowdin.getMany"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /users/{userId}/ai/reports",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "ai"
          ],
          "operation": [
            "api.users.ai.reports.post"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /users/{userId}/ai/reports/{aiReportId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "ai"
          ],
          "operation": [
            "api.users.ai.reports.get"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /users/{userId}/ai/reports/{aiReportId}/download",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "ai"
          ],
          "operation": [
            "api.users.ai.reports.download.download"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /users/{userId}/ai/settings",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "ai"
          ],
          "operation": [
            "api.users.ai.settings.get"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /users/{userId}/ai/translate",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "ai"
          ],
          "operation": [
            "api.users.ai.translate.strings.post"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/ai/settings",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "ai"
          ],
          "operation": [
            "api.projects.ai.settings.get"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "options",
      "default": "api.storages.getMany",
      "options": [
        {
          "name": "List Storages",
          "value": "api.storages.getMany",
          "action": "List Storages",
          "routing": {
            "send": {
              "paginate": "={{$parameter[\"returnAll\"]}}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "enabled": "={{!$parameter[\"returnAll\"]}}",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/storages",
              "method": "GET"
            }
          }
        },
        {
          "name": "Get Storage",
          "value": "api.storages.get",
          "action": "Get Storage",
          "routing": {
            "request": {
              "url": "=/storages/{{$parameter[\"storageId\"]}}",
              "method": "GET"
            }
          }
        },
        {
          "name": "Delete Storage",
          "value": "api.storages.delete",
          "action": "Delete Storage",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "set",
                  "properties": {
                    "value": "={{ { \"success\": true } }}"
                  }
                }
              ]
            },
            "request": {
              "url": "=/storages/{{$parameter[\"storageId\"]}}",
              "method": "DELETE"
            }
          }
        },
        {
          "name": "Add Storage",
          "value": "api.storages.post",
          "action": "Add Storage",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "=/storages",
              "method": "POST",
              "headers": {
                "Crowdin-API-FileName": "={{$parameter[\"fileName\"]}}"
              }
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "storage"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /storages",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "storage"
          ],
          "operation": [
            "api.storages.getMany"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /storages/{storageId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "storage"
          ],
          "operation": [
            "api.storages.get"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "DELETE /storages/{storageId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "storage"
          ],
          "operation": [
            "api.storages.delete"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "options",
      "default": "api.languages.getMany",
      "options": [
        {
          "name": "List Supported Languages",
          "value": "api.languages.getMany",
          "action": "List Supported Languages",
          "routing": {
            "send": {
              "paginate": "={{$parameter[\"returnAll\"]}}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "enabled": "={{!$parameter[\"returnAll\"]}}",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/languages",
              "method": "GET"
            }
          }
        },
        {
          "name": "Add Custom Language",
          "value": "api.languages.post",
          "action": "Add Custom Language",
          "routing": {
            "request": {
              "url": "=/languages",
              "method": "POST"
            }
          },
          "description": "**Required scopes:** `language` (Read and Write)."
        },
        {
          "name": "Get Language",
          "value": "api.languages.get",
          "action": "Get Language",
          "routing": {
            "request": {
              "url": "=/languages/{{$parameter[\"languageId\"]}}",
              "method": "GET"
            }
          }
        },
        {
          "name": "Delete Custom Language",
          "value": "api.languages.delete",
          "action": "Delete Custom Language",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "set",
                  "properties": {
                    "value": "={{ { \"success\": true } }}"
                  }
                }
              ]
            },
            "request": {
              "url": "=/languages/{{$parameter[\"languageId\"]}}",
              "method": "DELETE"
            }
          },
          "description": "**Required scopes:** `language` (Read and Write)."
        },
        {
          "name": "Edit Custom Language",
          "value": "api.languages.patch",
          "action": "Edit Custom Language",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "=/languages/{{$parameter[\"languageId\"]}}",
              "method": "PATCH"
            }
          },
          "description": "**Required scopes:** `language` (Read and Write)."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "languages"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /languages",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "languages"
          ],
          "operation": [
            "api.languages.getMany"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /languages",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "languages"
          ],
          "operation": [
            "api.languages.post"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /languages/{languageId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "languages"
          ],
          "operation": [
            "api.languages.get"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "DELETE /languages/{languageId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "languages"
          ],
          "operation": [
            "api.languages.delete"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "PATCH /languages/{languageId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "languages"
          ],
          "operation": [
            "api.languages.patch"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "options",
      "default": "api.projects.getMany",
      "options": [
        {
          "name": "List Projects",
          "value": "api.projects.getMany",
          "action": "List Projects",
          "routing": {
            "send": {
              "paginate": "={{$parameter[\"returnAll\"]}}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "enabled": "={{!$parameter[\"returnAll\"]}}",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/projects",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.settings` (Read only)."
        },
        {
          "name": "Add Project",
          "value": "api.projects.post",
          "action": "Add Project",
          "routing": {
            "request": {
              "url": "=/projects",
              "method": "POST"
            }
          },
          "description": "**Required scopes:** `project.settings` (Read and Write)."
        },
        {
          "name": "Get Project",
          "value": "api.projects.get",
          "action": "Get Project",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.settings` (Read only)."
        },
        {
          "name": "Delete Project",
          "value": "api.projects.delete",
          "action": "Delete Project",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "set",
                  "properties": {
                    "value": "={{ { \"success\": true } }}"
                  }
                }
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}",
              "method": "DELETE"
            }
          },
          "description": "**Required scopes:** `project` (Read and Write)."
        },
        {
          "name": "Edit Project",
          "value": "api.projects.patch",
          "action": "Edit Project",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}",
              "method": "PATCH"
            }
          },
          "description": "**Required scopes:** `project.settings` (Read and Write)."
        },
        {
          "name": "Download Project File Format Settings Custom Segmentation",
          "value": "api.projects.file-format-settings.custom-segmentations.get",
          "action": "Download Project File Format Settings Custom Segmentation",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/file-format-settings/{{$parameter[\"fileFormatSettingsId\"]}}/custom-segmentations",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.settings` (Read only)."
        },
        {
          "name": "Reset Project File Format Settings Custom Segmentation",
          "value": "api.projects.file-format-settings.custom-segmentations.delete",
          "action": "Reset Project File Format Settings Custom Segmentation",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "set",
                  "properties": {
                    "value": "={{ { \"success\": true } }}"
                  }
                }
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/file-format-settings/{{$parameter[\"fileFormatSettingsId\"]}}/custom-segmentations",
              "method": "DELETE"
            }
          },
          "description": "**Required scopes:** `project.settings` (Read and Write)."
        },
        {
          "name": "List Project File Format Settings",
          "value": "api.projects.file-format-settings.getMany",
          "action": "List Project File Format Settings",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/file-format-settings",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.settings` (Read only)."
        },
        {
          "name": "Add Project File Format Settings",
          "value": "api.projects.file-format-settings.post",
          "action": "Add Project File Format Settings",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/file-format-settings",
              "method": "POST"
            }
          },
          "description": "**Required scopes:** `project.settings` (Read and Write)."
        },
        {
          "name": "Get Project File Format Settings",
          "value": "api.projects.file-format-settings.get",
          "action": "Get Project File Format Settings",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/file-format-settings/{{$parameter[\"fileFormatSettingsId\"]}}",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.settings` (Read only)."
        },
        {
          "name": "Delete Project File Format Settings",
          "value": "api.projects.file-format-settings.delete",
          "action": "Delete Project File Format Settings",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "set",
                  "properties": {
                    "value": "={{ { \"success\": true } }}"
                  }
                }
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/file-format-settings/{{$parameter[\"fileFormatSettingsId\"]}}",
              "method": "DELETE"
            }
          },
          "description": "**Required scopes:** `project.settings` (Read and Write)."
        },
        {
          "name": "Edit Project File Format Settings",
          "value": "api.projects.file-format-settings.patch",
          "action": "Edit Project File Format Settings",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/file-format-settings/{{$parameter[\"fileFormatSettingsId\"]}}",
              "method": "PATCH"
            }
          },
          "description": "**Required scopes:** `project.settings` (Read and Write)."
        },
        {
          "name": "List Project Strings Exporter Settings",
          "value": "api.projects.strings-exporter-settings.getMany",
          "action": "List Project Strings Exporter Settings",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/strings-exporter-settings",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.settings` (Read only)."
        },
        {
          "name": "Add Project Strings Exporter Settings",
          "value": "api.projects.strings-exporter-settings.post",
          "action": "Add Project Strings Exporter Settings",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/strings-exporter-settings",
              "method": "POST"
            }
          },
          "description": "**Required scopes:** `project.settings` (Read and Write)."
        },
        {
          "name": "Get Project Strings Exporter Settings",
          "value": "api.projects.strings-exporter-settings.get",
          "action": "Get Project Strings Exporter Settings",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/strings-exporter-settings/{{$parameter[\"systemStringsExporterSettingsId\"]}}",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.settings` (Read only)."
        },
        {
          "name": "Delete Project Strings Exporter Settings",
          "value": "api.projects.strings-exporter-settings.delete",
          "action": "Delete Project Strings Exporter Settings",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "set",
                  "properties": {
                    "value": "={{ { \"success\": true } }}"
                  }
                }
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/strings-exporter-settings/{{$parameter[\"systemStringsExporterSettingsId\"]}}",
              "method": "DELETE"
            }
          },
          "description": "**Required scopes:** `project.settings` (Read and Write)."
        },
        {
          "name": "Edit Project Strings Exporter Settings",
          "value": "api.projects.strings-exporter-settings.patch",
          "action": "Edit Project Strings Exporter Settings",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/strings-exporter-settings/{{$parameter[\"systemStringsExporterSettingsId\"]}}",
              "method": "PATCH"
            }
          },
          "description": "**Required scopes:** `project.settings` (Read and Write)."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "projects"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "projects"
          ],
          "operation": [
            "api.projects.getMany"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /projects",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "projects"
          ],
          "operation": [
            "api.projects.post"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "projects"
          ],
          "operation": [
            "api.projects.get"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "DELETE /projects/{projectId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "projects"
          ],
          "operation": [
            "api.projects.delete"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "PATCH /projects/{projectId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "projects"
          ],
          "operation": [
            "api.projects.patch"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/file-format-settings/{fileFormatSettingsId}/custom-segmentations",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "projects"
          ],
          "operation": [
            "api.projects.file-format-settings.custom-segmentations.get"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "DELETE /projects/{projectId}/file-format-settings/{fileFormatSettingsId}/custom-segmentations",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "projects"
          ],
          "operation": [
            "api.projects.file-format-settings.custom-segmentations.delete"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/file-format-settings",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "projects"
          ],
          "operation": [
            "api.projects.file-format-settings.getMany"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /projects/{projectId}/file-format-settings",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "projects"
          ],
          "operation": [
            "api.projects.file-format-settings.post"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/file-format-settings/{fileFormatSettingsId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "projects"
          ],
          "operation": [
            "api.projects.file-format-settings.get"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "DELETE /projects/{projectId}/file-format-settings/{fileFormatSettingsId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "projects"
          ],
          "operation": [
            "api.projects.file-format-settings.delete"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "PATCH /projects/{projectId}/file-format-settings/{fileFormatSettingsId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "projects"
          ],
          "operation": [
            "api.projects.file-format-settings.patch"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/strings-exporter-settings",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "projects"
          ],
          "operation": [
            "api.projects.strings-exporter-settings.getMany"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /projects/{projectId}/strings-exporter-settings",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "projects"
          ],
          "operation": [
            "api.projects.strings-exporter-settings.post"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/strings-exporter-settings/{systemStringsExporterSettingsId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "projects"
          ],
          "operation": [
            "api.projects.strings-exporter-settings.get"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "DELETE /projects/{projectId}/strings-exporter-settings/{systemStringsExporterSettingsId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "projects"
          ],
          "operation": [
            "api.projects.strings-exporter-settings.delete"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "PATCH /projects/{projectId}/strings-exporter-settings/{systemStringsExporterSettingsId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "projects"
          ],
          "operation": [
            "api.projects.strings-exporter-settings.patch"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "options",
      "default": "api.projects.branches.getMany",
      "options": [
        {
          "name": "List Branches",
          "value": "api.projects.branches.getMany",
          "action": "List Branches",
          "routing": {
            "send": {
              "paginate": "={{$parameter[\"returnAll\"]}}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "enabled": "={{!$parameter[\"returnAll\"]}}",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/branches",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.source.file` (Read only)."
        },
        {
          "name": "Add Branch",
          "value": "api.projects.branches.post",
          "action": "Add Branch",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/branches",
              "method": "POST"
            }
          },
          "description": "**Required scopes:** `project.source.file` (Read and Write)."
        },
        {
          "name": "Get Branch",
          "value": "api.projects.branches.get",
          "action": "Get Branch",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/branches/{{$parameter[\"branchId\"]}}",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.source.file` (Read only)."
        },
        {
          "name": "Delete Branch",
          "value": "api.projects.branches.delete",
          "action": "Delete Branch",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "set",
                  "properties": {
                    "value": "={{ { \"success\": true } }}"
                  }
                }
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/branches/{{$parameter[\"branchId\"]}}",
              "method": "DELETE"
            }
          },
          "description": "**Required scopes:** `project.source.file` (Read and Write)."
        },
        {
          "name": "Edit Branch",
          "value": "api.projects.branches.patch",
          "action": "Edit Branch",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/branches/{{$parameter[\"branchId\"]}}",
              "method": "PATCH"
            }
          },
          "description": "**Required scopes:** `project.source.file` (Read and Write)."
        },
        {
          "name": "List Directories",
          "value": "api.projects.directories.getMany",
          "action": "List Directories",
          "routing": {
            "send": {
              "paginate": "={{$parameter[\"returnAll\"]}}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "enabled": "={{!$parameter[\"returnAll\"]}}",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/directories",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.source.file` (Read only)."
        },
        {
          "name": "Add Directory",
          "value": "api.projects.directories.post",
          "action": "Add Directory",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/directories",
              "method": "POST"
            }
          },
          "description": "**Required scopes:** `project.source.file` (Read and Write)."
        },
        {
          "name": "Get Directory",
          "value": "api.projects.directories.get",
          "action": "Get Directory",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/directories/{{$parameter[\"directoryId\"]}}",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.source.file` (Read only)."
        },
        {
          "name": "Delete Directory",
          "value": "api.projects.directories.delete",
          "action": "Delete Directory",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "set",
                  "properties": {
                    "value": "={{ { \"success\": true } }}"
                  }
                }
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/directories/{{$parameter[\"directoryId\"]}}",
              "method": "DELETE"
            }
          },
          "description": "**Required scopes:** `project.source.file` (Read and Write)."
        },
        {
          "name": "Edit Directory",
          "value": "api.projects.directories.patch",
          "action": "Edit Directory",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/directories/{{$parameter[\"directoryId\"]}}",
              "method": "PATCH"
            }
          },
          "description": "**Required scopes:** `project.source.file` (Read and Write)."
        },
        {
          "name": "List Files",
          "value": "api.projects.files.getMany",
          "action": "List Files",
          "routing": {
            "send": {
              "paginate": "={{$parameter[\"returnAll\"]}}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "enabled": "={{!$parameter[\"returnAll\"]}}",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/files",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.source.file` (Read only)."
        },
        {
          "name": "Add File",
          "value": "api.projects.files.post",
          "action": "Add File",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/files",
              "method": "POST"
            }
          },
          "description": "**Required scopes:** `project.source.file` (Read and Write)."
        },
        {
          "name": "Get File",
          "value": "api.projects.files.get",
          "action": "Get File",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/files/{{$parameter[\"fileId\"]}}",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.source.file` (Read only)."
        },
        {
          "name": "Update or Restore File",
          "value": "api.projects.files.put",
          "action": "Update or Restore File",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/files/{{$parameter[\"fileId\"]}}",
              "method": "PUT"
            }
          },
          "description": "**Required scopes:** `project.source.file` (Read and Write).\n\nUpdate your current file with a new one or restore it to one of the previous revisions"
        },
        {
          "name": "Delete File",
          "value": "api.projects.files.delete",
          "action": "Delete File",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "set",
                  "properties": {
                    "value": "={{ { \"success\": true } }}"
                  }
                }
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/files/{{$parameter[\"fileId\"]}}",
              "method": "DELETE"
            }
          },
          "description": "**Required scopes:** `project.source.file` (Read and Write)."
        },
        {
          "name": "Edit File",
          "value": "api.projects.files.patch",
          "action": "Edit File",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/files/{{$parameter[\"fileId\"]}}",
              "method": "PATCH"
            }
          },
          "description": "**Required scopes:** `project.source.file` (Read and Write)."
        },
        {
          "name": "Download File Preview",
          "value": "api.projects.files.preview.get",
          "action": "Download File Preview",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/files/{{$parameter[\"fileId\"]}}/preview",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.source.file` (Read only)."
        },
        {
          "name": "Download File",
          "value": "api.projects.files.download.get",
          "action": "Download File",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/files/{{$parameter[\"fileId\"]}}/download",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.source.file` (Read only)."
        },
        {
          "name": "List Asset References",
          "value": "api.projects.files.references.getMany",
          "action": "List Asset References",
          "routing": {
            "send": {
              "paginate": "={{$parameter[\"returnAll\"]}}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "enabled": "={{!$parameter[\"returnAll\"]}}",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/files/{{$parameter[\"fileId\"]}}/references",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.source.file` (Read only).\n\nList all reference files for an asset"
        },
        {
          "name": "Add Asset Reference",
          "value": "api.projects.files.references.post",
          "action": "Add Asset Reference",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/files/{{$parameter[\"fileId\"]}}/references",
              "method": "POST"
            }
          },
          "description": "**Required scopes:** `project.source.file` (Read and Write).\n\nUpload a reference file for an asset"
        },
        {
          "name": "Get Asset Reference",
          "value": "api.projects.files.references.get",
          "action": "Get Asset Reference",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/files/{{$parameter[\"fileId\"]}}/references/{{$parameter[\"referenceId\"]}}",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.source.file` (Read only).\n\nGet information about a specific asset reference"
        },
        {
          "name": "Delete Asset Reference",
          "value": "api.projects.files.references.delete",
          "action": "Delete Asset Reference",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "set",
                  "properties": {
                    "value": "={{ { \"success\": true } }}"
                  }
                }
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/files/{{$parameter[\"fileId\"]}}/references/{{$parameter[\"referenceId\"]}}",
              "method": "DELETE"
            }
          },
          "description": "**Required scopes:** `project.source.file` (Read and Write).\n\nDelete a reference file for an asset"
        },
        {
          "name": "List File Revisions",
          "value": "api.projects.files.revisions.getMany",
          "action": "List File Revisions",
          "routing": {
            "send": {
              "paginate": "={{$parameter[\"returnAll\"]}}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "enabled": "={{!$parameter[\"returnAll\"]}}",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/files/{{$parameter[\"fileId\"]}}/revisions",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.source.file` (Read only)."
        },
        {
          "name": "Get File Revision",
          "value": "api.projects.files.revisions.get",
          "action": "Get File Revision",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/files/{{$parameter[\"fileId\"]}}/revisions/{{$parameter[\"revisionId\"]}}",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.source.file` (Read only)."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "sourceFiles"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/branches",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "sourceFiles"
          ],
          "operation": [
            "api.projects.branches.getMany"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /projects/{projectId}/branches",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "sourceFiles"
          ],
          "operation": [
            "api.projects.branches.post"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/branches/{branchId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "sourceFiles"
          ],
          "operation": [
            "api.projects.branches.get"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "DELETE /projects/{projectId}/branches/{branchId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "sourceFiles"
          ],
          "operation": [
            "api.projects.branches.delete"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "PATCH /projects/{projectId}/branches/{branchId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "sourceFiles"
          ],
          "operation": [
            "api.projects.branches.patch"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/directories",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "sourceFiles"
          ],
          "operation": [
            "api.projects.directories.getMany"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /projects/{projectId}/directories",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "sourceFiles"
          ],
          "operation": [
            "api.projects.directories.post"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/directories/{directoryId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "sourceFiles"
          ],
          "operation": [
            "api.projects.directories.get"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "DELETE /projects/{projectId}/directories/{directoryId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "sourceFiles"
          ],
          "operation": [
            "api.projects.directories.delete"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "PATCH /projects/{projectId}/directories/{directoryId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "sourceFiles"
          ],
          "operation": [
            "api.projects.directories.patch"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/files",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "sourceFiles"
          ],
          "operation": [
            "api.projects.files.getMany"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /projects/{projectId}/files",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "sourceFiles"
          ],
          "operation": [
            "api.projects.files.post"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/files/{fileId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "sourceFiles"
          ],
          "operation": [
            "api.projects.files.get"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "PUT /projects/{projectId}/files/{fileId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "sourceFiles"
          ],
          "operation": [
            "api.projects.files.put"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "DELETE /projects/{projectId}/files/{fileId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "sourceFiles"
          ],
          "operation": [
            "api.projects.files.delete"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "PATCH /projects/{projectId}/files/{fileId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "sourceFiles"
          ],
          "operation": [
            "api.projects.files.patch"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/files/{fileId}/preview",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "sourceFiles"
          ],
          "operation": [
            "api.projects.files.preview.get"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/files/{fileId}/download",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "sourceFiles"
          ],
          "operation": [
            "api.projects.files.download.get"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/files/{fileId}/references",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "sourceFiles"
          ],
          "operation": [
            "api.projects.files.references.getMany"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /projects/{projectId}/files/{fileId}/references",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "sourceFiles"
          ],
          "operation": [
            "api.projects.files.references.post"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/files/{fileId}/references/{referenceId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "sourceFiles"
          ],
          "operation": [
            "api.projects.files.references.get"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "DELETE /projects/{projectId}/files/{fileId}/references/{referenceId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "sourceFiles"
          ],
          "operation": [
            "api.projects.files.references.delete"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/files/{fileId}/revisions",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "sourceFiles"
          ],
          "operation": [
            "api.projects.files.revisions.getMany"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/files/{fileId}/revisions/{revisionId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "sourceFiles"
          ],
          "operation": [
            "api.projects.files.revisions.get"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "options",
      "default": "api.projects.pre-translations.getMany",
      "options": [
        {
          "name": "List Pre-Translations",
          "value": "api.projects.pre-translations.getMany",
          "action": "List Pre-Translations",
          "routing": {
            "send": {
              "paginate": "={{$parameter[\"returnAll\"]}}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "enabled": "={{!$parameter[\"returnAll\"]}}",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/pre-translations",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.translation` (Read only)."
        },
        {
          "name": "Apply Pre-Translation",
          "value": "api.projects.pre-translations.post",
          "action": "Apply Pre-Translation",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/pre-translations",
              "method": "POST"
            }
          },
          "description": "**Required scopes:** `project.translation` (Read and Write)."
        },
        {
          "name": "Pre-Translation Status",
          "value": "api.projects.pre-translations.get",
          "action": "Pre-Translation Status",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/pre-translations/{{$parameter[\"preTranslationId\"]}}",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.translation` (Read and Write)."
        },
        {
          "name": "Edit Pre-Translation",
          "value": "api.projects.pre-translations.patch",
          "action": "Edit Pre-Translation",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/pre-translations/{{$parameter[\"preTranslationId\"]}}",
              "method": "PATCH"
            }
          },
          "description": "**Required scopes:** `project.translation` (Read and Write)."
        },
        {
          "name": "Pre-Translation Report",
          "value": "api.projects.pre-translations.report.getReport",
          "action": "Pre-Translation Report",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/pre-translations/{{$parameter[\"preTranslationId\"]}}/report",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.translation` (Read and Write)."
        },
        {
          "name": "Validate text by QA Checks",
          "value": "api.projects.translations.validate-qa-checks.post",
          "action": "Validate text by QA Checks",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/translations/validate-qa-checks",
              "method": "POST"
            }
          }
        },
        {
          "name": "Build Project Directory Translation",
          "value": "api.projects.translations.builds.directories.post",
          "action": "Build Project Directory Translation",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/translations/builds/directories/{{$parameter[\"directoryId\"]}}",
              "method": "POST"
            }
          },
          "description": "**Required scopes:** `project.source.file` (Read only)."
        },
        {
          "name": "Build Project File Translation",
          "value": "api.projects.translations.builds.files.post",
          "action": "Build Project File Translation",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/translations/builds/files/{{$parameter[\"fileId\"]}}",
              "method": "POST"
            }
          },
          "description": "**Required scopes:** `project.source.file` (Read only)."
        },
        {
          "name": "List Project Builds",
          "value": "api.projects.translations.builds.getMany",
          "action": "List Project Builds",
          "routing": {
            "send": {
              "paginate": "={{$parameter[\"returnAll\"]}}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "enabled": "={{!$parameter[\"returnAll\"]}}",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/translations/builds",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.translation` (Read only)."
        },
        {
          "name": "Build Project Translation",
          "value": "api.projects.translations.builds.post",
          "action": "Build Project Translation",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/translations/builds",
              "method": "POST"
            }
          },
          "description": "**Required scopes:** `project.translation` (Read only)."
        },
        {
          "name": "Download Project Translations",
          "value": "api.projects.translations.builds.download.download",
          "action": "Download Project Translations",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/translations/builds/{{$parameter[\"buildId\"]}}/download",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.translation` (Read only)."
        },
        {
          "name": "Check Project Build Status",
          "value": "api.projects.translations.builds.get",
          "action": "Check Project Build Status",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/translations/builds/{{$parameter[\"buildId\"]}}",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.translation` (Read only)."
        },
        {
          "name": "Cancel Build",
          "value": "api.projects.translations.builds.delete",
          "action": "Cancel Build",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "set",
                  "properties": {
                    "value": "={{ { \"success\": true } }}"
                  }
                }
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/translations/builds/{{$parameter[\"buildId\"]}}",
              "method": "DELETE"
            }
          },
          "description": "**Required scopes:** `project.translation` (Read only)."
        },
        {
          "name": "Export Project Translation",
          "value": "api.projects.translations.exports.post",
          "action": "Export Project Translation",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/translations/exports",
              "method": "POST"
            }
          },
          "description": "**Required scopes:** `project.translation` (Read only).\n\n__Note:__ For instant translation delivery to your mobile, web, server, or desktop apps, it is recommended to use [OTA](https://support.crowdin.com/content-delivery/)."
        },
        {
          "name": "Import Translations",
          "value": "api.projects.translations.imports",
          "action": "Import Translations",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/translations/imports",
              "method": "POST"
            }
          },
          "description": "**Required scopes:** `project.translation` (Read and Write)."
        },
        {
          "name": "Import Translations Status",
          "value": "api.projects.translations.imports.get",
          "action": "Import Translations Status",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/translations/imports/{{$parameter[\"importTranslationId\"]}}",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.translation` (Read only)."
        },
        {
          "name": "Import Translations Report",
          "value": "api.projects.translations.imports.report.get",
          "action": "Import Translations Report",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/translations/imports/{{$parameter[\"importTranslationId\"]}}/report",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.translation` (Read only)."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "translations"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/pre-translations",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "translations"
          ],
          "operation": [
            "api.projects.pre-translations.getMany"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /projects/{projectId}/pre-translations",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "translations"
          ],
          "operation": [
            "api.projects.pre-translations.post"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/pre-translations/{preTranslationId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "translations"
          ],
          "operation": [
            "api.projects.pre-translations.get"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "PATCH /projects/{projectId}/pre-translations/{preTranslationId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "translations"
          ],
          "operation": [
            "api.projects.pre-translations.patch"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/pre-translations/{preTranslationId}/report",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "translations"
          ],
          "operation": [
            "api.projects.pre-translations.report.getReport"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /projects/{projectId}/translations/validate-qa-checks",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "translations"
          ],
          "operation": [
            "api.projects.translations.validate-qa-checks.post"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /projects/{projectId}/translations/builds/directories/{directoryId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "translations"
          ],
          "operation": [
            "api.projects.translations.builds.directories.post"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /projects/{projectId}/translations/builds/files/{fileId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "translations"
          ],
          "operation": [
            "api.projects.translations.builds.files.post"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/translations/builds",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "translations"
          ],
          "operation": [
            "api.projects.translations.builds.getMany"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /projects/{projectId}/translations/builds",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "translations"
          ],
          "operation": [
            "api.projects.translations.builds.post"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/translations/builds/{buildId}/download",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "translations"
          ],
          "operation": [
            "api.projects.translations.builds.download.download"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/translations/builds/{buildId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "translations"
          ],
          "operation": [
            "api.projects.translations.builds.get"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "DELETE /projects/{projectId}/translations/builds/{buildId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "translations"
          ],
          "operation": [
            "api.projects.translations.builds.delete"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /projects/{projectId}/translations/exports",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "translations"
          ],
          "operation": [
            "api.projects.translations.exports.post"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /projects/{projectId}/translations/imports",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "translations"
          ],
          "operation": [
            "api.projects.translations.imports"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/translations/imports/{importTranslationId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "translations"
          ],
          "operation": [
            "api.projects.translations.imports.get"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/translations/imports/{importTranslationId}/report",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "translations"
          ],
          "operation": [
            "api.projects.translations.imports.report.get"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "options",
      "default": "api.projects.strings.getMany",
      "options": [
        {
          "name": "List Strings",
          "value": "api.projects.strings.getMany",
          "action": "List Strings",
          "routing": {
            "send": {
              "paginate": "={{$parameter[\"returnAll\"]}}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "enabled": "={{!$parameter[\"returnAll\"]}}",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/strings",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.source.string` (Read only)."
        },
        {
          "name": "Add String",
          "value": "api.projects.strings.post",
          "action": "Add String",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/strings",
              "method": "POST"
            }
          },
          "description": "**Required scopes:** `project.source.string` (Read and Write)."
        },
        {
          "name": "Get String",
          "value": "api.projects.strings.get",
          "action": "Get String",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/strings/{{$parameter[\"stringId\"]}}",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.source.string` (Read only)."
        },
        {
          "name": "Delete String",
          "value": "api.projects.strings.delete",
          "action": "Delete String",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "set",
                  "properties": {
                    "value": "={{ { \"success\": true } }}"
                  }
                }
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/strings/{{$parameter[\"stringId\"]}}",
              "method": "DELETE"
            }
          },
          "description": "**Required scopes:** `project.source.string` (Read and Write)."
        },
        {
          "name": "Edit String",
          "value": "api.projects.strings.patch",
          "action": "Edit String",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/strings/{{$parameter[\"stringId\"]}}",
              "method": "PATCH"
            }
          },
          "description": "**Required scopes:** `project.source.string` (Read and Write)."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "sourceStrings"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/strings",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "sourceStrings"
          ],
          "operation": [
            "api.projects.strings.getMany"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /projects/{projectId}/strings",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "sourceStrings"
          ],
          "operation": [
            "api.projects.strings.post"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/strings/{stringId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "sourceStrings"
          ],
          "operation": [
            "api.projects.strings.get"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "DELETE /projects/{projectId}/strings/{stringId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "sourceStrings"
          ],
          "operation": [
            "api.projects.strings.delete"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "options",
      "default": "api.projects.approvals.getMany",
      "options": [
        {
          "name": "List Translation Approvals",
          "value": "api.projects.approvals.getMany",
          "action": "List Translation Approvals",
          "routing": {
            "send": {
              "paginate": "={{$parameter[\"returnAll\"]}}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "enabled": "={{!$parameter[\"returnAll\"]}}",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/approvals",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.translation` (Read only).\n\n__Note:__ Either `translationId` OR `fileId` OR `labelIds` OR `excludeLabelIds` with `languageId` OR `stringId` with `languageId` are required"
        },
        {
          "name": "Add Approval",
          "value": "api.projects.approvals.post",
          "action": "Add Approval",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/approvals",
              "method": "POST"
            }
          },
          "description": "**Required scopes:** `project.translation` (Read and Write)."
        },
        {
          "name": "Remove String/Asset Approvals",
          "value": "api.projects.approvals.deleteMany",
          "action": "Remove String/Asset Approvals",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "set",
                  "properties": {
                    "value": "={{ { \"success\": true } }}"
                  }
                }
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/approvals",
              "method": "DELETE"
            }
          },
          "description": "**Required scopes:** `project.translation` (Read and Write).\n\nRemove all approvals for a string or asset. Use the oneOf pattern:\n- **String type**: Use `stringId`\n- **Asset type**: Use `fileId`"
        },
        {
          "name": "Get Approval",
          "value": "api.projects.approvals.get",
          "action": "Get Approval",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/approvals/{{$parameter[\"approvalId\"]}}",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.translation` (Read only)."
        },
        {
          "name": "Remove Approval",
          "value": "api.projects.approvals.delete",
          "action": "Remove Approval",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "set",
                  "properties": {
                    "value": "={{ { \"success\": true } }}"
                  }
                }
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/approvals/{{$parameter[\"approvalId\"]}}",
              "method": "DELETE"
            }
          },
          "description": "**Required scopes:** `project.translation` (Read and Write)."
        },
        {
          "name": "List Language Translations",
          "value": "api.projects.languages.translations.getMany",
          "action": "List Language Translations",
          "routing": {
            "send": {
              "paginate": "={{$parameter[\"returnAll\"]}}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "enabled": "={{!$parameter[\"returnAll\"]}}",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/languages/{{$parameter[\"languageId\"]}}/translations",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.translation` (Read only).\n\n__Note:__ For instant translation delivery to your mobile, web, server, or desktop apps, it is recommended to use [OTA](https://support.crowdin.com/content-delivery/)."
        },
        {
          "name": "List Translations",
          "value": "api.projects.translations.getMany",
          "action": "List Translations",
          "routing": {
            "send": {
              "paginate": "={{$parameter[\"returnAll\"]}}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "enabled": "={{!$parameter[\"returnAll\"]}}",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/translations",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.translation` (Read only).\n\n__Note:__ For instant translation delivery to your mobile, web, server, or desktop apps, it is recommended to use [OTA](https://support.crowdin.com/content-delivery/)."
        },
        {
          "name": "Add Translation",
          "value": "api.projects.translations.post",
          "action": "Add Translation",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/translations",
              "method": "POST"
            }
          },
          "description": "**Required scopes:** `project.translation` (Read and Write)."
        },
        {
          "name": "Delete String/Asset Translations",
          "value": "api.projects.translations.deleteMany",
          "action": "Delete String/Asset Translations",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "set",
                  "properties": {
                    "value": "={{ { \"success\": true } }}"
                  }
                }
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/translations",
              "method": "DELETE"
            }
          },
          "description": "**Required scopes:** `project.translation` (Read and Write).\n\nDelete translations for a string or an asset. Use the oneOf pattern:\n - **String type**: Use `stringId`\n - **Asset type**: Use `fileId`"
        },
        {
          "name": "Get Translation",
          "value": "api.projects.translations.get",
          "action": "Get Translation",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/translations/{{$parameter[\"translationId\"]}}",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.translation` (Read only)."
        },
        {
          "name": "Restore Translation",
          "value": "api.projects.translations.put",
          "action": "Restore Translation",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/translations/{{$parameter[\"translationId\"]}}",
              "method": "PUT"
            }
          },
          "description": "**Required scopes:** `project.translation` (Read and Write)."
        },
        {
          "name": "Delete Translation",
          "value": "api.projects.translations.delete",
          "action": "Delete Translation",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "set",
                  "properties": {
                    "value": "={{ { \"success\": true } }}"
                  }
                }
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/translations/{{$parameter[\"translationId\"]}}",
              "method": "DELETE"
            }
          },
          "description": "**Required scopes:** `project.translation` (Read and Write)."
        },
        {
          "name": "Translation Alignment",
          "value": "api.projects.translations.alignment.post",
          "action": "Translation Alignment",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/translations/alignment",
              "method": "POST"
            }
          },
          "description": "**Required scopes:** `project.translation` (Read and Write)."
        },
        {
          "name": "List Translation Votes",
          "value": "api.projects.votes.getMany",
          "action": "List Translation Votes",
          "routing": {
            "send": {
              "paginate": "={{$parameter[\"returnAll\"]}}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "enabled": "={{!$parameter[\"returnAll\"]}}",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/votes",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.translation` (Read only).\n\n__Note:__ Either `translationId` OR `fileId` OR `labelIds` OR `excludeLabelIds` with `languageId` OR `stringId` with `languageId` are required"
        },
        {
          "name": "Add Vote",
          "value": "api.projects.votes.post",
          "action": "Add Vote",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/votes",
              "method": "POST"
            }
          },
          "description": "**Required scopes:** `project.translation` (Read and Write)."
        },
        {
          "name": "Get Vote",
          "value": "api.projects.votes.get",
          "action": "Get Vote",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/votes/{{$parameter[\"voteId\"]}}",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.translation` (Read only)."
        },
        {
          "name": "Cancel Vote",
          "value": "api.projects.votes.delete",
          "action": "Cancel Vote",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "set",
                  "properties": {
                    "value": "={{ { \"success\": true } }}"
                  }
                }
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/votes/{{$parameter[\"voteId\"]}}",
              "method": "DELETE"
            }
          },
          "description": "**Required scopes:** `project.translation` (Read and Write)."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "stringAssetTranslations"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/approvals",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "stringAssetTranslations"
          ],
          "operation": [
            "api.projects.approvals.getMany"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /projects/{projectId}/approvals",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "stringAssetTranslations"
          ],
          "operation": [
            "api.projects.approvals.post"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "DELETE /projects/{projectId}/approvals",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "stringAssetTranslations"
          ],
          "operation": [
            "api.projects.approvals.deleteMany"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/approvals/{approvalId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "stringAssetTranslations"
          ],
          "operation": [
            "api.projects.approvals.get"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "DELETE /projects/{projectId}/approvals/{approvalId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "stringAssetTranslations"
          ],
          "operation": [
            "api.projects.approvals.delete"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/languages/{languageId}/translations",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "stringAssetTranslations"
          ],
          "operation": [
            "api.projects.languages.translations.getMany"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/translations",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "stringAssetTranslations"
          ],
          "operation": [
            "api.projects.translations.getMany"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /projects/{projectId}/translations",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "stringAssetTranslations"
          ],
          "operation": [
            "api.projects.translations.post"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "DELETE /projects/{projectId}/translations",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "stringAssetTranslations"
          ],
          "operation": [
            "api.projects.translations.deleteMany"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/translations/{translationId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "stringAssetTranslations"
          ],
          "operation": [
            "api.projects.translations.get"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "PUT /projects/{projectId}/translations/{translationId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "stringAssetTranslations"
          ],
          "operation": [
            "api.projects.translations.put"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "DELETE /projects/{projectId}/translations/{translationId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "stringAssetTranslations"
          ],
          "operation": [
            "api.projects.translations.delete"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /projects/{projectId}/translations/alignment",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "stringAssetTranslations"
          ],
          "operation": [
            "api.projects.translations.alignment.post"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/votes",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "stringAssetTranslations"
          ],
          "operation": [
            "api.projects.votes.getMany"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /projects/{projectId}/votes",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "stringAssetTranslations"
          ],
          "operation": [
            "api.projects.votes.post"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/votes/{voteId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "stringAssetTranslations"
          ],
          "operation": [
            "api.projects.votes.get"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "DELETE /projects/{projectId}/votes/{voteId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "stringAssetTranslations"
          ],
          "operation": [
            "api.projects.votes.delete"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "options",
      "default": "api.projects.comments.attachments.delete",
      "options": [
        {
          "name": "Delete Attachment from String/Asset Comment",
          "value": "api.projects.comments.attachments.delete",
          "action": "Delete Attachment from String/Asset Comment",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "set",
                  "properties": {
                    "value": "={{ { \"success\": true } }}"
                  }
                }
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/comments/{{$parameter[\"commentId\"]}}/attachments/{{$parameter[\"attachmentId\"]}}",
              "method": "DELETE"
            }
          },
          "description": "**Required scopes:** `project.source.string` (Read and Write)."
        },
        {
          "name": "List String/Asset Comments",
          "value": "api.projects.comments.getMany",
          "action": "List String/Asset Comments",
          "routing": {
            "send": {
              "paginate": "={{$parameter[\"returnAll\"]}}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "enabled": "={{!$parameter[\"returnAll\"]}}",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/comments",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.source.string` (Read only).\n\nList comments and issues for strings or assets. Use the oneOf pattern:\n- **String type**: Use `stringId`\n- **Asset type**: Use `fileId`\n- **All comments**: Omit both parameters to list all project comments"
        },
        {
          "name": "Add String/Asset Comment",
          "value": "api.projects.comments.post",
          "action": "Add String/Asset Comment",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/comments",
              "method": "POST"
            }
          },
          "description": "**Required scopes:** `project.source.string` (Read and Write).\n\nAdd a comment or issue to a string or asset. Use the oneOf pattern:\n- **String type**: Use `stringId`\n- **Asset type**: Use `fileId`"
        },
        {
          "name": "Get String/Asset Comment",
          "value": "api.projects.comments.get",
          "action": "Get String/Asset Comment",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/comments/{{$parameter[\"commentId\"]}}",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.source.string` (Read only)."
        },
        {
          "name": "Delete String/Asset Comment",
          "value": "api.projects.comments.delete",
          "action": "Delete String/Asset Comment",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "set",
                  "properties": {
                    "value": "={{ { \"success\": true } }}"
                  }
                }
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/comments/{{$parameter[\"commentId\"]}}",
              "method": "DELETE"
            }
          },
          "description": "**Required scopes:** `project.source.string` (Read and Write)."
        },
        {
          "name": "Edit String/Asset Comment",
          "value": "api.projects.comments.patch",
          "action": "Edit String/Asset Comment",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/comments/{{$parameter[\"commentId\"]}}",
              "method": "PATCH"
            }
          },
          "description": "**Required scopes:** `project.source.string` (Read and Write)."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "stringAssetComments"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "DELETE /projects/{projectId}/comments/{commentId}/attachments/{attachmentId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "stringAssetComments"
          ],
          "operation": [
            "api.projects.comments.attachments.delete"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/comments",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "stringAssetComments"
          ],
          "operation": [
            "api.projects.comments.getMany"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /projects/{projectId}/comments",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "stringAssetComments"
          ],
          "operation": [
            "api.projects.comments.post"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/comments/{commentId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "stringAssetComments"
          ],
          "operation": [
            "api.projects.comments.get"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "DELETE /projects/{projectId}/comments/{commentId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "stringAssetComments"
          ],
          "operation": [
            "api.projects.comments.delete"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "options",
      "default": "api.projects.screenshots.getMany",
      "options": [
        {
          "name": "List Screenshots",
          "value": "api.projects.screenshots.getMany",
          "action": "List Screenshots",
          "routing": {
            "send": {
              "paginate": "={{$parameter[\"returnAll\"]}}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "enabled": "={{!$parameter[\"returnAll\"]}}",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/screenshots",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.screenshot` (Read only)."
        },
        {
          "name": "Add Screenshot",
          "value": "api.projects.screenshots.post",
          "action": "Add Screenshot",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/screenshots",
              "method": "POST"
            }
          },
          "description": "**Required scopes:** `project.screenshot` (Read and Write)."
        },
        {
          "name": "Get Screenshot",
          "value": "api.projects.screenshots.get",
          "action": "Get Screenshot",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/screenshots/{{$parameter[\"screenshotId\"]}}",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.screenshot` (Read only)."
        },
        {
          "name": "Update Screenshot",
          "value": "api.projects.screenshots.put",
          "action": "Update Screenshot",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/screenshots/{{$parameter[\"screenshotId\"]}}",
              "method": "PUT"
            }
          },
          "description": "**Required scopes:** `project.screenshot` (Read and Write)."
        },
        {
          "name": "Delete Screenshot",
          "value": "api.projects.screenshots.delete",
          "action": "Delete Screenshot",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "set",
                  "properties": {
                    "value": "={{ { \"success\": true } }}"
                  }
                }
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/screenshots/{{$parameter[\"screenshotId\"]}}",
              "method": "DELETE"
            }
          },
          "description": "**Required scopes:** `project.screenshot` (Read and Write)."
        },
        {
          "name": "Edit Screenshot",
          "value": "api.projects.screenshots.patch",
          "action": "Edit Screenshot",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/screenshots/{{$parameter[\"screenshotId\"]}}",
              "method": "PATCH"
            }
          },
          "description": "**Required scopes:** `project.screenshot` (Read and Write)."
        },
        {
          "name": "List Tags",
          "value": "api.projects.screenshots.tags.getMany",
          "action": "List Tags",
          "routing": {
            "send": {
              "paginate": "={{$parameter[\"returnAll\"]}}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "enabled": "={{!$parameter[\"returnAll\"]}}",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/screenshots/{{$parameter[\"screenshotId\"]}}/tags",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.screenshot` (Read only)."
        },
        {
          "name": "Replace Tags (Auto Tag)",
          "value": "api.projects.screenshots.tags.putMany",
          "action": "Replace Tags (Auto Tag)",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/screenshots/{{$parameter[\"screenshotId\"]}}/tags",
              "method": "PUT"
            }
          },
          "description": "**Required scopes:** `project.screenshot` (Read and Write)."
        },
        {
          "name": "Add Tag",
          "value": "api.projects.screenshots.tags.post",
          "action": "Add Tag",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/screenshots/{{$parameter[\"screenshotId\"]}}/tags",
              "method": "POST"
            }
          },
          "description": "**Required scopes:** `project.screenshot` (Read and Write)."
        },
        {
          "name": "Clear Tags",
          "value": "api.projects.screenshots.tags.deleteMany",
          "action": "Clear Tags",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "set",
                  "properties": {
                    "value": "={{ { \"success\": true } }}"
                  }
                }
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/screenshots/{{$parameter[\"screenshotId\"]}}/tags",
              "method": "DELETE"
            }
          },
          "description": "**Required scopes:** `project.screenshot` (Read and Write)."
        },
        {
          "name": "Get Tag",
          "value": "api.projects.screenshots.tags.get",
          "action": "Get Tag",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/screenshots/{{$parameter[\"screenshotId\"]}}/tags/{{$parameter[\"tagId\"]}}",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.screenshot` (Read only)."
        },
        {
          "name": "Delete Tag",
          "value": "api.projects.screenshots.tags.delete",
          "action": "Delete Tag",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "set",
                  "properties": {
                    "value": "={{ { \"success\": true } }}"
                  }
                }
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/screenshots/{{$parameter[\"screenshotId\"]}}/tags/{{$parameter[\"tagId\"]}}",
              "method": "DELETE"
            }
          },
          "description": "**Required scopes:** `project.screenshot` (Read and Write)."
        },
        {
          "name": "Edit Tag",
          "value": "api.projects.screenshots.tags.patch",
          "action": "Edit Tag",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/screenshots/{{$parameter[\"screenshotId\"]}}/tags/{{$parameter[\"tagId\"]}}",
              "method": "PATCH"
            }
          },
          "description": "**Required scopes:** `project.screenshot` (Read and Write)."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "screenshots"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/screenshots",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "screenshots"
          ],
          "operation": [
            "api.projects.screenshots.getMany"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /projects/{projectId}/screenshots",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "screenshots"
          ],
          "operation": [
            "api.projects.screenshots.post"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/screenshots/{screenshotId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "screenshots"
          ],
          "operation": [
            "api.projects.screenshots.get"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "PUT /projects/{projectId}/screenshots/{screenshotId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "screenshots"
          ],
          "operation": [
            "api.projects.screenshots.put"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "DELETE /projects/{projectId}/screenshots/{screenshotId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "screenshots"
          ],
          "operation": [
            "api.projects.screenshots.delete"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "PATCH /projects/{projectId}/screenshots/{screenshotId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "screenshots"
          ],
          "operation": [
            "api.projects.screenshots.patch"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/screenshots/{screenshotId}/tags",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "screenshots"
          ],
          "operation": [
            "api.projects.screenshots.tags.getMany"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "PUT /projects/{projectId}/screenshots/{screenshotId}/tags",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "screenshots"
          ],
          "operation": [
            "api.projects.screenshots.tags.putMany"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /projects/{projectId}/screenshots/{screenshotId}/tags",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "screenshots"
          ],
          "operation": [
            "api.projects.screenshots.tags.post"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "DELETE /projects/{projectId}/screenshots/{screenshotId}/tags",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "screenshots"
          ],
          "operation": [
            "api.projects.screenshots.tags.deleteMany"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/screenshots/{screenshotId}/tags/{tagId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "screenshots"
          ],
          "operation": [
            "api.projects.screenshots.tags.get"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "DELETE /projects/{projectId}/screenshots/{screenshotId}/tags/{tagId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "screenshots"
          ],
          "operation": [
            "api.projects.screenshots.tags.delete"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "PATCH /projects/{projectId}/screenshots/{screenshotId}/tags/{tagId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "screenshots"
          ],
          "operation": [
            "api.projects.screenshots.tags.patch"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "options",
      "default": "api.glossaries.concepts.getMany",
      "options": [
        {
          "name": "List Concepts",
          "value": "api.glossaries.concepts.getMany",
          "action": "List Concepts",
          "routing": {
            "send": {
              "paginate": "={{$parameter[\"returnAll\"]}}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "enabled": "={{!$parameter[\"returnAll\"]}}",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/glossaries/{{$parameter[\"glossaryId\"]}}/concepts",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `glossary` (Read only)."
        },
        {
          "name": "Get concept",
          "value": "api.glossaries.concepts.get",
          "action": "Get concept",
          "routing": {
            "request": {
              "url": "=/glossaries/{{$parameter[\"glossaryId\"]}}/concepts/{{$parameter[\"conceptId\"]}}",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `glossary` (Read only)."
        },
        {
          "name": "Update concept",
          "value": "api.glossaries.concepts.put",
          "action": "Update concept",
          "routing": {
            "request": {
              "url": "=/glossaries/{{$parameter[\"glossaryId\"]}}/concepts/{{$parameter[\"conceptId\"]}}",
              "method": "PUT"
            }
          },
          "description": "**Required scopes:** `glossary` (Read and Write).\n\n__Note:__ There is no separate method for concept creation. Concepts are automatically created when adding a term without specifying a `conceptId`."
        },
        {
          "name": "Delete Concept",
          "value": "api.glossaries.concepts.delete",
          "action": "Delete Concept",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "set",
                  "properties": {
                    "value": "={{ { \"success\": true } }}"
                  }
                }
              ]
            },
            "request": {
              "url": "=/glossaries/{{$parameter[\"glossaryId\"]}}/concepts/{{$parameter[\"conceptId\"]}}",
              "method": "DELETE"
            }
          },
          "description": "**Required scopes:** `glossary` (Read and Write)."
        },
        {
          "name": "List Glossaries",
          "value": "api.glossaries.getMany",
          "action": "List Glossaries",
          "routing": {
            "send": {
              "paginate": "={{$parameter[\"returnAll\"]}}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "enabled": "={{!$parameter[\"returnAll\"]}}",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/glossaries",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `glossary` (Read only)."
        },
        {
          "name": "Add Glossary",
          "value": "api.glossaries.post",
          "action": "Add Glossary",
          "routing": {
            "request": {
              "url": "=/glossaries",
              "method": "POST"
            }
          },
          "description": "**Required scopes:** `glossary` (Read and Write)."
        },
        {
          "name": "Get Glossary",
          "value": "api.glossaries.get",
          "action": "Get Glossary",
          "routing": {
            "request": {
              "url": "=/glossaries/{{$parameter[\"glossaryId\"]}}",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `glossary` (Read only)."
        },
        {
          "name": "Delete Glossary",
          "value": "api.glossaries.delete",
          "action": "Delete Glossary",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "set",
                  "properties": {
                    "value": "={{ { \"success\": true } }}"
                  }
                }
              ]
            },
            "request": {
              "url": "=/glossaries/{{$parameter[\"glossaryId\"]}}",
              "method": "DELETE"
            }
          },
          "description": "**Required scopes:** `glossary` (Read and Write)."
        },
        {
          "name": "Edit Glossary",
          "value": "api.glossaries.patch",
          "action": "Edit Glossary",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "=/glossaries/{{$parameter[\"glossaryId\"]}}",
              "method": "PATCH"
            }
          },
          "description": "**Required scopes:** `glossary` (Read and Write)."
        },
        {
          "name": "Export Glossary",
          "value": "api.glossaries.exports.post",
          "action": "Export Glossary",
          "routing": {
            "request": {
              "url": "=/glossaries/{{$parameter[\"glossaryId\"]}}/exports",
              "method": "POST"
            }
          },
          "description": "**Required scopes:** `glossary` (Read only)."
        },
        {
          "name": "Check Glossary Export Status",
          "value": "api.glossaries.exports.get",
          "action": "Check Glossary Export Status",
          "routing": {
            "request": {
              "url": "=/glossaries/{{$parameter[\"glossaryId\"]}}/exports/{{$parameter[\"exportId\"]}}",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `glossary` (Read only)."
        },
        {
          "name": "Download Glossary",
          "value": "api.glossaries.exports.download.download",
          "action": "Download Glossary",
          "routing": {
            "request": {
              "url": "=/glossaries/{{$parameter[\"glossaryId\"]}}/exports/{{$parameter[\"exportId\"]}}/download",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `glossary` (Read only)."
        },
        {
          "name": "Import Glossary",
          "value": "api.glossaries.imports.post",
          "action": "Import Glossary",
          "routing": {
            "request": {
              "url": "=/glossaries/{{$parameter[\"glossaryId\"]}}/imports",
              "method": "POST"
            }
          },
          "description": "**Required scopes:** `glossary` (Read and Write)."
        },
        {
          "name": "Check Glossary Import Status",
          "value": "api.glossaries.imports.get",
          "action": "Check Glossary Import Status",
          "routing": {
            "request": {
              "url": "=/glossaries/{{$parameter[\"glossaryId\"]}}/imports/{{$parameter[\"importId\"]}}",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `glossary` (Read and Write)."
        },
        {
          "name": "Concordance search in Glossaries",
          "value": "api.projects.glossaries.concordance.post",
          "action": "Concordance search in Glossaries",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/glossaries/concordance",
              "method": "POST"
            }
          },
          "description": "**Required scopes:** `glossary` (Read and Write)."
        },
        {
          "name": "List Terms",
          "value": "api.glossaries.terms.getMany",
          "action": "List Terms",
          "routing": {
            "send": {
              "paginate": "={{$parameter[\"returnAll\"]}}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "enabled": "={{!$parameter[\"returnAll\"]}}",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/glossaries/{{$parameter[\"glossaryId\"]}}/terms",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `glossary` (Read only)."
        },
        {
          "name": "Add Term",
          "value": "api.glossaries.terms.post",
          "action": "Add Term",
          "routing": {
            "request": {
              "url": "=/glossaries/{{$parameter[\"glossaryId\"]}}/terms",
              "method": "POST"
            }
          },
          "description": "**Required scopes:** `glossary` (Read and Write).\n\n__Note:__ If `conceptId` is not specified, a new concept will be automatically created for the term."
        },
        {
          "name": "Clear Glossary",
          "value": "api.glossaries.terms.deleteMany",
          "action": "Clear Glossary",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "set",
                  "properties": {
                    "value": "={{ { \"success\": true } }}"
                  }
                }
              ]
            },
            "request": {
              "url": "=/glossaries/{{$parameter[\"glossaryId\"]}}/terms",
              "method": "DELETE"
            }
          },
          "description": "**Required scopes:** `glossary` (Read and Write)."
        },
        {
          "name": "Get Term",
          "value": "api.glossaries.terms.get",
          "action": "Get Term",
          "routing": {
            "request": {
              "url": "=/glossaries/{{$parameter[\"glossaryId\"]}}/terms/{{$parameter[\"termId\"]}}",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `glossary` (Read only)."
        },
        {
          "name": "Delete Term",
          "value": "api.glossaries.terms.delete",
          "action": "Delete Term",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "set",
                  "properties": {
                    "value": "={{ { \"success\": true } }}"
                  }
                }
              ]
            },
            "request": {
              "url": "=/glossaries/{{$parameter[\"glossaryId\"]}}/terms/{{$parameter[\"termId\"]}}",
              "method": "DELETE"
            }
          },
          "description": "**Required scopes:** `glossary` (Read and Write)."
        },
        {
          "name": "Edit Term",
          "value": "api.glossaries.terms.patch",
          "action": "Edit Term",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "=/glossaries/{{$parameter[\"glossaryId\"]}}/terms/{{$parameter[\"termId\"]}}",
              "method": "PATCH"
            }
          },
          "description": "**Required scopes:** `glossary` (Read and Write)."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "glossaries"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /glossaries/{glossaryId}/concepts",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "glossaries"
          ],
          "operation": [
            "api.glossaries.concepts.getMany"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /glossaries/{glossaryId}/concepts/{conceptId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "glossaries"
          ],
          "operation": [
            "api.glossaries.concepts.get"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "PUT /glossaries/{glossaryId}/concepts/{conceptId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "glossaries"
          ],
          "operation": [
            "api.glossaries.concepts.put"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "DELETE /glossaries/{glossaryId}/concepts/{conceptId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "glossaries"
          ],
          "operation": [
            "api.glossaries.concepts.delete"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /glossaries",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "glossaries"
          ],
          "operation": [
            "api.glossaries.getMany"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /glossaries",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "glossaries"
          ],
          "operation": [
            "api.glossaries.post"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /glossaries/{glossaryId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "glossaries"
          ],
          "operation": [
            "api.glossaries.get"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "DELETE /glossaries/{glossaryId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "glossaries"
          ],
          "operation": [
            "api.glossaries.delete"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "PATCH /glossaries/{glossaryId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "glossaries"
          ],
          "operation": [
            "api.glossaries.patch"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /glossaries/{glossaryId}/exports",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "glossaries"
          ],
          "operation": [
            "api.glossaries.exports.post"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /glossaries/{glossaryId}/exports/{exportId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "glossaries"
          ],
          "operation": [
            "api.glossaries.exports.get"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /glossaries/{glossaryId}/exports/{exportId}/download",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "glossaries"
          ],
          "operation": [
            "api.glossaries.exports.download.download"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /glossaries/{glossaryId}/imports",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "glossaries"
          ],
          "operation": [
            "api.glossaries.imports.post"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /glossaries/{glossaryId}/imports/{importId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "glossaries"
          ],
          "operation": [
            "api.glossaries.imports.get"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /projects/{projectId}/glossaries/concordance",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "glossaries"
          ],
          "operation": [
            "api.projects.glossaries.concordance.post"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /glossaries/{glossaryId}/terms",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "glossaries"
          ],
          "operation": [
            "api.glossaries.terms.getMany"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /glossaries/{glossaryId}/terms",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "glossaries"
          ],
          "operation": [
            "api.glossaries.terms.post"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "DELETE /glossaries/{glossaryId}/terms",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "glossaries"
          ],
          "operation": [
            "api.glossaries.terms.deleteMany"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /glossaries/{glossaryId}/terms/{termId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "glossaries"
          ],
          "operation": [
            "api.glossaries.terms.get"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "DELETE /glossaries/{glossaryId}/terms/{termId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "glossaries"
          ],
          "operation": [
            "api.glossaries.terms.delete"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "PATCH /glossaries/{glossaryId}/terms/{termId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "glossaries"
          ],
          "operation": [
            "api.glossaries.terms.patch"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "options",
      "default": "api.style-guides.getMany",
      "options": [
        {
          "name": "List Style Guides",
          "value": "api.style-guides.getMany",
          "action": "List Style Guides",
          "routing": {
            "send": {
              "paginate": "={{$parameter[\"returnAll\"]}}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "enabled": "={{!$parameter[\"returnAll\"]}}",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/style-guides",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `style-guide` (Read only)."
        },
        {
          "name": "Create Style Guide",
          "value": "api.style-guides.post",
          "action": "Create Style Guide",
          "routing": {
            "request": {
              "url": "=/style-guides",
              "method": "POST"
            }
          },
          "description": "**Required scopes:** `style-guide` (Read and Write)."
        },
        {
          "name": "Get Style Guide",
          "value": "api.style-guides.get",
          "action": "Get Style Guide",
          "routing": {
            "request": {
              "url": "=/style-guides/{{$parameter[\"styleGuideId\"]}}",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `style-guide` (Read only)."
        },
        {
          "name": "Delete Style Guide",
          "value": "api.style-guides.delete",
          "action": "Delete Style Guide",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "set",
                  "properties": {
                    "value": "={{ { \"success\": true } }}"
                  }
                }
              ]
            },
            "request": {
              "url": "=/style-guides/{{$parameter[\"styleGuideId\"]}}",
              "method": "DELETE"
            }
          },
          "description": "**Required scopes:** `style-guide` (Read and Write)."
        },
        {
          "name": "Edit Style Guide",
          "value": "api.style-guides.patch",
          "action": "Edit Style Guide",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "=/style-guides/{{$parameter[\"styleGuideId\"]}}",
              "method": "PATCH"
            }
          },
          "description": "**Required scopes:** `style-guide` (Read and Write)."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "styleGuides"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /style-guides",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "styleGuides"
          ],
          "operation": [
            "api.style-guides.getMany"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /style-guides",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "styleGuides"
          ],
          "operation": [
            "api.style-guides.post"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /style-guides/{styleGuideId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "styleGuides"
          ],
          "operation": [
            "api.style-guides.get"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "DELETE /style-guides/{styleGuideId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "styleGuides"
          ],
          "operation": [
            "api.style-guides.delete"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "PATCH /style-guides/{styleGuideId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "styleGuides"
          ],
          "operation": [
            "api.style-guides.patch"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "options",
      "default": "api.tms.getMany",
      "options": [
        {
          "name": "List TMs",
          "value": "api.tms.getMany",
          "action": "List TMs",
          "routing": {
            "send": {
              "paginate": "={{$parameter[\"returnAll\"]}}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "enabled": "={{!$parameter[\"returnAll\"]}}",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/tms",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `tm` (Read only)."
        },
        {
          "name": "Add TM",
          "value": "api.tms.post",
          "action": "Add TM",
          "routing": {
            "request": {
              "url": "=/tms",
              "method": "POST"
            }
          },
          "description": "**Required scopes:** `tm` (Read and Write)."
        },
        {
          "name": "Get TM",
          "value": "api.tms.get",
          "action": "Get TM",
          "routing": {
            "request": {
              "url": "=/tms/{{$parameter[\"tmId\"]}}",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `tm` (Read only)."
        },
        {
          "name": "Delete TM",
          "value": "api.tms.delete",
          "action": "Delete TM",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "set",
                  "properties": {
                    "value": "={{ { \"success\": true } }}"
                  }
                }
              ]
            },
            "request": {
              "url": "=/tms/{{$parameter[\"tmId\"]}}",
              "method": "DELETE"
            }
          },
          "description": "**Required scopes:** `tm` (Read and Write)."
        },
        {
          "name": "Edit TM",
          "value": "api.tms.patch",
          "action": "Edit TM",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "=/tms/{{$parameter[\"tmId\"]}}",
              "method": "PATCH"
            }
          },
          "description": "**Required scopes:** `tm` (Read and Write)."
        },
        {
          "name": "List TM Segments",
          "value": "api.tms.segments.getMany",
          "action": "List TM Segments",
          "routing": {
            "send": {
              "paginate": "={{$parameter[\"returnAll\"]}}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "enabled": "={{!$parameter[\"returnAll\"]}}",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/tms/{{$parameter[\"tmId\"]}}/segments",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `tm` (Read only).\n\nGet list of translation unit segments"
        },
        {
          "name": "Create TM Segment",
          "value": "api.tms.segments.post",
          "action": "Create TM Segment",
          "routing": {
            "request": {
              "url": "=/tms/{{$parameter[\"tmId\"]}}/segments",
              "method": "POST"
            }
          },
          "description": "**Required scopes:** `tm` (Read and Write).\n\nCreate translation unit with given segments"
        },
        {
          "name": "Clear TM",
          "value": "api.tms.segments.clear",
          "action": "Clear TM",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "set",
                  "properties": {
                    "value": "={{ { \"success\": true } }}"
                  }
                }
              ]
            },
            "request": {
              "url": "=/tms/{{$parameter[\"tmId\"]}}/segments",
              "method": "DELETE"
            }
          },
          "description": "**Required scopes:** `tm` (Read and Write)."
        },
        {
          "name": "Export TM",
          "value": "api.tms.exports.post",
          "action": "Export TM",
          "routing": {
            "request": {
              "url": "=/tms/{{$parameter[\"tmId\"]}}/exports",
              "method": "POST"
            }
          },
          "description": "**Required scopes:** `tm` (Read only)."
        },
        {
          "name": "Check TM Export Status",
          "value": "api.tms.exports.get",
          "action": "Check TM Export Status",
          "routing": {
            "request": {
              "url": "=/tms/{{$parameter[\"tmId\"]}}/exports/{{$parameter[\"exportId\"]}}",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `tm` (Read only)."
        },
        {
          "name": "Download TM",
          "value": "api.tms.exports.download.download",
          "action": "Download TM",
          "routing": {
            "request": {
              "url": "=/tms/{{$parameter[\"tmId\"]}}/exports/{{$parameter[\"exportId\"]}}/download",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `tm` (Read only)."
        },
        {
          "name": "Concordance search in TMs",
          "value": "api.projects.tms.concordance.post",
          "action": "Concordance search in TMs",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/tms/concordance",
              "method": "POST"
            }
          },
          "description": "**Required scopes:** `tm` (Read and Write)."
        },
        {
          "name": "Import TM",
          "value": "api.tms.imports.post",
          "action": "Import TM",
          "routing": {
            "request": {
              "url": "=/tms/{{$parameter[\"tmId\"]}}/imports",
              "method": "POST"
            }
          },
          "description": "**Required scopes:** `tm` (Read and Write)."
        },
        {
          "name": "Check TM Import Status",
          "value": "api.tms.imports.get",
          "action": "Check TM Import Status",
          "routing": {
            "request": {
              "url": "=/tms/{{$parameter[\"tmId\"]}}/imports/{{$parameter[\"importId\"]}}",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `tm` (Read and Write)."
        },
        {
          "name": "Get TM Segment",
          "value": "api.tms.segments.get",
          "action": "Get TM Segment",
          "routing": {
            "request": {
              "url": "=/tms/{{$parameter[\"tmId\"]}}/segments/{{$parameter[\"segmentId\"]}}",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `tm` (Read only).\n\nGet segments of translation unit"
        },
        {
          "name": "Delete TM Segment",
          "value": "api.tms.segments.delete",
          "action": "Delete TM Segment",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "set",
                  "properties": {
                    "value": "={{ { \"success\": true } }}"
                  }
                }
              ]
            },
            "request": {
              "url": "=/tms/{{$parameter[\"tmId\"]}}/segments/{{$parameter[\"segmentId\"]}}",
              "method": "DELETE"
            }
          },
          "description": "**Required scopes:** `tm` (Read and Write).\n\nDelete all segments of translation unit"
        },
        {
          "name": "Edit TM Segment",
          "value": "api.tms.segments.patch",
          "action": "Edit TM Segment",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "=/tms/{{$parameter[\"tmId\"]}}/segments/{{$parameter[\"segmentId\"]}}",
              "method": "PATCH"
            }
          },
          "description": "**Required scopes:** `tm` (Read and Write).\n\nEdit segment of translation unit"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "translationMemory"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /tms",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "translationMemory"
          ],
          "operation": [
            "api.tms.getMany"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /tms",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "translationMemory"
          ],
          "operation": [
            "api.tms.post"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /tms/{tmId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "translationMemory"
          ],
          "operation": [
            "api.tms.get"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "DELETE /tms/{tmId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "translationMemory"
          ],
          "operation": [
            "api.tms.delete"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "PATCH /tms/{tmId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "translationMemory"
          ],
          "operation": [
            "api.tms.patch"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /tms/{tmId}/segments",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "translationMemory"
          ],
          "operation": [
            "api.tms.segments.getMany"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /tms/{tmId}/segments",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "translationMemory"
          ],
          "operation": [
            "api.tms.segments.post"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "DELETE /tms/{tmId}/segments",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "translationMemory"
          ],
          "operation": [
            "api.tms.segments.clear"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /tms/{tmId}/exports",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "translationMemory"
          ],
          "operation": [
            "api.tms.exports.post"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /tms/{tmId}/exports/{exportId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "translationMemory"
          ],
          "operation": [
            "api.tms.exports.get"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /tms/{tmId}/exports/{exportId}/download",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "translationMemory"
          ],
          "operation": [
            "api.tms.exports.download.download"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /projects/{projectId}/tms/concordance",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "translationMemory"
          ],
          "operation": [
            "api.projects.tms.concordance.post"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /tms/{tmId}/imports",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "translationMemory"
          ],
          "operation": [
            "api.tms.imports.post"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /tms/{tmId}/imports/{importId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "translationMemory"
          ],
          "operation": [
            "api.tms.imports.get"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /tms/{tmId}/segments/{segmentId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "translationMemory"
          ],
          "operation": [
            "api.tms.segments.get"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "DELETE /tms/{tmId}/segments/{segmentId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "translationMemory"
          ],
          "operation": [
            "api.tms.segments.delete"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "options",
      "default": "api.mts.getMany",
      "options": [
        {
          "name": "List MTs",
          "value": "api.mts.getMany",
          "action": "List MTs",
          "routing": {
            "send": {
              "paginate": "={{$parameter[\"returnAll\"]}}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "enabled": "={{!$parameter[\"returnAll\"]}}",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/mts",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `mt` (Read only)."
        },
        {
          "name": "Get MT",
          "value": "api.mts.get",
          "action": "Get MT",
          "routing": {
            "request": {
              "url": "=/mts/{{$parameter[\"mtId\"]}}",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `mt` (Read only)."
        },
        {
          "name": "Translate via MT",
          "value": "api.mts.translations.post",
          "action": "Translate via MT",
          "routing": {
            "request": {
              "url": "=/mts/{{$parameter[\"mtId\"]}}/translations",
              "method": "POST"
            }
          },
          "description": "**Required scopes:** `mt` (Read and Write)."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "machineTranslationEngines"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /mts",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "machineTranslationEngines"
          ],
          "operation": [
            "api.mts.getMany"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /mts/{mtId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "machineTranslationEngines"
          ],
          "operation": [
            "api.mts.get"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /mts/{mtId}/translations",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "machineTranslationEngines"
          ],
          "operation": [
            "api.mts.translations.post"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "options",
      "default": "api.projects.branches.languages.progress.getMany",
      "options": [
        {
          "name": "Get Branch Progress",
          "value": "api.projects.branches.languages.progress.getMany",
          "action": "Get Branch Progress",
          "routing": {
            "send": {
              "paginate": "={{$parameter[\"returnAll\"]}}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "enabled": "={{!$parameter[\"returnAll\"]}}",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/branches/{{$parameter[\"branchId\"]}}/languages/progress",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.status.progress` (Read only)."
        },
        {
          "name": "Get Directory Progress",
          "value": "api.projects.directories.languages.progress.getMany",
          "action": "Get Directory Progress",
          "routing": {
            "send": {
              "paginate": "={{$parameter[\"returnAll\"]}}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "enabled": "={{!$parameter[\"returnAll\"]}}",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/directories/{{$parameter[\"directoryId\"]}}/languages/progress",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.status.progress` (Read only)."
        },
        {
          "name": "Get File Progress",
          "value": "api.projects.files.languages.progress.getMany",
          "action": "Get File Progress",
          "routing": {
            "send": {
              "paginate": "={{$parameter[\"returnAll\"]}}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "enabled": "={{!$parameter[\"returnAll\"]}}",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/files/{{$parameter[\"fileId\"]}}/languages/progress",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.status.progress` (Read only)."
        },
        {
          "name": "Get Language Progress",
          "value": "api.projects.languages.files.progress.getMany",
          "action": "Get Language Progress",
          "routing": {
            "send": {
              "paginate": "={{$parameter[\"returnAll\"]}}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "enabled": "={{!$parameter[\"returnAll\"]}}",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/languages/{{$parameter[\"languageId\"]}}/progress",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.status.progress` (Read only)."
        },
        {
          "name": "Get Project Progress",
          "value": "api.projects.languages.progress.getMany",
          "action": "Get Project Progress",
          "routing": {
            "send": {
              "paginate": "={{$parameter[\"returnAll\"]}}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "enabled": "={{!$parameter[\"returnAll\"]}}",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/languages/progress",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.status.progress` (Read only)."
        },
        {
          "name": "Revalidate QA Checks",
          "value": "api.projects.qa-checks.revalidate.post",
          "action": "Revalidate QA Checks",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/qa-checks/revalidate",
              "method": "POST"
            }
          },
          "description": "**Required scopes:** `project.status.qa-check` (Read and Write).\n\nTriggers revalidation of all QA checks for the project"
        },
        {
          "name": "QA Checks Revalidation Status",
          "value": "api.projects.qa-checks.revalidate.get",
          "action": "QA Checks Revalidation Status",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/qa-checks/revalidate/{{$parameter[\"revalidationId\"]}}",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.status.qa-check` (Read and Write).\n\nReturns the status of QA checks revalidation job"
        },
        {
          "name": "Cancel QA Checks Revalidation",
          "value": "api.projects.qa-checks.revalidate.delete",
          "action": "Cancel QA Checks Revalidation",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "set",
                  "properties": {
                    "value": "={{ { \"success\": true } }}"
                  }
                }
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/qa-checks/revalidate/{{$parameter[\"revalidationId\"]}}",
              "method": "DELETE"
            }
          },
          "description": "**Required scopes:** `project.status.qa-check` (Read and Write).\n\nCancels the QA checks revalidation job"
        },
        {
          "name": "List QA Check Issues",
          "value": "api.projects.qa-checks.getMany",
          "action": "List QA Check Issues",
          "routing": {
            "send": {
              "paginate": "={{$parameter[\"returnAll\"]}}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "enabled": "={{!$parameter[\"returnAll\"]}}",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/qa-checks",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.status.qa-check` (Read only)."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "translationStatus"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/branches/{branchId}/languages/progress",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "translationStatus"
          ],
          "operation": [
            "api.projects.branches.languages.progress.getMany"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/directories/{directoryId}/languages/progress",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "translationStatus"
          ],
          "operation": [
            "api.projects.directories.languages.progress.getMany"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/files/{fileId}/languages/progress",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "translationStatus"
          ],
          "operation": [
            "api.projects.files.languages.progress.getMany"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/languages/{languageId}/progress",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "translationStatus"
          ],
          "operation": [
            "api.projects.languages.files.progress.getMany"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/languages/progress",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "translationStatus"
          ],
          "operation": [
            "api.projects.languages.progress.getMany"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /projects/{projectId}/qa-checks/revalidate",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "translationStatus"
          ],
          "operation": [
            "api.projects.qa-checks.revalidate.post"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/qa-checks/revalidate/{revalidationId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "translationStatus"
          ],
          "operation": [
            "api.projects.qa-checks.revalidate.get"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "DELETE /projects/{projectId}/qa-checks/revalidate/{revalidationId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "translationStatus"
          ],
          "operation": [
            "api.projects.qa-checks.revalidate.delete"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/qa-checks",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "translationStatus"
          ],
          "operation": [
            "api.projects.qa-checks.getMany"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "options",
      "default": "api.reports.archives.getMany",
      "options": [
        {
          "name": "List Report Archives",
          "value": "api.reports.archives.getMany",
          "action": "List Report Archives",
          "routing": {
            "send": {
              "paginate": "={{$parameter[\"returnAll\"]}}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "enabled": "={{!$parameter[\"returnAll\"]}}",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/users/{{$parameter[\"userId\"]}}/reports/archives",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.report` (Read only)."
        },
        {
          "name": "Get Report Archive",
          "value": "api.users.reports.archives.get",
          "action": "Get Report Archive",
          "routing": {
            "request": {
              "url": "=/users/{{$parameter[\"userId\"]}}/reports/archives/{{$parameter[\"archiveId\"]}}",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.report` (Read only)."
        },
        {
          "name": "Delete Report Archive",
          "value": "api.users.reports.archives.delete",
          "action": "Delete Report Archive",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "set",
                  "properties": {
                    "value": "={{ { \"success\": true } }}"
                  }
                }
              ]
            },
            "request": {
              "url": "=/users/{{$parameter[\"userId\"]}}/reports/archives/{{$parameter[\"archiveId\"]}}",
              "method": "DELETE"
            }
          },
          "description": "**Required scopes:** `project.report` (Read and Write)."
        },
        {
          "name": "Export Report Archive",
          "value": "api.reports.archives.exports.post",
          "action": "Export Report Archive",
          "routing": {
            "request": {
              "url": "=/users/{{$parameter[\"userId\"]}}/reports/archives/{{$parameter[\"archiveId\"]}}/exports",
              "method": "POST"
            }
          },
          "description": "**Required scopes:** `project.report` (Read only)."
        },
        {
          "name": "Check Report Archive Export Status",
          "value": "api.users.reports.archives.exports.get",
          "action": "Check Report Archive Export Status",
          "routing": {
            "request": {
              "url": "=/users/{{$parameter[\"userId\"]}}/reports/archives/{{$parameter[\"archiveId\"]}}/exports/{{$parameter[\"exportId\"]}}",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.report` (Read only)."
        },
        {
          "name": "Download Report Archive",
          "value": "api.users.reports.archives.exports.download.get",
          "action": "Download Report Archive",
          "routing": {
            "request": {
              "url": "=/users/{{$parameter[\"userId\"]}}/reports/archives/{{$parameter[\"archiveId\"]}}/exports/{{$parameter[\"exportId\"]}}/download",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.report` (Read only)."
        },
        {
          "name": "Generate Report",
          "value": "api.projects.reports.post",
          "action": "Generate Report",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/reports",
              "method": "POST"
            }
          },
          "description": "**Required scopes:** `project.report` (Read only)."
        },
        {
          "name": "Check Report Generation Status",
          "value": "api.projects.reports.get",
          "action": "Check Report Generation Status",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/reports/{{$parameter[\"reportId\"]}}",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.report` (Read only)."
        },
        {
          "name": "Download Report",
          "value": "api.projects.reports.download.download",
          "action": "Download Report",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/reports/{{$parameter[\"reportId\"]}}/download",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.report` (Read only)."
        },
        {
          "name": "List Report Settings Templates",
          "value": "api.projects.reports.settings-templates.getMany",
          "action": "List Report Settings Templates",
          "routing": {
            "send": {
              "paginate": "={{$parameter[\"returnAll\"]}}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "enabled": "={{!$parameter[\"returnAll\"]}}",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/reports/settings-templates",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.report` (Read only)."
        },
        {
          "name": "Add Report Settings Template",
          "value": "api.projects.reports.settings-templates.post",
          "action": "Add Report Settings Template",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/reports/settings-templates",
              "method": "POST"
            }
          },
          "description": "**Required scopes:** `project.report` (Read and Write)."
        },
        {
          "name": "Get Report Settings Template",
          "value": "api.projects.reports.settings-templates.get",
          "action": "Get Report Settings Template",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/reports/settings-templates/{{$parameter[\"reportSettingsTemplateId\"]}}",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.report` (Read only)."
        },
        {
          "name": "Delete Report Settings Template",
          "value": "api.projects.reports.settings-templates.delete",
          "action": "Delete Report Settings Template",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "set",
                  "properties": {
                    "value": "={{ { \"success\": true } }}"
                  }
                }
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/reports/settings-templates/{{$parameter[\"reportSettingsTemplateId\"]}}",
              "method": "DELETE"
            }
          },
          "description": "**Required scopes:** `project.report` (Read and Write)."
        },
        {
          "name": "Edit Report Settings Template",
          "value": "api.projects.reports.settings-templates.patch",
          "action": "Edit Report Settings Template",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/reports/settings-templates/{{$parameter[\"reportSettingsTemplateId\"]}}",
              "method": "PATCH"
            }
          },
          "description": "**Required scopes:** `project.report` (Read and Write)."
        },
        {
          "name": "List User Report Settings Templates",
          "value": "api.users.reports.settings-templates.getMany",
          "action": "List User Report Settings Templates",
          "routing": {
            "send": {
              "paginate": "={{$parameter[\"returnAll\"]}}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "enabled": "={{!$parameter[\"returnAll\"]}}",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/users/{{$parameter[\"userId\"]}}/reports/settings-templates",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `user` (Read only)."
        },
        {
          "name": "Add User Report Settings Template",
          "value": "api.users.reports.settings-templates.post",
          "action": "Add User Report Settings Template",
          "routing": {
            "request": {
              "url": "=/users/{{$parameter[\"userId\"]}}/reports/settings-templates",
              "method": "POST"
            }
          },
          "description": "**Required scopes:** `user` (Read and Write)."
        },
        {
          "name": "Get User Report Settings Template",
          "value": "api.users.reports.settings-templates.get",
          "action": "Get User Report Settings Template",
          "routing": {
            "request": {
              "url": "=/users/{{$parameter[\"userId\"]}}/reports/settings-templates/{{$parameter[\"reportSettingsTemplateId\"]}}",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `user` (Read only)."
        },
        {
          "name": "Delete User Report Settings Template",
          "value": "api.users.reports.settings-templates.delete",
          "action": "Delete User Report Settings Template",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "set",
                  "properties": {
                    "value": "={{ { \"success\": true } }}"
                  }
                }
              ]
            },
            "request": {
              "url": "=/users/{{$parameter[\"userId\"]}}/reports/settings-templates/{{$parameter[\"reportSettingsTemplateId\"]}}",
              "method": "DELETE"
            }
          },
          "description": "**Required scopes:** `user` (Read and Write)."
        },
        {
          "name": "Edit User Report Settings Template",
          "value": "api.users.reports.settings-templates.patch",
          "action": "Edit User Report Settings Template",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "=/users/{{$parameter[\"userId\"]}}/reports/settings-templates/{{$parameter[\"reportSettingsTemplateId\"]}}",
              "method": "PATCH"
            }
          },
          "description": "**Required scopes:** `user` (Read and Write)."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "reports"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /users/{userId}/reports/archives",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "reports"
          ],
          "operation": [
            "api.reports.archives.getMany"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /users/{userId}/reports/archives/{archiveId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "reports"
          ],
          "operation": [
            "api.users.reports.archives.get"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "DELETE /users/{userId}/reports/archives/{archiveId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "reports"
          ],
          "operation": [
            "api.users.reports.archives.delete"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /users/{userId}/reports/archives/{archiveId}/exports",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "reports"
          ],
          "operation": [
            "api.reports.archives.exports.post"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /users/{userId}/reports/archives/{archiveId}/exports/{exportId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "reports"
          ],
          "operation": [
            "api.users.reports.archives.exports.get"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /users/{userId}/reports/archives/{archiveId}/exports/{exportId}/download",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "reports"
          ],
          "operation": [
            "api.users.reports.archives.exports.download.get"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /projects/{projectId}/reports",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "reports"
          ],
          "operation": [
            "api.projects.reports.post"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/reports/{reportId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "reports"
          ],
          "operation": [
            "api.projects.reports.get"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/reports/{reportId}/download",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "reports"
          ],
          "operation": [
            "api.projects.reports.download.download"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/reports/settings-templates",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "reports"
          ],
          "operation": [
            "api.projects.reports.settings-templates.getMany"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /projects/{projectId}/reports/settings-templates",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "reports"
          ],
          "operation": [
            "api.projects.reports.settings-templates.post"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/reports/settings-templates/{reportSettingsTemplateId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "reports"
          ],
          "operation": [
            "api.projects.reports.settings-templates.get"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "DELETE /projects/{projectId}/reports/settings-templates/{reportSettingsTemplateId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "reports"
          ],
          "operation": [
            "api.projects.reports.settings-templates.delete"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "PATCH /projects/{projectId}/reports/settings-templates/{reportSettingsTemplateId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "reports"
          ],
          "operation": [
            "api.projects.reports.settings-templates.patch"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /users/{userId}/reports/settings-templates",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "reports"
          ],
          "operation": [
            "api.users.reports.settings-templates.getMany"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /users/{userId}/reports/settings-templates",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "reports"
          ],
          "operation": [
            "api.users.reports.settings-templates.post"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /users/{userId}/reports/settings-templates/{reportSettingsTemplateId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "reports"
          ],
          "operation": [
            "api.users.reports.settings-templates.get"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "DELETE /users/{userId}/reports/settings-templates/{reportSettingsTemplateId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "reports"
          ],
          "operation": [
            "api.users.reports.settings-templates.delete"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "PATCH /users/{userId}/reports/settings-templates/{reportSettingsTemplateId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "reports"
          ],
          "operation": [
            "api.users.reports.settings-templates.patch"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "options",
      "default": "api.users.tasks.getMany",
      "options": [
        {
          "name": "List Tasks",
          "value": "api.users.tasks.getMany",
          "action": "List Tasks",
          "routing": {
            "send": {
              "paginate": "={{$parameter[\"returnAll\"]}}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "enabled": "={{!$parameter[\"returnAll\"]}}",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/users/{{$parameter[\"userId\"]}}/tasks",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.task` (Read only).\n\nLists all of the user's project tasks."
        },
        {
          "name": "Export Project Task Strings",
          "value": "api.projects.tasks.exports.post",
          "action": "Export Project Task Strings",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/tasks/{{$parameter[\"taskId\"]}}/exports",
              "method": "POST"
            }
          },
          "description": "**Required scopes:** `project.task` (Read only)."
        },
        {
          "name": "List Project Task Settings Templates",
          "value": "api.projects.tasks.settings-templates.getMany",
          "action": "List Project Task Settings Templates",
          "routing": {
            "send": {
              "paginate": "={{$parameter[\"returnAll\"]}}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "enabled": "={{!$parameter[\"returnAll\"]}}",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/tasks/settings-templates",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.task` (Read only)."
        },
        {
          "name": "Add Project Task Settings Template",
          "value": "api.projects.tasks.settings-templates.post",
          "action": "Add Project Task Settings Template",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/tasks/settings-templates",
              "method": "POST"
            }
          },
          "description": "**Required scopes:** `project.task` (Read and Write)."
        },
        {
          "name": "Get Project Task Settings Template",
          "value": "api.projects.tasks.settings-templates.get",
          "action": "Get Project Task Settings Template",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/tasks/settings-templates/{{$parameter[\"taskSettingsTemplateId\"]}}",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.task` (Read only)."
        },
        {
          "name": "Delete Project Task Settings Template",
          "value": "api.projects.tasks.settings-templates.delete",
          "action": "Delete Project Task Settings Template",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "set",
                  "properties": {
                    "value": "={{ { \"success\": true } }}"
                  }
                }
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/tasks/settings-templates/{{$parameter[\"taskSettingsTemplateId\"]}}",
              "method": "DELETE"
            }
          },
          "description": "**Required scopes:** `project.task` (Read and Write)."
        },
        {
          "name": "Edit Project Task Settings Template",
          "value": "api.projects.tasks.settings-templates.patch",
          "action": "Edit Project Task Settings Template",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/tasks/settings-templates/{{$parameter[\"taskSettingsTemplateId\"]}}",
              "method": "PATCH"
            }
          },
          "description": "**Required scopes:** `project.task` (Read and Write)."
        },
        {
          "name": "List Project Tasks",
          "value": "api.projects.tasks.getMany",
          "action": "List Project Tasks",
          "routing": {
            "send": {
              "paginate": "={{$parameter[\"returnAll\"]}}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "enabled": "={{!$parameter[\"returnAll\"]}}",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/tasks",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.task` (Read only)."
        },
        {
          "name": "Add Project Task",
          "value": "api.projects.tasks.post",
          "action": "Add Project Task",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/tasks",
              "method": "POST"
            }
          },
          "description": "**Required scopes:** `project.task` (Read and Write)."
        },
        {
          "name": "Get Project Task",
          "value": "api.projects.tasks.get",
          "action": "Get Project Task",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/tasks/{{$parameter[\"taskId\"]}}",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.task` (Read only)."
        },
        {
          "name": "Delete Project Task",
          "value": "api.projects.tasks.delete",
          "action": "Delete Project Task",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "set",
                  "properties": {
                    "value": "={{ { \"success\": true } }}"
                  }
                }
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/tasks/{{$parameter[\"taskId\"]}}",
              "method": "DELETE"
            }
          },
          "description": "**Required scopes:** `project.task` (Read and Write)."
        },
        {
          "name": "List Project Task Comments",
          "value": "api.projects.tasks.comments.getMany",
          "action": "List Project Task Comments",
          "routing": {
            "send": {
              "paginate": "={{$parameter[\"returnAll\"]}}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "enabled": "={{!$parameter[\"returnAll\"]}}",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/tasks/{{$parameter[\"taskId\"]}}/comments",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.task` (Read only)."
        },
        {
          "name": "Add Project Task Comment",
          "value": "api.projects.tasks.comments.post",
          "action": "Add Project Task Comment",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/tasks/{{$parameter[\"taskId\"]}}/comments",
              "method": "POST"
            }
          },
          "description": "**Required scopes:** `project.task` (Read and Write)."
        },
        {
          "name": "Get Project Task Comment",
          "value": "api.projects.tasks.comments.get",
          "action": "Get Project Task Comment",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/tasks/{{$parameter[\"taskId\"]}}/comments/{{$parameter[\"commentId\"]}}",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.task` (Read only)."
        },
        {
          "name": "Delete Project Task Comment",
          "value": "api.projects.tasks.comments.delete",
          "action": "Delete Project Task Comment",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "set",
                  "properties": {
                    "value": "={{ { \"success\": true } }}"
                  }
                }
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/tasks/{{$parameter[\"taskId\"]}}/comments/{{$parameter[\"commentId\"]}}",
              "method": "DELETE"
            }
          },
          "description": "**Required scopes:** `project.task` (Read and Write)."
        },
        {
          "name": "Edit Project Task Comment",
          "value": "api.projects.tasks.comments.patch",
          "action": "Edit Project Task Comment",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/tasks/{{$parameter[\"taskId\"]}}/comments/{{$parameter[\"commentId\"]}}",
              "method": "PATCH"
            }
          },
          "description": "**Required scopes:** `project.task` (Read and Write)."
        },
        {
          "name": "Edit Project Task",
          "value": "api.projects.tasks.patch",
          "action": "Edit Project Task",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/tasks/{{$parameter[\"taskId\"]}}",
              "method": "PATCH"
            }
          },
          "description": "**Required scopes:** `project.task` (Read and Write)."
        },
        {
          "name": "List User Tasks",
          "value": "api.user.tasks.getMany",
          "action": "List User Tasks",
          "routing": {
            "send": {
              "paginate": "={{$parameter[\"returnAll\"]}}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "enabled": "={{!$parameter[\"returnAll\"]}}",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/user/tasks",
              "method": "GET"
            }
          }
        },
        {
          "name": "Edit Task Archived Status",
          "value": "api.user.tasks.patch",
          "action": "Edit Task Archived Status",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "=/user/tasks/{{$parameter[\"taskId\"]}}?projectId={{$parameter[\"projectId\"]}}",
              "method": "PATCH"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "tasks"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /users/{userId}/tasks",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "tasks"
          ],
          "operation": [
            "api.users.tasks.getMany"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /projects/{projectId}/tasks/{taskId}/exports",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "tasks"
          ],
          "operation": [
            "api.projects.tasks.exports.post"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/tasks/settings-templates",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "tasks"
          ],
          "operation": [
            "api.projects.tasks.settings-templates.getMany"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /projects/{projectId}/tasks/settings-templates",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "tasks"
          ],
          "operation": [
            "api.projects.tasks.settings-templates.post"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/tasks/settings-templates/{taskSettingsTemplateId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "tasks"
          ],
          "operation": [
            "api.projects.tasks.settings-templates.get"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "DELETE /projects/{projectId}/tasks/settings-templates/{taskSettingsTemplateId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "tasks"
          ],
          "operation": [
            "api.projects.tasks.settings-templates.delete"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "PATCH /projects/{projectId}/tasks/settings-templates/{taskSettingsTemplateId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "tasks"
          ],
          "operation": [
            "api.projects.tasks.settings-templates.patch"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/tasks",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "tasks"
          ],
          "operation": [
            "api.projects.tasks.getMany"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /projects/{projectId}/tasks",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "tasks"
          ],
          "operation": [
            "api.projects.tasks.post"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/tasks/{taskId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "tasks"
          ],
          "operation": [
            "api.projects.tasks.get"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "DELETE /projects/{projectId}/tasks/{taskId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "tasks"
          ],
          "operation": [
            "api.projects.tasks.delete"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/tasks/{taskId}/comments",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "tasks"
          ],
          "operation": [
            "api.projects.tasks.comments.getMany"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /projects/{projectId}/tasks/{taskId}/comments",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "tasks"
          ],
          "operation": [
            "api.projects.tasks.comments.post"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/tasks/{taskId}/comments/{commentId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "tasks"
          ],
          "operation": [
            "api.projects.tasks.comments.get"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "DELETE /projects/{projectId}/tasks/{taskId}/comments/{commentId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "tasks"
          ],
          "operation": [
            "api.projects.tasks.comments.delete"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "PATCH /projects/{projectId}/tasks/{taskId}/comments/{commentId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "tasks"
          ],
          "operation": [
            "api.projects.tasks.comments.patch"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /user/tasks",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "tasks"
          ],
          "operation": [
            "api.user.tasks.getMany"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "options",
      "default": "api.user.get",
      "options": [
        {
          "name": "Get Authenticated User",
          "value": "api.user.get",
          "action": "Get Authenticated User",
          "routing": {
            "request": {
              "url": "=/user",
              "method": "GET"
            }
          }
        },
        {
          "name": "Edit Authenticated User",
          "value": "api.user.patch",
          "action": "Edit Authenticated User",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "/user",
              "method": "PATCH"
            }
          }
        },
        {
          "name": "List Project Members",
          "value": "api.projects.members.getMany",
          "action": "List Project Members",
          "routing": {
            "send": {
              "paginate": "={{$parameter[\"returnAll\"]}}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "enabled": "={{!$parameter[\"returnAll\"]}}",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/members",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.member` (Read only)."
        },
        {
          "name": "Add Project Member",
          "value": "api.projects.members.post",
          "action": "Add Project Member",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/members",
              "method": "POST"
            }
          },
          "description": "**Required scopes:** `project.member` (Read and Write)."
        },
        {
          "name": "Get Member Info",
          "value": "api.projects.members.get",
          "action": "Get Member Info",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/members/{{$parameter[\"memberId\"]}}",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.member` (Read only)."
        },
        {
          "name": "Replace Project Member Permissions",
          "value": "api.projects.members.put",
          "action": "Replace Project Member Permissions",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/members/{{$parameter[\"memberId\"]}}",
              "method": "PUT"
            }
          },
          "description": "**Required scopes:** `project.member` (Read and Write)."
        },
        {
          "name": "Delete Member From Project",
          "value": "api.projects.members.delete",
          "action": "Delete Member From Project",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "set",
                  "properties": {
                    "value": "={{ { \"success\": true } }}"
                  }
                }
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/members/{{$parameter[\"memberId\"]}}",
              "method": "DELETE"
            }
          },
          "description": "**Required scopes:** `project.member` (Read and Write)."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "users"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /user",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "users"
          ],
          "operation": [
            "api.user.get"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/members",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "users"
          ],
          "operation": [
            "api.projects.members.getMany"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /projects/{projectId}/members",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "users"
          ],
          "operation": [
            "api.projects.members.post"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/members/{memberId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "users"
          ],
          "operation": [
            "api.projects.members.get"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "PUT /projects/{projectId}/members/{memberId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "users"
          ],
          "operation": [
            "api.projects.members.put"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "DELETE /projects/{projectId}/members/{memberId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "users"
          ],
          "operation": [
            "api.projects.members.delete"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "options",
      "default": "api.projects.webhooks.getMany",
      "options": [
        {
          "name": "List Webhooks",
          "value": "api.projects.webhooks.getMany",
          "action": "List Webhooks",
          "routing": {
            "send": {
              "paginate": "={{$parameter[\"returnAll\"]}}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "enabled": "={{!$parameter[\"returnAll\"]}}",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/webhooks",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.webhook` (Read only)."
        },
        {
          "name": "Add Webhook",
          "value": "api.projects.webhooks.post",
          "action": "Add Webhook",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/webhooks",
              "method": "POST"
            }
          },
          "description": "**Required scopes:** `project.webhook` (Read and Write)."
        },
        {
          "name": "Get Webhook",
          "value": "api.projects.webhooks.get",
          "action": "Get Webhook",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/webhooks/{{$parameter[\"webhookId\"]}}",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.webhook` (Read only)."
        },
        {
          "name": "Delete Webhook",
          "value": "api.projects.webhooks.delete",
          "action": "Delete Webhook",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "set",
                  "properties": {
                    "value": "={{ { \"success\": true } }}"
                  }
                }
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/webhooks/{{$parameter[\"webhookId\"]}}",
              "method": "DELETE"
            }
          },
          "description": "**Required scopes:** `project.webhook` (Read and Write)."
        },
        {
          "name": "Edit Webhook",
          "value": "api.projects.webhooks.patch",
          "action": "Edit Webhook",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/webhooks/{{$parameter[\"webhookId\"]}}",
              "method": "PATCH"
            }
          },
          "description": "**Required scopes:** `project.webhook` (Read and Write)."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "webhooks"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/webhooks",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "webhooks"
          ],
          "operation": [
            "api.projects.webhooks.getMany"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /projects/{projectId}/webhooks",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "webhooks"
          ],
          "operation": [
            "api.projects.webhooks.post"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/webhooks/{webhookId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "webhooks"
          ],
          "operation": [
            "api.projects.webhooks.get"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "DELETE /projects/{projectId}/webhooks/{webhookId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "webhooks"
          ],
          "operation": [
            "api.projects.webhooks.delete"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "PATCH /projects/{projectId}/webhooks/{webhookId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "webhooks"
          ],
          "operation": [
            "api.projects.webhooks.patch"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "options",
      "default": "api.webhooks.getMany",
      "options": [
        {
          "name": "List Webhooks",
          "value": "api.webhooks.getMany",
          "action": "List Webhooks",
          "routing": {
            "send": {
              "paginate": "={{$parameter[\"returnAll\"]}}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "enabled": "={{!$parameter[\"returnAll\"]}}",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/webhooks",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `webhook` (Read only)."
        },
        {
          "name": "Add Webhook",
          "value": "api.webhooks.post",
          "action": "Add Webhook",
          "routing": {
            "request": {
              "url": "=/webhooks",
              "method": "POST"
            }
          },
          "description": "**Required scopes:** `webhook` (Read and Write)."
        },
        {
          "name": "Get Webhook",
          "value": "api.webhooks.get",
          "action": "Get Webhook",
          "routing": {
            "request": {
              "url": "=/webhooks/{{$parameter[\"organizationWebhookId\"]}}",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `webhook` (Read only)."
        },
        {
          "name": "Delete Webhook",
          "value": "api.webhooks.delete",
          "action": "Delete Webhook",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "set",
                  "properties": {
                    "value": "={{ { \"success\": true } }}"
                  }
                }
              ]
            },
            "request": {
              "url": "=/webhooks/{{$parameter[\"organizationWebhookId\"]}}",
              "method": "DELETE"
            }
          },
          "description": "**Required scopes:** `webhook` (Read and Write)."
        },
        {
          "name": "Edit Webhook",
          "value": "api.webhooks.patch",
          "action": "Edit Webhook",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "=/webhooks/{{$parameter[\"organizationWebhookId\"]}}",
              "method": "PATCH"
            }
          },
          "description": "**Required scopes:** `webhook` (Read and Write)."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "organizationWebhooks"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /webhooks",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "organizationWebhooks"
          ],
          "operation": [
            "api.webhooks.getMany"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /webhooks",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "organizationWebhooks"
          ],
          "operation": [
            "api.webhooks.post"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /webhooks/{organizationWebhookId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "organizationWebhooks"
          ],
          "operation": [
            "api.webhooks.get"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "DELETE /webhooks/{organizationWebhookId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "organizationWebhooks"
          ],
          "operation": [
            "api.webhooks.delete"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "PATCH /webhooks/{organizationWebhookId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "organizationWebhooks"
          ],
          "operation": [
            "api.webhooks.patch"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "options",
      "default": "api.projects.dictionaries.getMany",
      "options": [
        {
          "name": "List Dictionaries",
          "value": "api.projects.dictionaries.getMany",
          "action": "List Dictionaries",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/dictionaries",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.dictionary` (Read only)."
        },
        {
          "name": "Edit Dictionary",
          "value": "api.projects.dictionaries.patch",
          "action": "Edit Dictionary",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/dictionaries/{{$parameter[\"languageId\"]}}",
              "method": "PATCH"
            }
          },
          "description": "**Required scopes:** `project.dictionary` (Read and Write)."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "dictionaries"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/dictionaries",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "dictionaries"
          ],
          "operation": [
            "api.projects.dictionaries.getMany"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "options",
      "default": "api.applications.installations.getMany",
      "options": [
        {
          "name": "List Application Installations",
          "value": "api.applications.installations.getMany",
          "action": "List Application Installations",
          "routing": {
            "send": {
              "paginate": "={{$parameter[\"returnAll\"]}}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "enabled": "={{!$parameter[\"returnAll\"]}}",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/applications/installations",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `application` (Read only)."
        },
        {
          "name": "Install Application",
          "value": "api.applications.installations.post",
          "action": "Install Application",
          "routing": {
            "request": {
              "url": "=/applications/installations",
              "method": "POST"
            }
          },
          "description": "**Required scopes:** `application` (Read and Write)."
        },
        {
          "name": "Get Application Installation",
          "value": "api.applications.installations.get",
          "action": "Get Application Installation",
          "routing": {
            "request": {
              "url": "=/applications/installations/{{$parameter[\"identifier\"]}}",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `application` (Read only)."
        },
        {
          "name": "Delete Application Installation",
          "value": "api.applications.installations.delete",
          "action": "Delete Application Installation",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "set",
                  "properties": {
                    "value": "={{ { \"success\": true } }}"
                  }
                }
              ]
            },
            "request": {
              "url": "=/applications/installations/{{$parameter[\"identifier\"]}}",
              "method": "DELETE"
            }
          },
          "description": "**Required scopes:** `application` (Read and Write)."
        },
        {
          "name": "Edit Application Installation",
          "value": "api.applications.installations.patch",
          "action": "Edit Application Installation",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "=/applications/installations/{{$parameter[\"identifier\"]}}",
              "method": "PATCH"
            }
          },
          "description": "**Required scopes:** `application` (Read and Write)."
        },
        {
          "name": "Get Application Data",
          "value": "api.applications.api.get",
          "action": "Get Application Data",
          "routing": {
            "request": {
              "url": "=/applications/{{$parameter[\"applicationIdentifier\"]}}/api/{{$parameter[\"path\"]}}",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `application` (Read only).\n\nRetrieves data from the specified application.\n\n__Note__: Query parameters are application-specific and vary depending on the application being accessed."
        },
        {
          "name": "Update or Restore Application Data",
          "value": "api.applications.api.put",
          "action": "Update or Restore Application Data",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "=/applications/{{$parameter[\"applicationIdentifier\"]}}/api/{{$parameter[\"path\"]}}",
              "method": "PUT"
            }
          },
          "description": "**Required scopes:** `application` (Read and Write).\n\nUpdates or restores data in the specified application.\n\n__Note__: Both the query parameters and request body are application-specific and vary depending on the application being accessed."
        },
        {
          "name": "Add Application Data",
          "value": "api.applications.api.post",
          "action": "Add Application Data",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "=/applications/{{$parameter[\"applicationIdentifier\"]}}/api/{{$parameter[\"path\"]}}",
              "method": "POST"
            }
          },
          "description": "**Required scopes:** `application` (Read and Write).\n\nAdds new data to the specified application.\n\n__Note__: Both the query parameters and request body are application-specific and vary depending on the application being accessed."
        },
        {
          "name": "Delete Application Data",
          "value": "api.applications.api.delete",
          "action": "Delete Application Data",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "set",
                  "properties": {
                    "value": "={{ { \"success\": true } }}"
                  }
                }
              ]
            },
            "request": {
              "url": "=/applications/{{$parameter[\"applicationIdentifier\"]}}/api/{{$parameter[\"path\"]}}",
              "method": "DELETE"
            }
          },
          "description": "**Required scopes:** `application` (Read and Write).\n\nDeletes data from the specified application.\n\n__Note__: Query parameters are application-specific and vary depending on the application being accessed."
        },
        {
          "name": "Edit Application Data",
          "value": "api.applications.api.patch",
          "action": "Edit Application Data",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "=/applications/{{$parameter[\"applicationIdentifier\"]}}/api/{{$parameter[\"path\"]}}",
              "method": "PATCH"
            }
          },
          "description": "**Required scopes:** `application` (Read and Write).\n\nEdits existing data in the specified application.\n\n__Note__: Both the query parameters and request body are application-specific and vary depending on the application being accessed."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "applications"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /applications/installations",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "applications"
          ],
          "operation": [
            "api.applications.installations.getMany"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /applications/installations",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "applications"
          ],
          "operation": [
            "api.applications.installations.post"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /applications/installations/{identifier}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "applications"
          ],
          "operation": [
            "api.applications.installations.get"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "DELETE /applications/installations/{identifier}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "applications"
          ],
          "operation": [
            "api.applications.installations.delete"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "PATCH /applications/installations/{identifier}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "applications"
          ],
          "operation": [
            "api.applications.installations.patch"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /applications/{applicationIdentifier}/api/{path}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "applications"
          ],
          "operation": [
            "api.applications.api.get"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "PUT /applications/{applicationIdentifier}/api/{path}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "applications"
          ],
          "operation": [
            "api.applications.api.put"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /applications/{applicationIdentifier}/api/{path}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "applications"
          ],
          "operation": [
            "api.applications.api.post"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "DELETE /applications/{applicationIdentifier}/api/{path}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "applications"
          ],
          "operation": [
            "api.applications.api.delete"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "PATCH /applications/{applicationIdentifier}/api/{path}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "applications"
          ],
          "operation": [
            "api.applications.api.patch"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "options",
      "default": "api.applications.integrations.crowdin.files",
      "options": [
        {
          "name": "List Crowdin Files",
          "value": "api.applications.integrations.crowdin.files",
          "action": "List Crowdin Files",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/applications/{{$parameter[\"applicationIdentifier\"]}}/api/crowdin-files",
              "method": "GET"
            }
          }
        },
        {
          "name": "Get File Progress",
          "value": "api.applications.integrations.file.progress",
          "action": "Get File Progress",
          "routing": {
            "request": {
              "url": "=/applications/{{$parameter[\"applicationIdentifier\"]}}/api/file-progress",
              "method": "GET"
            }
          }
        },
        {
          "name": "List Integration Files",
          "value": "api.applications.integrations.integration.files",
          "action": "List Integration Files",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/applications/{{$parameter[\"applicationIdentifier\"]}}/api/integration-files",
              "method": "GET"
            }
          }
        },
        {
          "name": "Update Crowdin Files",
          "value": "api.applications.integrations.crowdin.update",
          "action": "Update Crowdin Files",
          "routing": {
            "request": {
              "url": "=/applications/{{$parameter[\"applicationIdentifier\"]}}/api/crowdin-update",
              "method": "POST"
            }
          }
        },
        {
          "name": "Update Integration Files",
          "value": "api.applications.integrations.integration.update",
          "action": "Update Integration Files",
          "routing": {
            "request": {
              "url": "=/applications/{{$parameter[\"applicationIdentifier\"]}}/api/integration-update",
              "method": "POST"
            }
          }
        },
        {
          "name": "List Jobs",
          "value": "api.applications.integrations.job.list",
          "action": "List Jobs",
          "routing": {
            "send": {
              "paginate": "={{$parameter[\"returnAll\"]}}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "enabled": "={{!$parameter[\"returnAll\"]}}",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/applications/{{$parameter[\"applicationIdentifier\"]}}/api/all-jobs",
              "method": "GET"
            }
          }
        },
        {
          "name": "Get Job Info",
          "value": "api.applications.integrations.job.info",
          "action": "Get Job Info",
          "routing": {
            "request": {
              "url": "=/applications/{{$parameter[\"applicationIdentifier\"]}}/api/job-info",
              "method": "GET"
            }
          }
        },
        {
          "name": "Cancel Job",
          "value": "api.applications.integrations.job.cancel",
          "action": "Cancel Job",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "set",
                  "properties": {
                    "value": "={{ { \"success\": true } }}"
                  }
                }
              ]
            },
            "request": {
              "url": "=/applications/{{$parameter[\"applicationIdentifier\"]}}/api/jobs",
              "method": "DELETE"
            }
          }
        },
        {
          "name": "Get Application Settings",
          "value": "api.applications.integrations.settings.get",
          "action": "Get Application Settings",
          "routing": {
            "request": {
              "url": "=/applications/{{$parameter[\"applicationIdentifier\"]}}/api/settings",
              "method": "GET"
            }
          }
        },
        {
          "name": "Update Application Settings",
          "value": "api.applications.integrations.settings.update",
          "action": "Update Application Settings",
          "routing": {
            "request": {
              "url": "=/applications/{{$parameter[\"applicationIdentifier\"]}}/api/settings",
              "method": "POST"
            }
          }
        },
        {
          "name": "Get Sync Settings",
          "value": "api.applications.integrations.sync.settings.get",
          "action": "Get Sync Settings",
          "routing": {
            "request": {
              "url": "=/applications/{{$parameter[\"applicationIdentifier\"]}}/api/sync-settings",
              "method": "GET"
            }
          }
        },
        {
          "name": "Update Sync Settings",
          "value": "api.applications.integrations.sync.settings.update",
          "action": "Update Sync Settings",
          "routing": {
            "request": {
              "url": "=/applications/{{$parameter[\"applicationIdentifier\"]}}/api/sync-settings",
              "method": "POST"
            }
          }
        },
        {
          "name": "Integration Login Form Fields",
          "value": "api.applications.integrations.integration.fields",
          "action": "Integration Login Form Fields",
          "routing": {
            "request": {
              "url": "=/applications/{{$parameter[\"applicationIdentifier\"]}}/api/login-fields",
              "method": "GET"
            }
          }
        },
        {
          "name": "Integration Login",
          "value": "api.applications.integrations.integration.login",
          "action": "Integration Login",
          "routing": {
            "request": {
              "url": "=/applications/{{$parameter[\"applicationIdentifier\"]}}/api/login",
              "method": "POST"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "integrations"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /applications/{applicationIdentifier}/api/crowdin-files",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "integrations"
          ],
          "operation": [
            "api.applications.integrations.crowdin.files"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /applications/{applicationIdentifier}/api/file-progress",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "integrations"
          ],
          "operation": [
            "api.applications.integrations.file.progress"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /applications/{applicationIdentifier}/api/integration-files",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "integrations"
          ],
          "operation": [
            "api.applications.integrations.integration.files"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /applications/{applicationIdentifier}/api/crowdin-update",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "integrations"
          ],
          "operation": [
            "api.applications.integrations.crowdin.update"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /applications/{applicationIdentifier}/api/integration-update",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "integrations"
          ],
          "operation": [
            "api.applications.integrations.integration.update"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /applications/{applicationIdentifier}/api/all-jobs",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "integrations"
          ],
          "operation": [
            "api.applications.integrations.job.list"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /applications/{applicationIdentifier}/api/job-info",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "integrations"
          ],
          "operation": [
            "api.applications.integrations.job.info"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "DELETE /applications/{applicationIdentifier}/api/jobs",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "integrations"
          ],
          "operation": [
            "api.applications.integrations.job.cancel"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /applications/{applicationIdentifier}/api/settings",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "integrations"
          ],
          "operation": [
            "api.applications.integrations.settings.get"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /applications/{applicationIdentifier}/api/settings",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "integrations"
          ],
          "operation": [
            "api.applications.integrations.settings.update"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /applications/{applicationIdentifier}/api/sync-settings",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "integrations"
          ],
          "operation": [
            "api.applications.integrations.sync.settings.get"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /applications/{applicationIdentifier}/api/sync-settings",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "integrations"
          ],
          "operation": [
            "api.applications.integrations.sync.settings.update"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /applications/{applicationIdentifier}/api/login-fields",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "integrations"
          ],
          "operation": [
            "api.applications.integrations.integration.fields"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /applications/{applicationIdentifier}/api/login",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "integrations"
          ],
          "operation": [
            "api.applications.integrations.integration.login"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "options",
      "default": "api.projects.bundles.getMany",
      "options": [
        {
          "name": "List Bundles",
          "value": "api.projects.bundles.getMany",
          "action": "List Bundles",
          "routing": {
            "send": {
              "paginate": "={{$parameter[\"returnAll\"]}}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "enabled": "={{!$parameter[\"returnAll\"]}}",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/bundles",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.translation` (Read only)."
        },
        {
          "name": "Add Bundle",
          "value": "api.projects.bundles.post",
          "action": "Add Bundle",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/bundles",
              "method": "POST"
            }
          },
          "description": "**Required scopes:** `project.source.file` (Read and Write)."
        },
        {
          "name": "Get Bundle",
          "value": "api.projects.bundles.get",
          "action": "Get Bundle",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/bundles/{{$parameter[\"bundleId\"]}}",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.source.file` (Read only)."
        },
        {
          "name": "Delete Bundle",
          "value": "api.projects.bundles.delete",
          "action": "Delete Bundle",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "set",
                  "properties": {
                    "value": "={{ { \"success\": true } }}"
                  }
                }
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/bundles/{{$parameter[\"bundleId\"]}}",
              "method": "DELETE"
            }
          },
          "description": "**Required scopes:** `project.source.file` (Read and Write)."
        },
        {
          "name": "Edit Bundle",
          "value": "api.projects.bundles.patch",
          "action": "Edit Bundle",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/bundles/{{$parameter[\"bundleId\"]}}",
              "method": "PATCH"
            }
          },
          "description": "**Required scopes:** `project.source.file` (Read and Write)."
        },
        {
          "name": "Download Bundle",
          "value": "api.projects.bundles.exports.download.get",
          "action": "Download Bundle",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/bundles/{{$parameter[\"bundleId\"]}}/exports/{{$parameter[\"exportId\"]}}/download",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.translation` (Read only)."
        },
        {
          "name": "Export Bundle",
          "value": "api.projects.bundles.exports.post",
          "action": "Export Bundle",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/bundles/{{$parameter[\"bundleId\"]}}/exports",
              "method": "POST"
            }
          },
          "description": "**Required scopes:** `project.translation` (Read only)."
        },
        {
          "name": "Check Bundle Export Status",
          "value": "api.projects.bundles.exports.get",
          "action": "Check Bundle Export Status",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/bundles/{{$parameter[\"bundleId\"]}}/exports/{{$parameter[\"exportId\"]}}",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.translation` (Read only)."
        },
        {
          "name": "Bundle List Files",
          "value": "api.projects.bundles.files.getMany",
          "action": "Bundle List Files",
          "routing": {
            "send": {
              "paginate": "={{$parameter[\"returnAll\"]}}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "enabled": "={{!$parameter[\"returnAll\"]}}",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/bundles/{{$parameter[\"bundleId\"]}}/files",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.source.file` (Read only)."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "bundles"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/bundles",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "bundles"
          ],
          "operation": [
            "api.projects.bundles.getMany"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /projects/{projectId}/bundles",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "bundles"
          ],
          "operation": [
            "api.projects.bundles.post"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/bundles/{bundleId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "bundles"
          ],
          "operation": [
            "api.projects.bundles.get"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "DELETE /projects/{projectId}/bundles/{bundleId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "bundles"
          ],
          "operation": [
            "api.projects.bundles.delete"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "PATCH /projects/{projectId}/bundles/{bundleId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "bundles"
          ],
          "operation": [
            "api.projects.bundles.patch"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/bundles/{bundleId}/exports/{exportId}/download",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "bundles"
          ],
          "operation": [
            "api.projects.bundles.exports.download.get"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /projects/{projectId}/bundles/{bundleId}/exports",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "bundles"
          ],
          "operation": [
            "api.projects.bundles.exports.post"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/bundles/{bundleId}/exports/{exportId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "bundles"
          ],
          "operation": [
            "api.projects.bundles.exports.get"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/bundles/{bundleId}/files",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "bundles"
          ],
          "operation": [
            "api.projects.bundles.files.getMany"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "options",
      "default": "api.projects.distributions.getMany",
      "options": [
        {
          "name": "List Distributions",
          "value": "api.projects.distributions.getMany",
          "action": "List Distributions",
          "routing": {
            "send": {
              "paginate": "={{$parameter[\"returnAll\"]}}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "enabled": "={{!$parameter[\"returnAll\"]}}",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/distributions",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.translation` (Read only)."
        },
        {
          "name": "Add Distribution",
          "value": "api.projects.distributions.post",
          "action": "Add Distribution",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/distributions",
              "method": "POST"
            }
          },
          "description": "**Required scopes:** `project.translation` (Read and Write)."
        },
        {
          "name": "Get Distribution",
          "value": "api.projects.distributions.get",
          "action": "Get Distribution",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/distributions/{{$parameter[\"hash\"]}}",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.translation` (Read only)."
        },
        {
          "name": "Delete Distribution",
          "value": "api.projects.distributions.delete",
          "action": "Delete Distribution",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "set",
                  "properties": {
                    "value": "={{ { \"success\": true } }}"
                  }
                }
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/distributions/{{$parameter[\"hash\"]}}",
              "method": "DELETE"
            }
          },
          "description": "**Required scopes:** `project.translation` (Read and Write)."
        },
        {
          "name": "Edit Distribution",
          "value": "api.projects.distributions.patch",
          "action": "Edit Distribution",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/distributions/{{$parameter[\"hash\"]}}",
              "method": "PATCH"
            }
          },
          "description": "**Required scopes:** `project.translation` (Read and Write)."
        },
        {
          "name": "Get Distribution Release",
          "value": "api.projects.distributions.release.get",
          "action": "Get Distribution Release",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/distributions/{{$parameter[\"hash\"]}}/release",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.translation` (Read and Write)."
        },
        {
          "name": "Release Distribution",
          "value": "api.projects.distributions.release.post",
          "action": "Release Distribution",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/distributions/{{$parameter[\"hash\"]}}/release",
              "method": "POST"
            }
          },
          "description": "**Required scopes:** `project.translation` (Read and Write)."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "distributions"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/distributions",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "distributions"
          ],
          "operation": [
            "api.projects.distributions.getMany"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /projects/{projectId}/distributions",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "distributions"
          ],
          "operation": [
            "api.projects.distributions.post"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/distributions/{hash}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "distributions"
          ],
          "operation": [
            "api.projects.distributions.get"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "DELETE /projects/{projectId}/distributions/{hash}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "distributions"
          ],
          "operation": [
            "api.projects.distributions.delete"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "PATCH /projects/{projectId}/distributions/{hash}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "distributions"
          ],
          "operation": [
            "api.projects.distributions.patch"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/distributions/{hash}/release",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "distributions"
          ],
          "operation": [
            "api.projects.distributions.release.get"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /projects/{projectId}/distributions/{hash}/release",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "distributions"
          ],
          "operation": [
            "api.projects.distributions.release.post"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "options",
      "default": "api.projects.labels.strings.post",
      "options": [
        {
          "name": "Assign Label to Strings",
          "value": "api.projects.labels.strings.post",
          "action": "Assign Label to Strings",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/labels/{{$parameter[\"labelId\"]}}/strings",
              "method": "POST"
            }
          },
          "description": "**Required scopes:** `project.source.file` (Read and Write)."
        },
        {
          "name": "Unassign Label from Strings",
          "value": "api.projects.labels.strings.deleteMany",
          "action": "Unassign Label from Strings",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "set",
                  "properties": {
                    "value": "={{ { \"success\": true } }}"
                  }
                }
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/labels/{{$parameter[\"labelId\"]}}/strings",
              "method": "DELETE"
            }
          },
          "description": "**Required scopes:** `project.source.file` (Read and Write)."
        },
        {
          "name": "List Labels",
          "value": "api.projects.labels.getMany",
          "action": "List Labels",
          "routing": {
            "send": {
              "paginate": "={{$parameter[\"returnAll\"]}}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "enabled": "={{!$parameter[\"returnAll\"]}}",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/labels",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.source.file` (Read only)."
        },
        {
          "name": "Add Label",
          "value": "api.projects.labels.post",
          "action": "Add Label",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/labels",
              "method": "POST"
            }
          },
          "description": "**Required scopes:** `project.source.file` (Read and Write)."
        },
        {
          "name": "Get Label",
          "value": "api.projects.labels.get",
          "action": "Get Label",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/labels/{{$parameter[\"labelId\"]}}",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `project.source.file` (Read only)."
        },
        {
          "name": "Delete Label",
          "value": "api.projects.labels.delete",
          "action": "Delete Label",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "set",
                  "properties": {
                    "value": "={{ { \"success\": true } }}"
                  }
                }
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/labels/{{$parameter[\"labelId\"]}}",
              "method": "DELETE"
            }
          },
          "description": "**Required scopes:** `project.source.file` (Read and Write)."
        },
        {
          "name": "Edit Label",
          "value": "api.projects.labels.patch",
          "action": "Edit Label",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/labels/{{$parameter[\"labelId\"]}}",
              "method": "PATCH"
            }
          },
          "description": "**Required scopes:** `project.source.file` (Read and Write)."
        },
        {
          "name": "Assign Label to Screenshots",
          "value": "api.projects.labels.screenshots.post",
          "action": "Assign Label to Screenshots",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/labels/{{$parameter[\"labelId\"]}}/screenshots",
              "method": "POST"
            }
          },
          "description": "**Required scopes:** `project.source.file` (Read and Write)."
        },
        {
          "name": "Unassign Label from Screenshots",
          "value": "api.projects.labels.screenshots.deleteMany",
          "action": "Unassign Label from Screenshots",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "set",
                  "properties": {
                    "value": "={{ { \"success\": true } }}"
                  }
                }
              ]
            },
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/labels/{{$parameter[\"labelId\"]}}/screenshots",
              "method": "DELETE"
            }
          },
          "description": "**Required scopes:** `project.source.file` (Read and Write)."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "labels"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /projects/{projectId}/labels/{labelId}/strings",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "labels"
          ],
          "operation": [
            "api.projects.labels.strings.post"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "DELETE /projects/{projectId}/labels/{labelId}/strings",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "labels"
          ],
          "operation": [
            "api.projects.labels.strings.deleteMany"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/labels",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "labels"
          ],
          "operation": [
            "api.projects.labels.getMany"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /projects/{projectId}/labels",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "labels"
          ],
          "operation": [
            "api.projects.labels.post"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /projects/{projectId}/labels/{labelId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "labels"
          ],
          "operation": [
            "api.projects.labels.get"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "DELETE /projects/{projectId}/labels/{labelId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "labels"
          ],
          "operation": [
            "api.projects.labels.delete"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "PATCH /projects/{projectId}/labels/{labelId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "labels"
          ],
          "operation": [
            "api.projects.labels.patch"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /projects/{projectId}/labels/{labelId}/screenshots",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "labels"
          ],
          "operation": [
            "api.projects.labels.screenshots.post"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "DELETE /projects/{projectId}/labels/{labelId}/screenshots",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "labels"
          ],
          "operation": [
            "api.projects.labels.screenshots.deleteMany"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "options",
      "default": "api.notify.post",
      "options": [
        {
          "name": "Send Notification to Authenticated User",
          "value": "api.notify.post",
          "action": "Send Notification to Authenticated User",
          "routing": {
            "request": {
              "url": "=/notify",
              "method": "POST"
            }
          },
          "description": "**Required scopes:** `notification` (Read and Write)."
        },
        {
          "name": "Send Notification To Project Members",
          "value": "api.projects.notify.post",
          "action": "Send Notification To Project Members",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter[\"projectId\"]}}/notify",
              "method": "POST"
            }
          },
          "description": "**Required scopes:** `project` (Read and Write)."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "notifications"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /notify",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "notifications"
          ],
          "operation": [
            "api.notify.post"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /projects/{projectId}/notify",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "notifications"
          ],
          "operation": [
            "api.projects.notify.post"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "options",
      "default": "api.users.security-logs.getMany",
      "options": [
        {
          "name": "List User Security Logs",
          "value": "api.users.security-logs.getMany",
          "action": "List User Security Logs",
          "routing": {
            "send": {
              "paginate": "={{$parameter[\"returnAll\"]}}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "enabled": "={{!$parameter[\"returnAll\"]}}",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/users/{{$parameter[\"userId\"]}}/security-logs",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `security-log` (Read only)."
        },
        {
          "name": "Get User Security Log",
          "value": "api.users.security-logs.get",
          "action": "Get User Security Log",
          "routing": {
            "request": {
              "url": "=/users/{{$parameter[\"userId\"]}}/security-logs/{{$parameter[\"securityLogId\"]}}",
              "method": "GET"
            }
          },
          "description": "**Required scopes:** `security-log` (Read only)."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "securityLogs"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /users/{userId}/security-logs",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "securityLogs"
          ],
          "operation": [
            "api.users.security-logs.getMany"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /users/{userId}/security-logs/{securityLogId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "securityLogs"
          ],
          "operation": [
            "api.users.security-logs.get"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "PATCH /projects/{projectId}/dictionaries/{languageId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "dictionaries"
          ],
          "operation": [
            "api.projects.dictionaries.patch"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "PATCH /projects/{projectId}/strings/{stringId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "sourceStrings"
          ],
          "operation": [
            "api.projects.strings.patch"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /storages",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "storage"
          ],
          "operation": [
            "api.storages.post"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "PATCH /projects/{projectId}/comments/{commentId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "stringAssetComments"
          ],
          "operation": [
            "api.projects.comments.patch"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "PATCH /user/tasks/{taskId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "tasks"
          ],
          "operation": [
            "api.user.tasks.patch"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "PATCH /tms/{tmId}/segments/{segmentId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "translationMemory"
          ],
          "operation": [
            "api.tms.segments.patch"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "PATCH /users/{userId}/ai/settings",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "ai"
          ],
          "operation": [
            "api.users.ai.settings.patch"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "PATCH /user",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "users"
          ],
          "operation": [
            "api.user.patch"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "PATCH /projects/{projectId}/tasks/{taskId}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "tasks"
          ],
          "operation": [
            "api.projects.tasks.patch"
          ]
        }
      }
    }
  ]

operations:
  [
    {
      "name": "List AI Snippets",
      "value": "api.ai.prompts.snippets.getMany",
      "action": "List AI Snippets",
      "routing": {
        "send": {
          "paginate": "={{$parameter[\"returnAll\"]}}"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "enabled": "={{!$parameter[\"returnAll\"]}}",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/users/{{$parameter[\"userId\"]}}/ai/settings/snippets",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `ai.prompt` (Read only).",
      "resource": "ai"
    },
    {
      "name": "Add AI Snippet",
      "value": "api.ai.prompts.snippets.post",
      "action": "Add AI Snippet",
      "routing": {
        "request": {
          "url": "=/users/{{$parameter[\"userId\"]}}/ai/settings/snippets",
          "method": "POST"
        }
      },
      "description": "**Required scopes:** `ai.prompt` (Read and Write).",
      "resource": "ai"
    },
    {
      "name": "Get AI Snippet",
      "value": "api.ai.prompts.snippets.get",
      "action": "Get AI Snippet",
      "routing": {
        "request": {
          "url": "=/users/{{$parameter[\"userId\"]}}/ai/settings/snippets/{{$parameter[\"aiSnippetId\"]}}",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `ai.prompt` (Read only).",
      "resource": "ai"
    },
    {
      "name": "Delete AI Snippet",
      "value": "api.ai.prompts.snippets.delete",
      "action": "Delete AI Snippet",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "set",
              "properties": {
                "value": "={{ { \"success\": true } }}"
              }
            }
          ]
        },
        "request": {
          "url": "=/users/{{$parameter[\"userId\"]}}/ai/settings/snippets/{{$parameter[\"aiSnippetId\"]}}",
          "method": "DELETE"
        }
      },
      "description": "**Required scopes:** `ai.prompt` (Read and Write).",
      "resource": "ai"
    },
    {
      "name": "Edit AI Snippet",
      "value": "api.ai.prompts.snippets.patch",
      "action": "Edit AI Snippet",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "=/users/{{$parameter[\"userId\"]}}/ai/settings/snippets/{{$parameter[\"aiSnippetId\"]}}",
          "method": "PATCH"
        }
      },
      "description": "**Required scopes:** `ai.prompt` (Read and Write).",
      "resource": "ai"
    },
    {
      "name": "AI File Translations",
      "value": "api.users.ai.file-translations.post",
      "action": "AI File Translations",
      "routing": {
        "request": {
          "url": "=/users/{{$parameter[\"userId\"]}}/ai/file-translations",
          "method": "POST"
        }
      },
      "description": "**Required scopes:** `ai.translate` (Read and Write).",
      "resource": "ai"
    },
    {
      "name": "Get File Translations Status",
      "value": "api.users.ai.file-translations.get",
      "action": "Get File Translations Status",
      "routing": {
        "request": {
          "url": "=/users/{{$parameter[\"userId\"]}}/ai/file-translations/{{$parameter[\"jobIdentifier\"]}}",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `ai.translate` (Read and Write).",
      "resource": "ai"
    },
    {
      "name": "Cancel File Translations",
      "value": "api.users.ai.file-translations.delete",
      "action": "Cancel File Translations",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "set",
              "properties": {
                "value": "={{ { \"success\": true } }}"
              }
            }
          ]
        },
        "request": {
          "url": "=/users/{{$parameter[\"userId\"]}}/ai/file-translations/{{$parameter[\"jobIdentifier\"]}}",
          "method": "DELETE"
        }
      },
      "description": "**Required scopes:** `ai.translate` (Read and Write).",
      "resource": "ai"
    },
    {
      "name": "Download Translated File",
      "value": "api.users.ai.file-translations.download",
      "action": "Download Translated File",
      "routing": {
        "request": {
          "url": "=/users/{{$parameter[\"userId\"]}}/ai/file-translations/{{$parameter[\"jobIdentifier\"]}}/download",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `ai.translate` (Read and Write).",
      "resource": "ai"
    },
    {
      "name": "Download Translated File Strings",
      "value": "api.users.ai.file-translations.download-strings",
      "action": "Download Translated File Strings",
      "routing": {
        "request": {
          "url": "=/users/{{$parameter[\"userId\"]}}/ai/file-translations/{{$parameter[\"jobIdentifier\"]}}/translations",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `ai.translate` (Read and Write).",
      "resource": "ai"
    },
    {
      "name": "Clone AI Prompt",
      "value": "api.users.ai.prompts.clones.post",
      "action": "Clone AI Prompt",
      "routing": {
        "request": {
          "url": "=/users/{{$parameter[\"userId\"]}}/ai/prompts/{{$parameter[\"aiPromptId\"]}}/clones",
          "method": "POST"
        }
      },
      "description": "**Required scopes:** `ai.prompt` (Read and Write).",
      "resource": "ai"
    },
    {
      "name": "List AI Prompts",
      "value": "api.ai.prompts.getMany",
      "action": "List AI Prompts",
      "routing": {
        "send": {
          "paginate": "={{$parameter[\"returnAll\"]}}"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "enabled": "={{!$parameter[\"returnAll\"]}}",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/users/{{$parameter[\"userId\"]}}/ai/prompts",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `ai.prompt` (Read only).",
      "resource": "ai"
    },
    {
      "name": "Add AI Prompt",
      "value": "api.users.ai.prompts.post",
      "action": "Add AI Prompt",
      "routing": {
        "request": {
          "url": "=/users/{{$parameter[\"userId\"]}}/ai/prompts",
          "method": "POST"
        }
      },
      "description": "**Required scopes:** `ai.prompt` (Read and Write).",
      "resource": "ai"
    },
    {
      "name": "Get AI Prompt",
      "value": "api.users.ai.prompts.get",
      "action": "Get AI Prompt",
      "routing": {
        "request": {
          "url": "=/users/{{$parameter[\"userId\"]}}/ai/prompts/{{$parameter[\"aiPromptId\"]}}",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `ai.prompt` (Read only).",
      "resource": "ai"
    },
    {
      "name": "Delete AI Prompt",
      "value": "api.users.ai.prompts.delete",
      "action": "Delete AI Prompt",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "set",
              "properties": {
                "value": "={{ { \"success\": true } }}"
              }
            }
          ]
        },
        "request": {
          "url": "=/users/{{$parameter[\"userId\"]}}/ai/prompts/{{$parameter[\"aiPromptId\"]}}",
          "method": "DELETE"
        }
      },
      "description": "**Required scopes:** `ai.prompt` (Read and Write).",
      "resource": "ai"
    },
    {
      "name": "Edit AI Prompt",
      "value": "api.users.ai.prompts.patch",
      "action": "Edit AI Prompt",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "=/users/{{$parameter[\"userId\"]}}/ai/prompts/{{$parameter[\"aiPromptId\"]}}",
          "method": "PATCH"
        }
      },
      "description": "**Required scopes:** `ai.prompt` (Read and Write).",
      "resource": "ai"
    },
    {
      "name": "List AI Provider Models",
      "value": "api.ai.providers.models.crowdin.getMany",
      "action": "List AI Provider Models",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/users/{{$parameter[\"userId\"]}}/ai/providers/models",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `ai.provider` (Read only).",
      "resource": "ai"
    },
    {
      "name": "List AI Providers",
      "value": "api.ai.providers.getMany",
      "action": "List AI Providers",
      "routing": {
        "send": {
          "paginate": "={{$parameter[\"returnAll\"]}}"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "enabled": "={{!$parameter[\"returnAll\"]}}",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/users/{{$parameter[\"userId\"]}}/ai/providers",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `ai.provider` (Read only).",
      "resource": "ai"
    },
    {
      "name": "Add AI Provider",
      "value": "api.users.ai.providers.post",
      "action": "Add AI Provider",
      "routing": {
        "request": {
          "url": "=/users/{{$parameter[\"userId\"]}}/ai/providers",
          "method": "POST"
        }
      },
      "description": "**Required scopes:** `ai.provider` (Read and Write).",
      "resource": "ai"
    },
    {
      "name": "Get AI Provider",
      "value": "api.users.ai.providers.get",
      "action": "Get AI Provider",
      "routing": {
        "request": {
          "url": "=/users/{{$parameter[\"userId\"]}}/ai/providers/{{$parameter[\"aiProviderId\"]}}",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `ai.provider` (Read only).",
      "resource": "ai"
    },
    {
      "name": "Delete AI Provider",
      "value": "api.users.ai.providers.delete",
      "action": "Delete AI Provider",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "set",
              "properties": {
                "value": "={{ { \"success\": true } }}"
              }
            }
          ]
        },
        "request": {
          "url": "=/users/{{$parameter[\"userId\"]}}/ai/providers/{{$parameter[\"aiProviderId\"]}}",
          "method": "DELETE"
        }
      },
      "description": "**Required scopes:** `ai.provider` (Read and Write).",
      "resource": "ai"
    },
    {
      "name": "Edit AI Provider",
      "value": "api.users.ai.providers.patch",
      "action": "Edit AI Provider",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "=/users/{{$parameter[\"userId\"]}}/ai/providers/{{$parameter[\"aiProviderId\"]}}",
          "method": "PATCH"
        }
      },
      "description": "**Required scopes:** `ai.provider` (Read and Write).",
      "resource": "ai"
    },
    {
      "name": "List AI Provider Models",
      "value": "api.ai.providers.models.getMany",
      "action": "List AI Provider Models",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/users/{{$parameter[\"userId\"]}}/ai/providers/{{$parameter[\"aiProviderId\"]}}/models",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `ai.provider` (Read only).",
      "resource": "ai"
    },
    {
      "name": "List Supported AI Provider Models",
      "value": "api.ai.providers.supported-models.crowdin.getMany",
      "action": "List Supported AI Provider Models",
      "routing": {
        "send": {
          "paginate": "={{$parameter[\"returnAll\"]}}"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "enabled": "={{!$parameter[\"returnAll\"]}}",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/users/{{$parameter[\"userId\"]}}/ai/providers/supported-models",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `ai.provider` (Read only).",
      "resource": "ai"
    },
    {
      "name": "Generate AI Report",
      "value": "api.users.ai.reports.post",
      "action": "Generate AI Report",
      "routing": {
        "request": {
          "url": "=/users/{{$parameter[\"userId\"]}}/ai/reports",
          "method": "POST"
        }
      },
      "description": "**Required scopes:** `ai.provider` (Read only).",
      "resource": "ai"
    },
    {
      "name": "Check AI Report Generation Status",
      "value": "api.users.ai.reports.get",
      "action": "Check AI Report Generation Status",
      "routing": {
        "request": {
          "url": "=/users/{{$parameter[\"userId\"]}}/ai/reports/{{$parameter[\"aiReportId\"]}}",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `ai.provider` (Read only).",
      "resource": "ai"
    },
    {
      "name": "Download AI Report",
      "value": "api.users.ai.reports.download.download",
      "action": "Download AI Report",
      "routing": {
        "request": {
          "url": "=/users/{{$parameter[\"userId\"]}}/ai/reports/{{$parameter[\"aiReportId\"]}}/download",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `ai.provider` (Read only).",
      "resource": "ai"
    },
    {
      "name": "Get AI Settings",
      "value": "api.users.ai.settings.get",
      "action": "Get AI Settings",
      "routing": {
        "request": {
          "url": "=/users/{{$parameter[\"userId\"]}}/ai/settings",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `ai` (Read only).",
      "resource": "ai"
    },
    {
      "name": "Edit AI Settings",
      "value": "api.users.ai.settings.patch",
      "action": "Edit AI Settings",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "=/users/{{$parameter[\"userId\"]}}/ai/settings",
          "method": "PATCH"
        }
      },
      "description": "**Required scopes:** `ai` (Read and Write).",
      "resource": "ai"
    },
    {
      "name": "AI Translate Strings",
      "value": "api.users.ai.translate.strings.post",
      "action": "AI Translate Strings",
      "routing": {
        "request": {
          "url": "=/users/{{$parameter[\"userId\"]}}/ai/translate",
          "method": "POST"
        }
      },
      "description": "**Required scopes:** `ai.translate` (Read and Write).",
      "resource": "ai"
    },
    {
      "name": "Get Project AI Settings",
      "value": "api.projects.ai.settings.get",
      "action": "Get Project AI Settings",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/ai/settings",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project` (Read only).",
      "resource": "ai"
    },
    {
      "name": "List Storages",
      "value": "api.storages.getMany",
      "action": "List Storages",
      "routing": {
        "send": {
          "paginate": "={{$parameter[\"returnAll\"]}}"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "enabled": "={{!$parameter[\"returnAll\"]}}",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/storages",
          "method": "GET"
        }
      },
      "resource": "storage"
    },
    {
      "name": "Get Storage",
      "value": "api.storages.get",
      "action": "Get Storage",
      "routing": {
        "request": {
          "url": "=/storages/{{$parameter[\"storageId\"]}}",
          "method": "GET"
        }
      },
      "resource": "storage"
    },
    {
      "name": "Delete Storage",
      "value": "api.storages.delete",
      "action": "Delete Storage",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "set",
              "properties": {
                "value": "={{ { \"success\": true } }}"
              }
            }
          ]
        },
        "request": {
          "url": "=/storages/{{$parameter[\"storageId\"]}}",
          "method": "DELETE"
        }
      },
      "resource": "storage"
    },
    {
      "name": "Add Storage",
      "value": "api.storages.post",
      "action": "Add Storage",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "=/storages",
          "method": "POST",
          "headers": {
            "Crowdin-API-FileName": "={{$parameter[\"fileName\"]}}"
          }
        }
      },
      "resource": "storage"
    },
    {
      "name": "List Supported Languages",
      "value": "api.languages.getMany",
      "action": "List Supported Languages",
      "routing": {
        "send": {
          "paginate": "={{$parameter[\"returnAll\"]}}"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "enabled": "={{!$parameter[\"returnAll\"]}}",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/languages",
          "method": "GET"
        }
      },
      "resource": "languages"
    },
    {
      "name": "Add Custom Language",
      "value": "api.languages.post",
      "action": "Add Custom Language",
      "routing": {
        "request": {
          "url": "=/languages",
          "method": "POST"
        }
      },
      "description": "**Required scopes:** `language` (Read and Write).",
      "resource": "languages"
    },
    {
      "name": "Get Language",
      "value": "api.languages.get",
      "action": "Get Language",
      "routing": {
        "request": {
          "url": "=/languages/{{$parameter[\"languageId\"]}}",
          "method": "GET"
        }
      },
      "resource": "languages"
    },
    {
      "name": "Delete Custom Language",
      "value": "api.languages.delete",
      "action": "Delete Custom Language",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "set",
              "properties": {
                "value": "={{ { \"success\": true } }}"
              }
            }
          ]
        },
        "request": {
          "url": "=/languages/{{$parameter[\"languageId\"]}}",
          "method": "DELETE"
        }
      },
      "description": "**Required scopes:** `language` (Read and Write).",
      "resource": "languages"
    },
    {
      "name": "Edit Custom Language",
      "value": "api.languages.patch",
      "action": "Edit Custom Language",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "=/languages/{{$parameter[\"languageId\"]}}",
          "method": "PATCH"
        }
      },
      "description": "**Required scopes:** `language` (Read and Write).",
      "resource": "languages"
    },
    {
      "name": "List Projects",
      "value": "api.projects.getMany",
      "action": "List Projects",
      "routing": {
        "send": {
          "paginate": "={{$parameter[\"returnAll\"]}}"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "enabled": "={{!$parameter[\"returnAll\"]}}",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/projects",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.settings` (Read only).",
      "resource": "projects"
    },
    {
      "name": "Add Project",
      "value": "api.projects.post",
      "action": "Add Project",
      "routing": {
        "request": {
          "url": "=/projects",
          "method": "POST"
        }
      },
      "description": "**Required scopes:** `project.settings` (Read and Write).",
      "resource": "projects"
    },
    {
      "name": "Get Project",
      "value": "api.projects.get",
      "action": "Get Project",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.settings` (Read only).",
      "resource": "projects"
    },
    {
      "name": "Delete Project",
      "value": "api.projects.delete",
      "action": "Delete Project",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "set",
              "properties": {
                "value": "={{ { \"success\": true } }}"
              }
            }
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}",
          "method": "DELETE"
        }
      },
      "description": "**Required scopes:** `project` (Read and Write).",
      "resource": "projects"
    },
    {
      "name": "Edit Project",
      "value": "api.projects.patch",
      "action": "Edit Project",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}",
          "method": "PATCH"
        }
      },
      "description": "**Required scopes:** `project.settings` (Read and Write).",
      "resource": "projects"
    },
    {
      "name": "Download Project File Format Settings Custom Segmentation",
      "value": "api.projects.file-format-settings.custom-segmentations.get",
      "action": "Download Project File Format Settings Custom Segmentation",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/file-format-settings/{{$parameter[\"fileFormatSettingsId\"]}}/custom-segmentations",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.settings` (Read only).",
      "resource": "projects"
    },
    {
      "name": "Reset Project File Format Settings Custom Segmentation",
      "value": "api.projects.file-format-settings.custom-segmentations.delete",
      "action": "Reset Project File Format Settings Custom Segmentation",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "set",
              "properties": {
                "value": "={{ { \"success\": true } }}"
              }
            }
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/file-format-settings/{{$parameter[\"fileFormatSettingsId\"]}}/custom-segmentations",
          "method": "DELETE"
        }
      },
      "description": "**Required scopes:** `project.settings` (Read and Write).",
      "resource": "projects"
    },
    {
      "name": "List Project File Format Settings",
      "value": "api.projects.file-format-settings.getMany",
      "action": "List Project File Format Settings",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/file-format-settings",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.settings` (Read only).",
      "resource": "projects"
    },
    {
      "name": "Add Project File Format Settings",
      "value": "api.projects.file-format-settings.post",
      "action": "Add Project File Format Settings",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/file-format-settings",
          "method": "POST"
        }
      },
      "description": "**Required scopes:** `project.settings` (Read and Write).",
      "resource": "projects"
    },
    {
      "name": "Get Project File Format Settings",
      "value": "api.projects.file-format-settings.get",
      "action": "Get Project File Format Settings",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/file-format-settings/{{$parameter[\"fileFormatSettingsId\"]}}",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.settings` (Read only).",
      "resource": "projects"
    },
    {
      "name": "Delete Project File Format Settings",
      "value": "api.projects.file-format-settings.delete",
      "action": "Delete Project File Format Settings",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "set",
              "properties": {
                "value": "={{ { \"success\": true } }}"
              }
            }
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/file-format-settings/{{$parameter[\"fileFormatSettingsId\"]}}",
          "method": "DELETE"
        }
      },
      "description": "**Required scopes:** `project.settings` (Read and Write).",
      "resource": "projects"
    },
    {
      "name": "Edit Project File Format Settings",
      "value": "api.projects.file-format-settings.patch",
      "action": "Edit Project File Format Settings",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/file-format-settings/{{$parameter[\"fileFormatSettingsId\"]}}",
          "method": "PATCH"
        }
      },
      "description": "**Required scopes:** `project.settings` (Read and Write).",
      "resource": "projects"
    },
    {
      "name": "List Project Strings Exporter Settings",
      "value": "api.projects.strings-exporter-settings.getMany",
      "action": "List Project Strings Exporter Settings",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/strings-exporter-settings",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.settings` (Read only).",
      "resource": "projects"
    },
    {
      "name": "Add Project Strings Exporter Settings",
      "value": "api.projects.strings-exporter-settings.post",
      "action": "Add Project Strings Exporter Settings",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/strings-exporter-settings",
          "method": "POST"
        }
      },
      "description": "**Required scopes:** `project.settings` (Read and Write).",
      "resource": "projects"
    },
    {
      "name": "Get Project Strings Exporter Settings",
      "value": "api.projects.strings-exporter-settings.get",
      "action": "Get Project Strings Exporter Settings",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/strings-exporter-settings/{{$parameter[\"systemStringsExporterSettingsId\"]}}",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.settings` (Read only).",
      "resource": "projects"
    },
    {
      "name": "Delete Project Strings Exporter Settings",
      "value": "api.projects.strings-exporter-settings.delete",
      "action": "Delete Project Strings Exporter Settings",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "set",
              "properties": {
                "value": "={{ { \"success\": true } }}"
              }
            }
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/strings-exporter-settings/{{$parameter[\"systemStringsExporterSettingsId\"]}}",
          "method": "DELETE"
        }
      },
      "description": "**Required scopes:** `project.settings` (Read and Write).",
      "resource": "projects"
    },
    {
      "name": "Edit Project Strings Exporter Settings",
      "value": "api.projects.strings-exporter-settings.patch",
      "action": "Edit Project Strings Exporter Settings",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/strings-exporter-settings/{{$parameter[\"systemStringsExporterSettingsId\"]}}",
          "method": "PATCH"
        }
      },
      "description": "**Required scopes:** `project.settings` (Read and Write).",
      "resource": "projects"
    },
    {
      "name": "List Branches",
      "value": "api.projects.branches.getMany",
      "action": "List Branches",
      "routing": {
        "send": {
          "paginate": "={{$parameter[\"returnAll\"]}}"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "enabled": "={{!$parameter[\"returnAll\"]}}",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/branches",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.source.file` (Read only).",
      "resource": "sourceFiles"
    },
    {
      "name": "Add Branch",
      "value": "api.projects.branches.post",
      "action": "Add Branch",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/branches",
          "method": "POST"
        }
      },
      "description": "**Required scopes:** `project.source.file` (Read and Write).",
      "resource": "sourceFiles"
    },
    {
      "name": "Get Branch",
      "value": "api.projects.branches.get",
      "action": "Get Branch",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/branches/{{$parameter[\"branchId\"]}}",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.source.file` (Read only).",
      "resource": "sourceFiles"
    },
    {
      "name": "Delete Branch",
      "value": "api.projects.branches.delete",
      "action": "Delete Branch",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "set",
              "properties": {
                "value": "={{ { \"success\": true } }}"
              }
            }
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/branches/{{$parameter[\"branchId\"]}}",
          "method": "DELETE"
        }
      },
      "description": "**Required scopes:** `project.source.file` (Read and Write).",
      "resource": "sourceFiles"
    },
    {
      "name": "Edit Branch",
      "value": "api.projects.branches.patch",
      "action": "Edit Branch",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/branches/{{$parameter[\"branchId\"]}}",
          "method": "PATCH"
        }
      },
      "description": "**Required scopes:** `project.source.file` (Read and Write).",
      "resource": "sourceFiles"
    },
    {
      "name": "List Directories",
      "value": "api.projects.directories.getMany",
      "action": "List Directories",
      "routing": {
        "send": {
          "paginate": "={{$parameter[\"returnAll\"]}}"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "enabled": "={{!$parameter[\"returnAll\"]}}",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/directories",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.source.file` (Read only).",
      "resource": "sourceFiles"
    },
    {
      "name": "Add Directory",
      "value": "api.projects.directories.post",
      "action": "Add Directory",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/directories",
          "method": "POST"
        }
      },
      "description": "**Required scopes:** `project.source.file` (Read and Write).",
      "resource": "sourceFiles"
    },
    {
      "name": "Get Directory",
      "value": "api.projects.directories.get",
      "action": "Get Directory",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/directories/{{$parameter[\"directoryId\"]}}",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.source.file` (Read only).",
      "resource": "sourceFiles"
    },
    {
      "name": "Delete Directory",
      "value": "api.projects.directories.delete",
      "action": "Delete Directory",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "set",
              "properties": {
                "value": "={{ { \"success\": true } }}"
              }
            }
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/directories/{{$parameter[\"directoryId\"]}}",
          "method": "DELETE"
        }
      },
      "description": "**Required scopes:** `project.source.file` (Read and Write).",
      "resource": "sourceFiles"
    },
    {
      "name": "Edit Directory",
      "value": "api.projects.directories.patch",
      "action": "Edit Directory",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/directories/{{$parameter[\"directoryId\"]}}",
          "method": "PATCH"
        }
      },
      "description": "**Required scopes:** `project.source.file` (Read and Write).",
      "resource": "sourceFiles"
    },
    {
      "name": "List Files",
      "value": "api.projects.files.getMany",
      "action": "List Files",
      "routing": {
        "send": {
          "paginate": "={{$parameter[\"returnAll\"]}}"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "enabled": "={{!$parameter[\"returnAll\"]}}",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/files",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.source.file` (Read only).",
      "resource": "sourceFiles"
    },
    {
      "name": "Add File",
      "value": "api.projects.files.post",
      "action": "Add File",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/files",
          "method": "POST"
        }
      },
      "description": "**Required scopes:** `project.source.file` (Read and Write).",
      "resource": "sourceFiles"
    },
    {
      "name": "Get File",
      "value": "api.projects.files.get",
      "action": "Get File",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/files/{{$parameter[\"fileId\"]}}",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.source.file` (Read only).",
      "resource": "sourceFiles"
    },
    {
      "name": "Update or Restore File",
      "value": "api.projects.files.put",
      "action": "Update or Restore File",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/files/{{$parameter[\"fileId\"]}}",
          "method": "PUT"
        }
      },
      "description": "**Required scopes:** `project.source.file` (Read and Write).\n\nUpdate your current file with a new one or restore it to one of the previous revisions",
      "resource": "sourceFiles"
    },
    {
      "name": "Delete File",
      "value": "api.projects.files.delete",
      "action": "Delete File",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "set",
              "properties": {
                "value": "={{ { \"success\": true } }}"
              }
            }
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/files/{{$parameter[\"fileId\"]}}",
          "method": "DELETE"
        }
      },
      "description": "**Required scopes:** `project.source.file` (Read and Write).",
      "resource": "sourceFiles"
    },
    {
      "name": "Edit File",
      "value": "api.projects.files.patch",
      "action": "Edit File",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/files/{{$parameter[\"fileId\"]}}",
          "method": "PATCH"
        }
      },
      "description": "**Required scopes:** `project.source.file` (Read and Write).",
      "resource": "sourceFiles"
    },
    {
      "name": "Download File Preview",
      "value": "api.projects.files.preview.get",
      "action": "Download File Preview",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/files/{{$parameter[\"fileId\"]}}/preview",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.source.file` (Read only).",
      "resource": "sourceFiles"
    },
    {
      "name": "Download File",
      "value": "api.projects.files.download.get",
      "action": "Download File",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/files/{{$parameter[\"fileId\"]}}/download",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.source.file` (Read only).",
      "resource": "sourceFiles"
    },
    {
      "name": "List Asset References",
      "value": "api.projects.files.references.getMany",
      "action": "List Asset References",
      "routing": {
        "send": {
          "paginate": "={{$parameter[\"returnAll\"]}}"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "enabled": "={{!$parameter[\"returnAll\"]}}",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/files/{{$parameter[\"fileId\"]}}/references",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.source.file` (Read only).\n\nList all reference files for an asset",
      "resource": "sourceFiles"
    },
    {
      "name": "Add Asset Reference",
      "value": "api.projects.files.references.post",
      "action": "Add Asset Reference",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/files/{{$parameter[\"fileId\"]}}/references",
          "method": "POST"
        }
      },
      "description": "**Required scopes:** `project.source.file` (Read and Write).\n\nUpload a reference file for an asset",
      "resource": "sourceFiles"
    },
    {
      "name": "Get Asset Reference",
      "value": "api.projects.files.references.get",
      "action": "Get Asset Reference",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/files/{{$parameter[\"fileId\"]}}/references/{{$parameter[\"referenceId\"]}}",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.source.file` (Read only).\n\nGet information about a specific asset reference",
      "resource": "sourceFiles"
    },
    {
      "name": "Delete Asset Reference",
      "value": "api.projects.files.references.delete",
      "action": "Delete Asset Reference",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "set",
              "properties": {
                "value": "={{ { \"success\": true } }}"
              }
            }
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/files/{{$parameter[\"fileId\"]}}/references/{{$parameter[\"referenceId\"]}}",
          "method": "DELETE"
        }
      },
      "description": "**Required scopes:** `project.source.file` (Read and Write).\n\nDelete a reference file for an asset",
      "resource": "sourceFiles"
    },
    {
      "name": "List File Revisions",
      "value": "api.projects.files.revisions.getMany",
      "action": "List File Revisions",
      "routing": {
        "send": {
          "paginate": "={{$parameter[\"returnAll\"]}}"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "enabled": "={{!$parameter[\"returnAll\"]}}",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/files/{{$parameter[\"fileId\"]}}/revisions",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.source.file` (Read only).",
      "resource": "sourceFiles"
    },
    {
      "name": "Get File Revision",
      "value": "api.projects.files.revisions.get",
      "action": "Get File Revision",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/files/{{$parameter[\"fileId\"]}}/revisions/{{$parameter[\"revisionId\"]}}",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.source.file` (Read only).",
      "resource": "sourceFiles"
    },
    {
      "name": "List Pre-Translations",
      "value": "api.projects.pre-translations.getMany",
      "action": "List Pre-Translations",
      "routing": {
        "send": {
          "paginate": "={{$parameter[\"returnAll\"]}}"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "enabled": "={{!$parameter[\"returnAll\"]}}",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/pre-translations",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.translation` (Read only).",
      "resource": "translations"
    },
    {
      "name": "Apply Pre-Translation",
      "value": "api.projects.pre-translations.post",
      "action": "Apply Pre-Translation",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/pre-translations",
          "method": "POST"
        }
      },
      "description": "**Required scopes:** `project.translation` (Read and Write).",
      "resource": "translations"
    },
    {
      "name": "Pre-Translation Status",
      "value": "api.projects.pre-translations.get",
      "action": "Pre-Translation Status",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/pre-translations/{{$parameter[\"preTranslationId\"]}}",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.translation` (Read and Write).",
      "resource": "translations"
    },
    {
      "name": "Edit Pre-Translation",
      "value": "api.projects.pre-translations.patch",
      "action": "Edit Pre-Translation",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/pre-translations/{{$parameter[\"preTranslationId\"]}}",
          "method": "PATCH"
        }
      },
      "description": "**Required scopes:** `project.translation` (Read and Write).",
      "resource": "translations"
    },
    {
      "name": "Pre-Translation Report",
      "value": "api.projects.pre-translations.report.getReport",
      "action": "Pre-Translation Report",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/pre-translations/{{$parameter[\"preTranslationId\"]}}/report",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.translation` (Read and Write).",
      "resource": "translations"
    },
    {
      "name": "Validate text by QA Checks",
      "value": "api.projects.translations.validate-qa-checks.post",
      "action": "Validate text by QA Checks",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/translations/validate-qa-checks",
          "method": "POST"
        }
      },
      "resource": "translations"
    },
    {
      "name": "Build Project Directory Translation",
      "value": "api.projects.translations.builds.directories.post",
      "action": "Build Project Directory Translation",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/translations/builds/directories/{{$parameter[\"directoryId\"]}}",
          "method": "POST"
        }
      },
      "description": "**Required scopes:** `project.source.file` (Read only).",
      "resource": "translations"
    },
    {
      "name": "Build Project File Translation",
      "value": "api.projects.translations.builds.files.post",
      "action": "Build Project File Translation",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/translations/builds/files/{{$parameter[\"fileId\"]}}",
          "method": "POST"
        }
      },
      "description": "**Required scopes:** `project.source.file` (Read only).",
      "resource": "translations"
    },
    {
      "name": "List Project Builds",
      "value": "api.projects.translations.builds.getMany",
      "action": "List Project Builds",
      "routing": {
        "send": {
          "paginate": "={{$parameter[\"returnAll\"]}}"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "enabled": "={{!$parameter[\"returnAll\"]}}",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/translations/builds",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.translation` (Read only).",
      "resource": "translations"
    },
    {
      "name": "Build Project Translation",
      "value": "api.projects.translations.builds.post",
      "action": "Build Project Translation",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/translations/builds",
          "method": "POST"
        }
      },
      "description": "**Required scopes:** `project.translation` (Read only).",
      "resource": "translations"
    },
    {
      "name": "Download Project Translations",
      "value": "api.projects.translations.builds.download.download",
      "action": "Download Project Translations",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/translations/builds/{{$parameter[\"buildId\"]}}/download",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.translation` (Read only).",
      "resource": "translations"
    },
    {
      "name": "Check Project Build Status",
      "value": "api.projects.translations.builds.get",
      "action": "Check Project Build Status",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/translations/builds/{{$parameter[\"buildId\"]}}",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.translation` (Read only).",
      "resource": "translations"
    },
    {
      "name": "Cancel Build",
      "value": "api.projects.translations.builds.delete",
      "action": "Cancel Build",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "set",
              "properties": {
                "value": "={{ { \"success\": true } }}"
              }
            }
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/translations/builds/{{$parameter[\"buildId\"]}}",
          "method": "DELETE"
        }
      },
      "description": "**Required scopes:** `project.translation` (Read only).",
      "resource": "translations"
    },
    {
      "name": "Export Project Translation",
      "value": "api.projects.translations.exports.post",
      "action": "Export Project Translation",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/translations/exports",
          "method": "POST"
        }
      },
      "description": "**Required scopes:** `project.translation` (Read only).\n\n__Note:__ For instant translation delivery to your mobile, web, server, or desktop apps, it is recommended to use [OTA](https://support.crowdin.com/content-delivery/).",
      "resource": "translations"
    },
    {
      "name": "Import Translations",
      "value": "api.projects.translations.imports",
      "action": "Import Translations",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/translations/imports",
          "method": "POST"
        }
      },
      "description": "**Required scopes:** `project.translation` (Read and Write).",
      "resource": "translations"
    },
    {
      "name": "Import Translations Status",
      "value": "api.projects.translations.imports.get",
      "action": "Import Translations Status",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/translations/imports/{{$parameter[\"importTranslationId\"]}}",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.translation` (Read only).",
      "resource": "translations"
    },
    {
      "name": "Import Translations Report",
      "value": "api.projects.translations.imports.report.get",
      "action": "Import Translations Report",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/translations/imports/{{$parameter[\"importTranslationId\"]}}/report",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.translation` (Read only).",
      "resource": "translations"
    },
    {
      "name": "List Strings",
      "value": "api.projects.strings.getMany",
      "action": "List Strings",
      "routing": {
        "send": {
          "paginate": "={{$parameter[\"returnAll\"]}}"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "enabled": "={{!$parameter[\"returnAll\"]}}",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/strings",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.source.string` (Read only).",
      "resource": "sourceStrings"
    },
    {
      "name": "Add String",
      "value": "api.projects.strings.post",
      "action": "Add String",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/strings",
          "method": "POST"
        }
      },
      "description": "**Required scopes:** `project.source.string` (Read and Write).",
      "resource": "sourceStrings"
    },
    {
      "name": "Get String",
      "value": "api.projects.strings.get",
      "action": "Get String",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/strings/{{$parameter[\"stringId\"]}}",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.source.string` (Read only).",
      "resource": "sourceStrings"
    },
    {
      "name": "Delete String",
      "value": "api.projects.strings.delete",
      "action": "Delete String",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "set",
              "properties": {
                "value": "={{ { \"success\": true } }}"
              }
            }
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/strings/{{$parameter[\"stringId\"]}}",
          "method": "DELETE"
        }
      },
      "description": "**Required scopes:** `project.source.string` (Read and Write).",
      "resource": "sourceStrings"
    },
    {
      "name": "Edit String",
      "value": "api.projects.strings.patch",
      "action": "Edit String",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/strings/{{$parameter[\"stringId\"]}}",
          "method": "PATCH"
        }
      },
      "description": "**Required scopes:** `project.source.string` (Read and Write).",
      "resource": "sourceStrings"
    },
    {
      "name": "List Translation Approvals",
      "value": "api.projects.approvals.getMany",
      "action": "List Translation Approvals",
      "routing": {
        "send": {
          "paginate": "={{$parameter[\"returnAll\"]}}"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "enabled": "={{!$parameter[\"returnAll\"]}}",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/approvals",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.translation` (Read only).\n\n__Note:__ Either `translationId` OR `fileId` OR `labelIds` OR `excludeLabelIds` with `languageId` OR `stringId` with `languageId` are required",
      "resource": "stringAssetTranslations"
    },
    {
      "name": "Add Approval",
      "value": "api.projects.approvals.post",
      "action": "Add Approval",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/approvals",
          "method": "POST"
        }
      },
      "description": "**Required scopes:** `project.translation` (Read and Write).",
      "resource": "stringAssetTranslations"
    },
    {
      "name": "Remove String/Asset Approvals",
      "value": "api.projects.approvals.deleteMany",
      "action": "Remove String/Asset Approvals",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "set",
              "properties": {
                "value": "={{ { \"success\": true } }}"
              }
            }
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/approvals",
          "method": "DELETE"
        }
      },
      "description": "**Required scopes:** `project.translation` (Read and Write).\n\nRemove all approvals for a string or asset. Use the oneOf pattern:\n- **String type**: Use `stringId`\n- **Asset type**: Use `fileId`",
      "resource": "stringAssetTranslations"
    },
    {
      "name": "Get Approval",
      "value": "api.projects.approvals.get",
      "action": "Get Approval",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/approvals/{{$parameter[\"approvalId\"]}}",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.translation` (Read only).",
      "resource": "stringAssetTranslations"
    },
    {
      "name": "Remove Approval",
      "value": "api.projects.approvals.delete",
      "action": "Remove Approval",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "set",
              "properties": {
                "value": "={{ { \"success\": true } }}"
              }
            }
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/approvals/{{$parameter[\"approvalId\"]}}",
          "method": "DELETE"
        }
      },
      "description": "**Required scopes:** `project.translation` (Read and Write).",
      "resource": "stringAssetTranslations"
    },
    {
      "name": "List Language Translations",
      "value": "api.projects.languages.translations.getMany",
      "action": "List Language Translations",
      "routing": {
        "send": {
          "paginate": "={{$parameter[\"returnAll\"]}}"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "enabled": "={{!$parameter[\"returnAll\"]}}",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/languages/{{$parameter[\"languageId\"]}}/translations",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.translation` (Read only).\n\n__Note:__ For instant translation delivery to your mobile, web, server, or desktop apps, it is recommended to use [OTA](https://support.crowdin.com/content-delivery/).",
      "resource": "stringAssetTranslations"
    },
    {
      "name": "List Translations",
      "value": "api.projects.translations.getMany",
      "action": "List Translations",
      "routing": {
        "send": {
          "paginate": "={{$parameter[\"returnAll\"]}}"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "enabled": "={{!$parameter[\"returnAll\"]}}",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/translations",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.translation` (Read only).\n\n__Note:__ For instant translation delivery to your mobile, web, server, or desktop apps, it is recommended to use [OTA](https://support.crowdin.com/content-delivery/).",
      "resource": "stringAssetTranslations"
    },
    {
      "name": "Add Translation",
      "value": "api.projects.translations.post",
      "action": "Add Translation",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/translations",
          "method": "POST"
        }
      },
      "description": "**Required scopes:** `project.translation` (Read and Write).",
      "resource": "stringAssetTranslations"
    },
    {
      "name": "Delete String/Asset Translations",
      "value": "api.projects.translations.deleteMany",
      "action": "Delete String/Asset Translations",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "set",
              "properties": {
                "value": "={{ { \"success\": true } }}"
              }
            }
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/translations",
          "method": "DELETE"
        }
      },
      "description": "**Required scopes:** `project.translation` (Read and Write).\n\nDelete translations for a string or an asset. Use the oneOf pattern:\n - **String type**: Use `stringId`\n - **Asset type**: Use `fileId`",
      "resource": "stringAssetTranslations"
    },
    {
      "name": "Get Translation",
      "value": "api.projects.translations.get",
      "action": "Get Translation",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/translations/{{$parameter[\"translationId\"]}}",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.translation` (Read only).",
      "resource": "stringAssetTranslations"
    },
    {
      "name": "Restore Translation",
      "value": "api.projects.translations.put",
      "action": "Restore Translation",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/translations/{{$parameter[\"translationId\"]}}",
          "method": "PUT"
        }
      },
      "description": "**Required scopes:** `project.translation` (Read and Write).",
      "resource": "stringAssetTranslations"
    },
    {
      "name": "Delete Translation",
      "value": "api.projects.translations.delete",
      "action": "Delete Translation",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "set",
              "properties": {
                "value": "={{ { \"success\": true } }}"
              }
            }
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/translations/{{$parameter[\"translationId\"]}}",
          "method": "DELETE"
        }
      },
      "description": "**Required scopes:** `project.translation` (Read and Write).",
      "resource": "stringAssetTranslations"
    },
    {
      "name": "Translation Alignment",
      "value": "api.projects.translations.alignment.post",
      "action": "Translation Alignment",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/translations/alignment",
          "method": "POST"
        }
      },
      "description": "**Required scopes:** `project.translation` (Read and Write).",
      "resource": "stringAssetTranslations"
    },
    {
      "name": "List Translation Votes",
      "value": "api.projects.votes.getMany",
      "action": "List Translation Votes",
      "routing": {
        "send": {
          "paginate": "={{$parameter[\"returnAll\"]}}"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "enabled": "={{!$parameter[\"returnAll\"]}}",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/votes",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.translation` (Read only).\n\n__Note:__ Either `translationId` OR `fileId` OR `labelIds` OR `excludeLabelIds` with `languageId` OR `stringId` with `languageId` are required",
      "resource": "stringAssetTranslations"
    },
    {
      "name": "Add Vote",
      "value": "api.projects.votes.post",
      "action": "Add Vote",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/votes",
          "method": "POST"
        }
      },
      "description": "**Required scopes:** `project.translation` (Read and Write).",
      "resource": "stringAssetTranslations"
    },
    {
      "name": "Get Vote",
      "value": "api.projects.votes.get",
      "action": "Get Vote",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/votes/{{$parameter[\"voteId\"]}}",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.translation` (Read only).",
      "resource": "stringAssetTranslations"
    },
    {
      "name": "Cancel Vote",
      "value": "api.projects.votes.delete",
      "action": "Cancel Vote",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "set",
              "properties": {
                "value": "={{ { \"success\": true } }}"
              }
            }
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/votes/{{$parameter[\"voteId\"]}}",
          "method": "DELETE"
        }
      },
      "description": "**Required scopes:** `project.translation` (Read and Write).",
      "resource": "stringAssetTranslations"
    },
    {
      "name": "Delete Attachment from String/Asset Comment",
      "value": "api.projects.comments.attachments.delete",
      "action": "Delete Attachment from String/Asset Comment",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "set",
              "properties": {
                "value": "={{ { \"success\": true } }}"
              }
            }
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/comments/{{$parameter[\"commentId\"]}}/attachments/{{$parameter[\"attachmentId\"]}}",
          "method": "DELETE"
        }
      },
      "description": "**Required scopes:** `project.source.string` (Read and Write).",
      "resource": "stringAssetComments"
    },
    {
      "name": "List String/Asset Comments",
      "value": "api.projects.comments.getMany",
      "action": "List String/Asset Comments",
      "routing": {
        "send": {
          "paginate": "={{$parameter[\"returnAll\"]}}"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "enabled": "={{!$parameter[\"returnAll\"]}}",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/comments",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.source.string` (Read only).\n\nList comments and issues for strings or assets. Use the oneOf pattern:\n- **String type**: Use `stringId`\n- **Asset type**: Use `fileId`\n- **All comments**: Omit both parameters to list all project comments",
      "resource": "stringAssetComments"
    },
    {
      "name": "Add String/Asset Comment",
      "value": "api.projects.comments.post",
      "action": "Add String/Asset Comment",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/comments",
          "method": "POST"
        }
      },
      "description": "**Required scopes:** `project.source.string` (Read and Write).\n\nAdd a comment or issue to a string or asset. Use the oneOf pattern:\n- **String type**: Use `stringId`\n- **Asset type**: Use `fileId`",
      "resource": "stringAssetComments"
    },
    {
      "name": "Get String/Asset Comment",
      "value": "api.projects.comments.get",
      "action": "Get String/Asset Comment",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/comments/{{$parameter[\"commentId\"]}}",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.source.string` (Read only).",
      "resource": "stringAssetComments"
    },
    {
      "name": "Delete String/Asset Comment",
      "value": "api.projects.comments.delete",
      "action": "Delete String/Asset Comment",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "set",
              "properties": {
                "value": "={{ { \"success\": true } }}"
              }
            }
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/comments/{{$parameter[\"commentId\"]}}",
          "method": "DELETE"
        }
      },
      "description": "**Required scopes:** `project.source.string` (Read and Write).",
      "resource": "stringAssetComments"
    },
    {
      "name": "Edit String/Asset Comment",
      "value": "api.projects.comments.patch",
      "action": "Edit String/Asset Comment",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/comments/{{$parameter[\"commentId\"]}}",
          "method": "PATCH"
        }
      },
      "description": "**Required scopes:** `project.source.string` (Read and Write).",
      "resource": "stringAssetComments"
    },
    {
      "name": "List Screenshots",
      "value": "api.projects.screenshots.getMany",
      "action": "List Screenshots",
      "routing": {
        "send": {
          "paginate": "={{$parameter[\"returnAll\"]}}"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "enabled": "={{!$parameter[\"returnAll\"]}}",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/screenshots",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.screenshot` (Read only).",
      "resource": "screenshots"
    },
    {
      "name": "Add Screenshot",
      "value": "api.projects.screenshots.post",
      "action": "Add Screenshot",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/screenshots",
          "method": "POST"
        }
      },
      "description": "**Required scopes:** `project.screenshot` (Read and Write).",
      "resource": "screenshots"
    },
    {
      "name": "Get Screenshot",
      "value": "api.projects.screenshots.get",
      "action": "Get Screenshot",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/screenshots/{{$parameter[\"screenshotId\"]}}",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.screenshot` (Read only).",
      "resource": "screenshots"
    },
    {
      "name": "Update Screenshot",
      "value": "api.projects.screenshots.put",
      "action": "Update Screenshot",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/screenshots/{{$parameter[\"screenshotId\"]}}",
          "method": "PUT"
        }
      },
      "description": "**Required scopes:** `project.screenshot` (Read and Write).",
      "resource": "screenshots"
    },
    {
      "name": "Delete Screenshot",
      "value": "api.projects.screenshots.delete",
      "action": "Delete Screenshot",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "set",
              "properties": {
                "value": "={{ { \"success\": true } }}"
              }
            }
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/screenshots/{{$parameter[\"screenshotId\"]}}",
          "method": "DELETE"
        }
      },
      "description": "**Required scopes:** `project.screenshot` (Read and Write).",
      "resource": "screenshots"
    },
    {
      "name": "Edit Screenshot",
      "value": "api.projects.screenshots.patch",
      "action": "Edit Screenshot",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/screenshots/{{$parameter[\"screenshotId\"]}}",
          "method": "PATCH"
        }
      },
      "description": "**Required scopes:** `project.screenshot` (Read and Write).",
      "resource": "screenshots"
    },
    {
      "name": "List Tags",
      "value": "api.projects.screenshots.tags.getMany",
      "action": "List Tags",
      "routing": {
        "send": {
          "paginate": "={{$parameter[\"returnAll\"]}}"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "enabled": "={{!$parameter[\"returnAll\"]}}",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/screenshots/{{$parameter[\"screenshotId\"]}}/tags",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.screenshot` (Read only).",
      "resource": "screenshots"
    },
    {
      "name": "Replace Tags (Auto Tag)",
      "value": "api.projects.screenshots.tags.putMany",
      "action": "Replace Tags (Auto Tag)",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/screenshots/{{$parameter[\"screenshotId\"]}}/tags",
          "method": "PUT"
        }
      },
      "description": "**Required scopes:** `project.screenshot` (Read and Write).",
      "resource": "screenshots"
    },
    {
      "name": "Add Tag",
      "value": "api.projects.screenshots.tags.post",
      "action": "Add Tag",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/screenshots/{{$parameter[\"screenshotId\"]}}/tags",
          "method": "POST"
        }
      },
      "description": "**Required scopes:** `project.screenshot` (Read and Write).",
      "resource": "screenshots"
    },
    {
      "name": "Clear Tags",
      "value": "api.projects.screenshots.tags.deleteMany",
      "action": "Clear Tags",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "set",
              "properties": {
                "value": "={{ { \"success\": true } }}"
              }
            }
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/screenshots/{{$parameter[\"screenshotId\"]}}/tags",
          "method": "DELETE"
        }
      },
      "description": "**Required scopes:** `project.screenshot` (Read and Write).",
      "resource": "screenshots"
    },
    {
      "name": "Get Tag",
      "value": "api.projects.screenshots.tags.get",
      "action": "Get Tag",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/screenshots/{{$parameter[\"screenshotId\"]}}/tags/{{$parameter[\"tagId\"]}}",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.screenshot` (Read only).",
      "resource": "screenshots"
    },
    {
      "name": "Delete Tag",
      "value": "api.projects.screenshots.tags.delete",
      "action": "Delete Tag",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "set",
              "properties": {
                "value": "={{ { \"success\": true } }}"
              }
            }
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/screenshots/{{$parameter[\"screenshotId\"]}}/tags/{{$parameter[\"tagId\"]}}",
          "method": "DELETE"
        }
      },
      "description": "**Required scopes:** `project.screenshot` (Read and Write).",
      "resource": "screenshots"
    },
    {
      "name": "Edit Tag",
      "value": "api.projects.screenshots.tags.patch",
      "action": "Edit Tag",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/screenshots/{{$parameter[\"screenshotId\"]}}/tags/{{$parameter[\"tagId\"]}}",
          "method": "PATCH"
        }
      },
      "description": "**Required scopes:** `project.screenshot` (Read and Write).",
      "resource": "screenshots"
    },
    {
      "name": "List Concepts",
      "value": "api.glossaries.concepts.getMany",
      "action": "List Concepts",
      "routing": {
        "send": {
          "paginate": "={{$parameter[\"returnAll\"]}}"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "enabled": "={{!$parameter[\"returnAll\"]}}",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/glossaries/{{$parameter[\"glossaryId\"]}}/concepts",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `glossary` (Read only).",
      "resource": "glossaries"
    },
    {
      "name": "Get concept",
      "value": "api.glossaries.concepts.get",
      "action": "Get concept",
      "routing": {
        "request": {
          "url": "=/glossaries/{{$parameter[\"glossaryId\"]}}/concepts/{{$parameter[\"conceptId\"]}}",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `glossary` (Read only).",
      "resource": "glossaries"
    },
    {
      "name": "Update concept",
      "value": "api.glossaries.concepts.put",
      "action": "Update concept",
      "routing": {
        "request": {
          "url": "=/glossaries/{{$parameter[\"glossaryId\"]}}/concepts/{{$parameter[\"conceptId\"]}}",
          "method": "PUT"
        }
      },
      "description": "**Required scopes:** `glossary` (Read and Write).\n\n__Note:__ There is no separate method for concept creation. Concepts are automatically created when adding a term without specifying a `conceptId`.",
      "resource": "glossaries"
    },
    {
      "name": "Delete Concept",
      "value": "api.glossaries.concepts.delete",
      "action": "Delete Concept",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "set",
              "properties": {
                "value": "={{ { \"success\": true } }}"
              }
            }
          ]
        },
        "request": {
          "url": "=/glossaries/{{$parameter[\"glossaryId\"]}}/concepts/{{$parameter[\"conceptId\"]}}",
          "method": "DELETE"
        }
      },
      "description": "**Required scopes:** `glossary` (Read and Write).",
      "resource": "glossaries"
    },
    {
      "name": "List Glossaries",
      "value": "api.glossaries.getMany",
      "action": "List Glossaries",
      "routing": {
        "send": {
          "paginate": "={{$parameter[\"returnAll\"]}}"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "enabled": "={{!$parameter[\"returnAll\"]}}",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/glossaries",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `glossary` (Read only).",
      "resource": "glossaries"
    },
    {
      "name": "Add Glossary",
      "value": "api.glossaries.post",
      "action": "Add Glossary",
      "routing": {
        "request": {
          "url": "=/glossaries",
          "method": "POST"
        }
      },
      "description": "**Required scopes:** `glossary` (Read and Write).",
      "resource": "glossaries"
    },
    {
      "name": "Get Glossary",
      "value": "api.glossaries.get",
      "action": "Get Glossary",
      "routing": {
        "request": {
          "url": "=/glossaries/{{$parameter[\"glossaryId\"]}}",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `glossary` (Read only).",
      "resource": "glossaries"
    },
    {
      "name": "Delete Glossary",
      "value": "api.glossaries.delete",
      "action": "Delete Glossary",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "set",
              "properties": {
                "value": "={{ { \"success\": true } }}"
              }
            }
          ]
        },
        "request": {
          "url": "=/glossaries/{{$parameter[\"glossaryId\"]}}",
          "method": "DELETE"
        }
      },
      "description": "**Required scopes:** `glossary` (Read and Write).",
      "resource": "glossaries"
    },
    {
      "name": "Edit Glossary",
      "value": "api.glossaries.patch",
      "action": "Edit Glossary",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "=/glossaries/{{$parameter[\"glossaryId\"]}}",
          "method": "PATCH"
        }
      },
      "description": "**Required scopes:** `glossary` (Read and Write).",
      "resource": "glossaries"
    },
    {
      "name": "Export Glossary",
      "value": "api.glossaries.exports.post",
      "action": "Export Glossary",
      "routing": {
        "request": {
          "url": "=/glossaries/{{$parameter[\"glossaryId\"]}}/exports",
          "method": "POST"
        }
      },
      "description": "**Required scopes:** `glossary` (Read only).",
      "resource": "glossaries"
    },
    {
      "name": "Check Glossary Export Status",
      "value": "api.glossaries.exports.get",
      "action": "Check Glossary Export Status",
      "routing": {
        "request": {
          "url": "=/glossaries/{{$parameter[\"glossaryId\"]}}/exports/{{$parameter[\"exportId\"]}}",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `glossary` (Read only).",
      "resource": "glossaries"
    },
    {
      "name": "Download Glossary",
      "value": "api.glossaries.exports.download.download",
      "action": "Download Glossary",
      "routing": {
        "request": {
          "url": "=/glossaries/{{$parameter[\"glossaryId\"]}}/exports/{{$parameter[\"exportId\"]}}/download",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `glossary` (Read only).",
      "resource": "glossaries"
    },
    {
      "name": "Import Glossary",
      "value": "api.glossaries.imports.post",
      "action": "Import Glossary",
      "routing": {
        "request": {
          "url": "=/glossaries/{{$parameter[\"glossaryId\"]}}/imports",
          "method": "POST"
        }
      },
      "description": "**Required scopes:** `glossary` (Read and Write).",
      "resource": "glossaries"
    },
    {
      "name": "Check Glossary Import Status",
      "value": "api.glossaries.imports.get",
      "action": "Check Glossary Import Status",
      "routing": {
        "request": {
          "url": "=/glossaries/{{$parameter[\"glossaryId\"]}}/imports/{{$parameter[\"importId\"]}}",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `glossary` (Read and Write).",
      "resource": "glossaries"
    },
    {
      "name": "Concordance search in Glossaries",
      "value": "api.projects.glossaries.concordance.post",
      "action": "Concordance search in Glossaries",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/glossaries/concordance",
          "method": "POST"
        }
      },
      "description": "**Required scopes:** `glossary` (Read and Write).",
      "resource": "glossaries"
    },
    {
      "name": "List Terms",
      "value": "api.glossaries.terms.getMany",
      "action": "List Terms",
      "routing": {
        "send": {
          "paginate": "={{$parameter[\"returnAll\"]}}"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "enabled": "={{!$parameter[\"returnAll\"]}}",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/glossaries/{{$parameter[\"glossaryId\"]}}/terms",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `glossary` (Read only).",
      "resource": "glossaries"
    },
    {
      "name": "Add Term",
      "value": "api.glossaries.terms.post",
      "action": "Add Term",
      "routing": {
        "request": {
          "url": "=/glossaries/{{$parameter[\"glossaryId\"]}}/terms",
          "method": "POST"
        }
      },
      "description": "**Required scopes:** `glossary` (Read and Write).\n\n__Note:__ If `conceptId` is not specified, a new concept will be automatically created for the term.",
      "resource": "glossaries"
    },
    {
      "name": "Clear Glossary",
      "value": "api.glossaries.terms.deleteMany",
      "action": "Clear Glossary",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "set",
              "properties": {
                "value": "={{ { \"success\": true } }}"
              }
            }
          ]
        },
        "request": {
          "url": "=/glossaries/{{$parameter[\"glossaryId\"]}}/terms",
          "method": "DELETE"
        }
      },
      "description": "**Required scopes:** `glossary` (Read and Write).",
      "resource": "glossaries"
    },
    {
      "name": "Get Term",
      "value": "api.glossaries.terms.get",
      "action": "Get Term",
      "routing": {
        "request": {
          "url": "=/glossaries/{{$parameter[\"glossaryId\"]}}/terms/{{$parameter[\"termId\"]}}",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `glossary` (Read only).",
      "resource": "glossaries"
    },
    {
      "name": "Delete Term",
      "value": "api.glossaries.terms.delete",
      "action": "Delete Term",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "set",
              "properties": {
                "value": "={{ { \"success\": true } }}"
              }
            }
          ]
        },
        "request": {
          "url": "=/glossaries/{{$parameter[\"glossaryId\"]}}/terms/{{$parameter[\"termId\"]}}",
          "method": "DELETE"
        }
      },
      "description": "**Required scopes:** `glossary` (Read and Write).",
      "resource": "glossaries"
    },
    {
      "name": "Edit Term",
      "value": "api.glossaries.terms.patch",
      "action": "Edit Term",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "=/glossaries/{{$parameter[\"glossaryId\"]}}/terms/{{$parameter[\"termId\"]}}",
          "method": "PATCH"
        }
      },
      "description": "**Required scopes:** `glossary` (Read and Write).",
      "resource": "glossaries"
    },
    {
      "name": "List Style Guides",
      "value": "api.style-guides.getMany",
      "action": "List Style Guides",
      "routing": {
        "send": {
          "paginate": "={{$parameter[\"returnAll\"]}}"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "enabled": "={{!$parameter[\"returnAll\"]}}",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/style-guides",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `style-guide` (Read only).",
      "resource": "styleGuides"
    },
    {
      "name": "Create Style Guide",
      "value": "api.style-guides.post",
      "action": "Create Style Guide",
      "routing": {
        "request": {
          "url": "=/style-guides",
          "method": "POST"
        }
      },
      "description": "**Required scopes:** `style-guide` (Read and Write).",
      "resource": "styleGuides"
    },
    {
      "name": "Get Style Guide",
      "value": "api.style-guides.get",
      "action": "Get Style Guide",
      "routing": {
        "request": {
          "url": "=/style-guides/{{$parameter[\"styleGuideId\"]}}",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `style-guide` (Read only).",
      "resource": "styleGuides"
    },
    {
      "name": "Delete Style Guide",
      "value": "api.style-guides.delete",
      "action": "Delete Style Guide",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "set",
              "properties": {
                "value": "={{ { \"success\": true } }}"
              }
            }
          ]
        },
        "request": {
          "url": "=/style-guides/{{$parameter[\"styleGuideId\"]}}",
          "method": "DELETE"
        }
      },
      "description": "**Required scopes:** `style-guide` (Read and Write).",
      "resource": "styleGuides"
    },
    {
      "name": "Edit Style Guide",
      "value": "api.style-guides.patch",
      "action": "Edit Style Guide",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "=/style-guides/{{$parameter[\"styleGuideId\"]}}",
          "method": "PATCH"
        }
      },
      "description": "**Required scopes:** `style-guide` (Read and Write).",
      "resource": "styleGuides"
    },
    {
      "name": "List TMs",
      "value": "api.tms.getMany",
      "action": "List TMs",
      "routing": {
        "send": {
          "paginate": "={{$parameter[\"returnAll\"]}}"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "enabled": "={{!$parameter[\"returnAll\"]}}",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/tms",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `tm` (Read only).",
      "resource": "translationMemory"
    },
    {
      "name": "Add TM",
      "value": "api.tms.post",
      "action": "Add TM",
      "routing": {
        "request": {
          "url": "=/tms",
          "method": "POST"
        }
      },
      "description": "**Required scopes:** `tm` (Read and Write).",
      "resource": "translationMemory"
    },
    {
      "name": "Get TM",
      "value": "api.tms.get",
      "action": "Get TM",
      "routing": {
        "request": {
          "url": "=/tms/{{$parameter[\"tmId\"]}}",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `tm` (Read only).",
      "resource": "translationMemory"
    },
    {
      "name": "Delete TM",
      "value": "api.tms.delete",
      "action": "Delete TM",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "set",
              "properties": {
                "value": "={{ { \"success\": true } }}"
              }
            }
          ]
        },
        "request": {
          "url": "=/tms/{{$parameter[\"tmId\"]}}",
          "method": "DELETE"
        }
      },
      "description": "**Required scopes:** `tm` (Read and Write).",
      "resource": "translationMemory"
    },
    {
      "name": "Edit TM",
      "value": "api.tms.patch",
      "action": "Edit TM",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "=/tms/{{$parameter[\"tmId\"]}}",
          "method": "PATCH"
        }
      },
      "description": "**Required scopes:** `tm` (Read and Write).",
      "resource": "translationMemory"
    },
    {
      "name": "List TM Segments",
      "value": "api.tms.segments.getMany",
      "action": "List TM Segments",
      "routing": {
        "send": {
          "paginate": "={{$parameter[\"returnAll\"]}}"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "enabled": "={{!$parameter[\"returnAll\"]}}",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/tms/{{$parameter[\"tmId\"]}}/segments",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `tm` (Read only).\n\nGet list of translation unit segments",
      "resource": "translationMemory"
    },
    {
      "name": "Create TM Segment",
      "value": "api.tms.segments.post",
      "action": "Create TM Segment",
      "routing": {
        "request": {
          "url": "=/tms/{{$parameter[\"tmId\"]}}/segments",
          "method": "POST"
        }
      },
      "description": "**Required scopes:** `tm` (Read and Write).\n\nCreate translation unit with given segments",
      "resource": "translationMemory"
    },
    {
      "name": "Clear TM",
      "value": "api.tms.segments.clear",
      "action": "Clear TM",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "set",
              "properties": {
                "value": "={{ { \"success\": true } }}"
              }
            }
          ]
        },
        "request": {
          "url": "=/tms/{{$parameter[\"tmId\"]}}/segments",
          "method": "DELETE"
        }
      },
      "description": "**Required scopes:** `tm` (Read and Write).",
      "resource": "translationMemory"
    },
    {
      "name": "Export TM",
      "value": "api.tms.exports.post",
      "action": "Export TM",
      "routing": {
        "request": {
          "url": "=/tms/{{$parameter[\"tmId\"]}}/exports",
          "method": "POST"
        }
      },
      "description": "**Required scopes:** `tm` (Read only).",
      "resource": "translationMemory"
    },
    {
      "name": "Check TM Export Status",
      "value": "api.tms.exports.get",
      "action": "Check TM Export Status",
      "routing": {
        "request": {
          "url": "=/tms/{{$parameter[\"tmId\"]}}/exports/{{$parameter[\"exportId\"]}}",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `tm` (Read only).",
      "resource": "translationMemory"
    },
    {
      "name": "Download TM",
      "value": "api.tms.exports.download.download",
      "action": "Download TM",
      "routing": {
        "request": {
          "url": "=/tms/{{$parameter[\"tmId\"]}}/exports/{{$parameter[\"exportId\"]}}/download",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `tm` (Read only).",
      "resource": "translationMemory"
    },
    {
      "name": "Concordance search in TMs",
      "value": "api.projects.tms.concordance.post",
      "action": "Concordance search in TMs",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/tms/concordance",
          "method": "POST"
        }
      },
      "description": "**Required scopes:** `tm` (Read and Write).",
      "resource": "translationMemory"
    },
    {
      "name": "Import TM",
      "value": "api.tms.imports.post",
      "action": "Import TM",
      "routing": {
        "request": {
          "url": "=/tms/{{$parameter[\"tmId\"]}}/imports",
          "method": "POST"
        }
      },
      "description": "**Required scopes:** `tm` (Read and Write).",
      "resource": "translationMemory"
    },
    {
      "name": "Check TM Import Status",
      "value": "api.tms.imports.get",
      "action": "Check TM Import Status",
      "routing": {
        "request": {
          "url": "=/tms/{{$parameter[\"tmId\"]}}/imports/{{$parameter[\"importId\"]}}",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `tm` (Read and Write).",
      "resource": "translationMemory"
    },
    {
      "name": "Get TM Segment",
      "value": "api.tms.segments.get",
      "action": "Get TM Segment",
      "routing": {
        "request": {
          "url": "=/tms/{{$parameter[\"tmId\"]}}/segments/{{$parameter[\"segmentId\"]}}",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `tm` (Read only).\n\nGet segments of translation unit",
      "resource": "translationMemory"
    },
    {
      "name": "Delete TM Segment",
      "value": "api.tms.segments.delete",
      "action": "Delete TM Segment",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "set",
              "properties": {
                "value": "={{ { \"success\": true } }}"
              }
            }
          ]
        },
        "request": {
          "url": "=/tms/{{$parameter[\"tmId\"]}}/segments/{{$parameter[\"segmentId\"]}}",
          "method": "DELETE"
        }
      },
      "description": "**Required scopes:** `tm` (Read and Write).\n\nDelete all segments of translation unit",
      "resource": "translationMemory"
    },
    {
      "name": "Edit TM Segment",
      "value": "api.tms.segments.patch",
      "action": "Edit TM Segment",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "=/tms/{{$parameter[\"tmId\"]}}/segments/{{$parameter[\"segmentId\"]}}",
          "method": "PATCH"
        }
      },
      "description": "**Required scopes:** `tm` (Read and Write).\n\nEdit segment of translation unit",
      "resource": "translationMemory"
    },
    {
      "name": "List MTs",
      "value": "api.mts.getMany",
      "action": "List MTs",
      "routing": {
        "send": {
          "paginate": "={{$parameter[\"returnAll\"]}}"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "enabled": "={{!$parameter[\"returnAll\"]}}",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/mts",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `mt` (Read only).",
      "resource": "machineTranslationEngines"
    },
    {
      "name": "Get MT",
      "value": "api.mts.get",
      "action": "Get MT",
      "routing": {
        "request": {
          "url": "=/mts/{{$parameter[\"mtId\"]}}",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `mt` (Read only).",
      "resource": "machineTranslationEngines"
    },
    {
      "name": "Translate via MT",
      "value": "api.mts.translations.post",
      "action": "Translate via MT",
      "routing": {
        "request": {
          "url": "=/mts/{{$parameter[\"mtId\"]}}/translations",
          "method": "POST"
        }
      },
      "description": "**Required scopes:** `mt` (Read and Write).",
      "resource": "machineTranslationEngines"
    },
    {
      "name": "Get Branch Progress",
      "value": "api.projects.branches.languages.progress.getMany",
      "action": "Get Branch Progress",
      "routing": {
        "send": {
          "paginate": "={{$parameter[\"returnAll\"]}}"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "enabled": "={{!$parameter[\"returnAll\"]}}",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/branches/{{$parameter[\"branchId\"]}}/languages/progress",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.status.progress` (Read only).",
      "resource": "translationStatus"
    },
    {
      "name": "Get Directory Progress",
      "value": "api.projects.directories.languages.progress.getMany",
      "action": "Get Directory Progress",
      "routing": {
        "send": {
          "paginate": "={{$parameter[\"returnAll\"]}}"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "enabled": "={{!$parameter[\"returnAll\"]}}",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/directories/{{$parameter[\"directoryId\"]}}/languages/progress",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.status.progress` (Read only).",
      "resource": "translationStatus"
    },
    {
      "name": "Get File Progress",
      "value": "api.projects.files.languages.progress.getMany",
      "action": "Get File Progress",
      "routing": {
        "send": {
          "paginate": "={{$parameter[\"returnAll\"]}}"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "enabled": "={{!$parameter[\"returnAll\"]}}",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/files/{{$parameter[\"fileId\"]}}/languages/progress",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.status.progress` (Read only).",
      "resource": "translationStatus"
    },
    {
      "name": "Get Language Progress",
      "value": "api.projects.languages.files.progress.getMany",
      "action": "Get Language Progress",
      "routing": {
        "send": {
          "paginate": "={{$parameter[\"returnAll\"]}}"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "enabled": "={{!$parameter[\"returnAll\"]}}",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/languages/{{$parameter[\"languageId\"]}}/progress",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.status.progress` (Read only).",
      "resource": "translationStatus"
    },
    {
      "name": "Get Project Progress",
      "value": "api.projects.languages.progress.getMany",
      "action": "Get Project Progress",
      "routing": {
        "send": {
          "paginate": "={{$parameter[\"returnAll\"]}}"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "enabled": "={{!$parameter[\"returnAll\"]}}",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/languages/progress",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.status.progress` (Read only).",
      "resource": "translationStatus"
    },
    {
      "name": "Revalidate QA Checks",
      "value": "api.projects.qa-checks.revalidate.post",
      "action": "Revalidate QA Checks",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/qa-checks/revalidate",
          "method": "POST"
        }
      },
      "description": "**Required scopes:** `project.status.qa-check` (Read and Write).\n\nTriggers revalidation of all QA checks for the project",
      "resource": "translationStatus"
    },
    {
      "name": "QA Checks Revalidation Status",
      "value": "api.projects.qa-checks.revalidate.get",
      "action": "QA Checks Revalidation Status",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/qa-checks/revalidate/{{$parameter[\"revalidationId\"]}}",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.status.qa-check` (Read and Write).\n\nReturns the status of QA checks revalidation job",
      "resource": "translationStatus"
    },
    {
      "name": "Cancel QA Checks Revalidation",
      "value": "api.projects.qa-checks.revalidate.delete",
      "action": "Cancel QA Checks Revalidation",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "set",
              "properties": {
                "value": "={{ { \"success\": true } }}"
              }
            }
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/qa-checks/revalidate/{{$parameter[\"revalidationId\"]}}",
          "method": "DELETE"
        }
      },
      "description": "**Required scopes:** `project.status.qa-check` (Read and Write).\n\nCancels the QA checks revalidation job",
      "resource": "translationStatus"
    },
    {
      "name": "List QA Check Issues",
      "value": "api.projects.qa-checks.getMany",
      "action": "List QA Check Issues",
      "routing": {
        "send": {
          "paginate": "={{$parameter[\"returnAll\"]}}"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "enabled": "={{!$parameter[\"returnAll\"]}}",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/qa-checks",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.status.qa-check` (Read only).",
      "resource": "translationStatus"
    },
    {
      "name": "List Report Archives",
      "value": "api.reports.archives.getMany",
      "action": "List Report Archives",
      "routing": {
        "send": {
          "paginate": "={{$parameter[\"returnAll\"]}}"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "enabled": "={{!$parameter[\"returnAll\"]}}",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/users/{{$parameter[\"userId\"]}}/reports/archives",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.report` (Read only).",
      "resource": "reports"
    },
    {
      "name": "Get Report Archive",
      "value": "api.users.reports.archives.get",
      "action": "Get Report Archive",
      "routing": {
        "request": {
          "url": "=/users/{{$parameter[\"userId\"]}}/reports/archives/{{$parameter[\"archiveId\"]}}",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.report` (Read only).",
      "resource": "reports"
    },
    {
      "name": "Delete Report Archive",
      "value": "api.users.reports.archives.delete",
      "action": "Delete Report Archive",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "set",
              "properties": {
                "value": "={{ { \"success\": true } }}"
              }
            }
          ]
        },
        "request": {
          "url": "=/users/{{$parameter[\"userId\"]}}/reports/archives/{{$parameter[\"archiveId\"]}}",
          "method": "DELETE"
        }
      },
      "description": "**Required scopes:** `project.report` (Read and Write).",
      "resource": "reports"
    },
    {
      "name": "Export Report Archive",
      "value": "api.reports.archives.exports.post",
      "action": "Export Report Archive",
      "routing": {
        "request": {
          "url": "=/users/{{$parameter[\"userId\"]}}/reports/archives/{{$parameter[\"archiveId\"]}}/exports",
          "method": "POST"
        }
      },
      "description": "**Required scopes:** `project.report` (Read only).",
      "resource": "reports"
    },
    {
      "name": "Check Report Archive Export Status",
      "value": "api.users.reports.archives.exports.get",
      "action": "Check Report Archive Export Status",
      "routing": {
        "request": {
          "url": "=/users/{{$parameter[\"userId\"]}}/reports/archives/{{$parameter[\"archiveId\"]}}/exports/{{$parameter[\"exportId\"]}}",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.report` (Read only).",
      "resource": "reports"
    },
    {
      "name": "Download Report Archive",
      "value": "api.users.reports.archives.exports.download.get",
      "action": "Download Report Archive",
      "routing": {
        "request": {
          "url": "=/users/{{$parameter[\"userId\"]}}/reports/archives/{{$parameter[\"archiveId\"]}}/exports/{{$parameter[\"exportId\"]}}/download",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.report` (Read only).",
      "resource": "reports"
    },
    {
      "name": "Generate Report",
      "value": "api.projects.reports.post",
      "action": "Generate Report",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/reports",
          "method": "POST"
        }
      },
      "description": "**Required scopes:** `project.report` (Read only).",
      "resource": "reports"
    },
    {
      "name": "Check Report Generation Status",
      "value": "api.projects.reports.get",
      "action": "Check Report Generation Status",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/reports/{{$parameter[\"reportId\"]}}",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.report` (Read only).",
      "resource": "reports"
    },
    {
      "name": "Download Report",
      "value": "api.projects.reports.download.download",
      "action": "Download Report",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/reports/{{$parameter[\"reportId\"]}}/download",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.report` (Read only).",
      "resource": "reports"
    },
    {
      "name": "List Report Settings Templates",
      "value": "api.projects.reports.settings-templates.getMany",
      "action": "List Report Settings Templates",
      "routing": {
        "send": {
          "paginate": "={{$parameter[\"returnAll\"]}}"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "enabled": "={{!$parameter[\"returnAll\"]}}",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/reports/settings-templates",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.report` (Read only).",
      "resource": "reports"
    },
    {
      "name": "Add Report Settings Template",
      "value": "api.projects.reports.settings-templates.post",
      "action": "Add Report Settings Template",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/reports/settings-templates",
          "method": "POST"
        }
      },
      "description": "**Required scopes:** `project.report` (Read and Write).",
      "resource": "reports"
    },
    {
      "name": "Get Report Settings Template",
      "value": "api.projects.reports.settings-templates.get",
      "action": "Get Report Settings Template",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/reports/settings-templates/{{$parameter[\"reportSettingsTemplateId\"]}}",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.report` (Read only).",
      "resource": "reports"
    },
    {
      "name": "Delete Report Settings Template",
      "value": "api.projects.reports.settings-templates.delete",
      "action": "Delete Report Settings Template",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "set",
              "properties": {
                "value": "={{ { \"success\": true } }}"
              }
            }
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/reports/settings-templates/{{$parameter[\"reportSettingsTemplateId\"]}}",
          "method": "DELETE"
        }
      },
      "description": "**Required scopes:** `project.report` (Read and Write).",
      "resource": "reports"
    },
    {
      "name": "Edit Report Settings Template",
      "value": "api.projects.reports.settings-templates.patch",
      "action": "Edit Report Settings Template",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/reports/settings-templates/{{$parameter[\"reportSettingsTemplateId\"]}}",
          "method": "PATCH"
        }
      },
      "description": "**Required scopes:** `project.report` (Read and Write).",
      "resource": "reports"
    },
    {
      "name": "List User Report Settings Templates",
      "value": "api.users.reports.settings-templates.getMany",
      "action": "List User Report Settings Templates",
      "routing": {
        "send": {
          "paginate": "={{$parameter[\"returnAll\"]}}"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "enabled": "={{!$parameter[\"returnAll\"]}}",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/users/{{$parameter[\"userId\"]}}/reports/settings-templates",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `user` (Read only).",
      "resource": "reports"
    },
    {
      "name": "Add User Report Settings Template",
      "value": "api.users.reports.settings-templates.post",
      "action": "Add User Report Settings Template",
      "routing": {
        "request": {
          "url": "=/users/{{$parameter[\"userId\"]}}/reports/settings-templates",
          "method": "POST"
        }
      },
      "description": "**Required scopes:** `user` (Read and Write).",
      "resource": "reports"
    },
    {
      "name": "Get User Report Settings Template",
      "value": "api.users.reports.settings-templates.get",
      "action": "Get User Report Settings Template",
      "routing": {
        "request": {
          "url": "=/users/{{$parameter[\"userId\"]}}/reports/settings-templates/{{$parameter[\"reportSettingsTemplateId\"]}}",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `user` (Read only).",
      "resource": "reports"
    },
    {
      "name": "Delete User Report Settings Template",
      "value": "api.users.reports.settings-templates.delete",
      "action": "Delete User Report Settings Template",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "set",
              "properties": {
                "value": "={{ { \"success\": true } }}"
              }
            }
          ]
        },
        "request": {
          "url": "=/users/{{$parameter[\"userId\"]}}/reports/settings-templates/{{$parameter[\"reportSettingsTemplateId\"]}}",
          "method": "DELETE"
        }
      },
      "description": "**Required scopes:** `user` (Read and Write).",
      "resource": "reports"
    },
    {
      "name": "Edit User Report Settings Template",
      "value": "api.users.reports.settings-templates.patch",
      "action": "Edit User Report Settings Template",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "=/users/{{$parameter[\"userId\"]}}/reports/settings-templates/{{$parameter[\"reportSettingsTemplateId\"]}}",
          "method": "PATCH"
        }
      },
      "description": "**Required scopes:** `user` (Read and Write).",
      "resource": "reports"
    },
    {
      "name": "List Tasks",
      "value": "api.users.tasks.getMany",
      "action": "List Tasks",
      "routing": {
        "send": {
          "paginate": "={{$parameter[\"returnAll\"]}}"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "enabled": "={{!$parameter[\"returnAll\"]}}",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/users/{{$parameter[\"userId\"]}}/tasks",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.task` (Read only).\n\nLists all of the user's project tasks.",
      "resource": "tasks"
    },
    {
      "name": "Export Project Task Strings",
      "value": "api.projects.tasks.exports.post",
      "action": "Export Project Task Strings",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/tasks/{{$parameter[\"taskId\"]}}/exports",
          "method": "POST"
        }
      },
      "description": "**Required scopes:** `project.task` (Read only).",
      "resource": "tasks"
    },
    {
      "name": "List Project Task Settings Templates",
      "value": "api.projects.tasks.settings-templates.getMany",
      "action": "List Project Task Settings Templates",
      "routing": {
        "send": {
          "paginate": "={{$parameter[\"returnAll\"]}}"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "enabled": "={{!$parameter[\"returnAll\"]}}",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/tasks/settings-templates",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.task` (Read only).",
      "resource": "tasks"
    },
    {
      "name": "Add Project Task Settings Template",
      "value": "api.projects.tasks.settings-templates.post",
      "action": "Add Project Task Settings Template",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/tasks/settings-templates",
          "method": "POST"
        }
      },
      "description": "**Required scopes:** `project.task` (Read and Write).",
      "resource": "tasks"
    },
    {
      "name": "Get Project Task Settings Template",
      "value": "api.projects.tasks.settings-templates.get",
      "action": "Get Project Task Settings Template",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/tasks/settings-templates/{{$parameter[\"taskSettingsTemplateId\"]}}",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.task` (Read only).",
      "resource": "tasks"
    },
    {
      "name": "Delete Project Task Settings Template",
      "value": "api.projects.tasks.settings-templates.delete",
      "action": "Delete Project Task Settings Template",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "set",
              "properties": {
                "value": "={{ { \"success\": true } }}"
              }
            }
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/tasks/settings-templates/{{$parameter[\"taskSettingsTemplateId\"]}}",
          "method": "DELETE"
        }
      },
      "description": "**Required scopes:** `project.task` (Read and Write).",
      "resource": "tasks"
    },
    {
      "name": "Edit Project Task Settings Template",
      "value": "api.projects.tasks.settings-templates.patch",
      "action": "Edit Project Task Settings Template",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/tasks/settings-templates/{{$parameter[\"taskSettingsTemplateId\"]}}",
          "method": "PATCH"
        }
      },
      "description": "**Required scopes:** `project.task` (Read and Write).",
      "resource": "tasks"
    },
    {
      "name": "List Project Tasks",
      "value": "api.projects.tasks.getMany",
      "action": "List Project Tasks",
      "routing": {
        "send": {
          "paginate": "={{$parameter[\"returnAll\"]}}"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "enabled": "={{!$parameter[\"returnAll\"]}}",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/tasks",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.task` (Read only).",
      "resource": "tasks"
    },
    {
      "name": "Add Project Task",
      "value": "api.projects.tasks.post",
      "action": "Add Project Task",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/tasks",
          "method": "POST"
        }
      },
      "description": "**Required scopes:** `project.task` (Read and Write).",
      "resource": "tasks"
    },
    {
      "name": "Get Project Task",
      "value": "api.projects.tasks.get",
      "action": "Get Project Task",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/tasks/{{$parameter[\"taskId\"]}}",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.task` (Read only).",
      "resource": "tasks"
    },
    {
      "name": "Delete Project Task",
      "value": "api.projects.tasks.delete",
      "action": "Delete Project Task",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "set",
              "properties": {
                "value": "={{ { \"success\": true } }}"
              }
            }
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/tasks/{{$parameter[\"taskId\"]}}",
          "method": "DELETE"
        }
      },
      "description": "**Required scopes:** `project.task` (Read and Write).",
      "resource": "tasks"
    },
    {
      "name": "List Project Task Comments",
      "value": "api.projects.tasks.comments.getMany",
      "action": "List Project Task Comments",
      "routing": {
        "send": {
          "paginate": "={{$parameter[\"returnAll\"]}}"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "enabled": "={{!$parameter[\"returnAll\"]}}",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/tasks/{{$parameter[\"taskId\"]}}/comments",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.task` (Read only).",
      "resource": "tasks"
    },
    {
      "name": "Add Project Task Comment",
      "value": "api.projects.tasks.comments.post",
      "action": "Add Project Task Comment",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/tasks/{{$parameter[\"taskId\"]}}/comments",
          "method": "POST"
        }
      },
      "description": "**Required scopes:** `project.task` (Read and Write).",
      "resource": "tasks"
    },
    {
      "name": "Get Project Task Comment",
      "value": "api.projects.tasks.comments.get",
      "action": "Get Project Task Comment",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/tasks/{{$parameter[\"taskId\"]}}/comments/{{$parameter[\"commentId\"]}}",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.task` (Read only).",
      "resource": "tasks"
    },
    {
      "name": "Delete Project Task Comment",
      "value": "api.projects.tasks.comments.delete",
      "action": "Delete Project Task Comment",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "set",
              "properties": {
                "value": "={{ { \"success\": true } }}"
              }
            }
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/tasks/{{$parameter[\"taskId\"]}}/comments/{{$parameter[\"commentId\"]}}",
          "method": "DELETE"
        }
      },
      "description": "**Required scopes:** `project.task` (Read and Write).",
      "resource": "tasks"
    },
    {
      "name": "Edit Project Task Comment",
      "value": "api.projects.tasks.comments.patch",
      "action": "Edit Project Task Comment",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/tasks/{{$parameter[\"taskId\"]}}/comments/{{$parameter[\"commentId\"]}}",
          "method": "PATCH"
        }
      },
      "description": "**Required scopes:** `project.task` (Read and Write).",
      "resource": "tasks"
    },
    {
      "name": "Edit Project Task",
      "value": "api.projects.tasks.patch",
      "action": "Edit Project Task",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/tasks/{{$parameter[\"taskId\"]}}",
          "method": "PATCH"
        }
      },
      "description": "**Required scopes:** `project.task` (Read and Write).",
      "resource": "tasks"
    },
    {
      "name": "List User Tasks",
      "value": "api.user.tasks.getMany",
      "action": "List User Tasks",
      "routing": {
        "send": {
          "paginate": "={{$parameter[\"returnAll\"]}}"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "enabled": "={{!$parameter[\"returnAll\"]}}",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/user/tasks",
          "method": "GET"
        }
      },
      "resource": "tasks"
    },
    {
      "name": "Edit Task Archived Status",
      "value": "api.user.tasks.patch",
      "action": "Edit Task Archived Status",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "=/user/tasks/{{$parameter[\"taskId\"]}}?projectId={{$parameter[\"projectId\"]}}",
          "method": "PATCH"
        }
      },
      "resource": "tasks"
    },
    {
      "name": "Get Authenticated User",
      "value": "api.user.get",
      "action": "Get Authenticated User",
      "routing": {
        "request": {
          "url": "=/user",
          "method": "GET"
        }
      },
      "resource": "users"
    },
    {
      "name": "Edit Authenticated User",
      "value": "api.user.patch",
      "action": "Edit Authenticated User",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "/user",
          "method": "PATCH"
        }
      },
      "resource": "users"
    },
    {
      "name": "List Project Members",
      "value": "api.projects.members.getMany",
      "action": "List Project Members",
      "routing": {
        "send": {
          "paginate": "={{$parameter[\"returnAll\"]}}"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "enabled": "={{!$parameter[\"returnAll\"]}}",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/members",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.member` (Read only).",
      "resource": "users"
    },
    {
      "name": "Add Project Member",
      "value": "api.projects.members.post",
      "action": "Add Project Member",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/members",
          "method": "POST"
        }
      },
      "description": "**Required scopes:** `project.member` (Read and Write).",
      "resource": "users"
    },
    {
      "name": "Get Member Info",
      "value": "api.projects.members.get",
      "action": "Get Member Info",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/members/{{$parameter[\"memberId\"]}}",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.member` (Read only).",
      "resource": "users"
    },
    {
      "name": "Replace Project Member Permissions",
      "value": "api.projects.members.put",
      "action": "Replace Project Member Permissions",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/members/{{$parameter[\"memberId\"]}}",
          "method": "PUT"
        }
      },
      "description": "**Required scopes:** `project.member` (Read and Write).",
      "resource": "users"
    },
    {
      "name": "Delete Member From Project",
      "value": "api.projects.members.delete",
      "action": "Delete Member From Project",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "set",
              "properties": {
                "value": "={{ { \"success\": true } }}"
              }
            }
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/members/{{$parameter[\"memberId\"]}}",
          "method": "DELETE"
        }
      },
      "description": "**Required scopes:** `project.member` (Read and Write).",
      "resource": "users"
    },
    {
      "name": "List Webhooks",
      "value": "api.projects.webhooks.getMany",
      "action": "List Webhooks",
      "routing": {
        "send": {
          "paginate": "={{$parameter[\"returnAll\"]}}"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "enabled": "={{!$parameter[\"returnAll\"]}}",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/webhooks",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.webhook` (Read only).",
      "resource": "webhooks"
    },
    {
      "name": "Add Webhook",
      "value": "api.projects.webhooks.post",
      "action": "Add Webhook",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/webhooks",
          "method": "POST"
        }
      },
      "description": "**Required scopes:** `project.webhook` (Read and Write).",
      "resource": "webhooks"
    },
    {
      "name": "Get Webhook",
      "value": "api.projects.webhooks.get",
      "action": "Get Webhook",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/webhooks/{{$parameter[\"webhookId\"]}}",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.webhook` (Read only).",
      "resource": "webhooks"
    },
    {
      "name": "Delete Webhook",
      "value": "api.projects.webhooks.delete",
      "action": "Delete Webhook",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "set",
              "properties": {
                "value": "={{ { \"success\": true } }}"
              }
            }
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/webhooks/{{$parameter[\"webhookId\"]}}",
          "method": "DELETE"
        }
      },
      "description": "**Required scopes:** `project.webhook` (Read and Write).",
      "resource": "webhooks"
    },
    {
      "name": "Edit Webhook",
      "value": "api.projects.webhooks.patch",
      "action": "Edit Webhook",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/webhooks/{{$parameter[\"webhookId\"]}}",
          "method": "PATCH"
        }
      },
      "description": "**Required scopes:** `project.webhook` (Read and Write).",
      "resource": "webhooks"
    },
    {
      "name": "List Webhooks",
      "value": "api.webhooks.getMany",
      "action": "List Webhooks",
      "routing": {
        "send": {
          "paginate": "={{$parameter[\"returnAll\"]}}"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "enabled": "={{!$parameter[\"returnAll\"]}}",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/webhooks",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `webhook` (Read only).",
      "resource": "organizationWebhooks"
    },
    {
      "name": "Add Webhook",
      "value": "api.webhooks.post",
      "action": "Add Webhook",
      "routing": {
        "request": {
          "url": "=/webhooks",
          "method": "POST"
        }
      },
      "description": "**Required scopes:** `webhook` (Read and Write).",
      "resource": "organizationWebhooks"
    },
    {
      "name": "Get Webhook",
      "value": "api.webhooks.get",
      "action": "Get Webhook",
      "routing": {
        "request": {
          "url": "=/webhooks/{{$parameter[\"organizationWebhookId\"]}}",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `webhook` (Read only).",
      "resource": "organizationWebhooks"
    },
    {
      "name": "Delete Webhook",
      "value": "api.webhooks.delete",
      "action": "Delete Webhook",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "set",
              "properties": {
                "value": "={{ { \"success\": true } }}"
              }
            }
          ]
        },
        "request": {
          "url": "=/webhooks/{{$parameter[\"organizationWebhookId\"]}}",
          "method": "DELETE"
        }
      },
      "description": "**Required scopes:** `webhook` (Read and Write).",
      "resource": "organizationWebhooks"
    },
    {
      "name": "Edit Webhook",
      "value": "api.webhooks.patch",
      "action": "Edit Webhook",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "=/webhooks/{{$parameter[\"organizationWebhookId\"]}}",
          "method": "PATCH"
        }
      },
      "description": "**Required scopes:** `webhook` (Read and Write).",
      "resource": "organizationWebhooks"
    },
    {
      "name": "List Dictionaries",
      "value": "api.projects.dictionaries.getMany",
      "action": "List Dictionaries",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/dictionaries",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.dictionary` (Read only).",
      "resource": "dictionaries"
    },
    {
      "name": "Edit Dictionary",
      "value": "api.projects.dictionaries.patch",
      "action": "Edit Dictionary",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/dictionaries/{{$parameter[\"languageId\"]}}",
          "method": "PATCH"
        }
      },
      "description": "**Required scopes:** `project.dictionary` (Read and Write).",
      "resource": "dictionaries"
    },
    {
      "name": "List Application Installations",
      "value": "api.applications.installations.getMany",
      "action": "List Application Installations",
      "routing": {
        "send": {
          "paginate": "={{$parameter[\"returnAll\"]}}"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "enabled": "={{!$parameter[\"returnAll\"]}}",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/applications/installations",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `application` (Read only).",
      "resource": "applications"
    },
    {
      "name": "Install Application",
      "value": "api.applications.installations.post",
      "action": "Install Application",
      "routing": {
        "request": {
          "url": "=/applications/installations",
          "method": "POST"
        }
      },
      "description": "**Required scopes:** `application` (Read and Write).",
      "resource": "applications"
    },
    {
      "name": "Get Application Installation",
      "value": "api.applications.installations.get",
      "action": "Get Application Installation",
      "routing": {
        "request": {
          "url": "=/applications/installations/{{$parameter[\"identifier\"]}}",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `application` (Read only).",
      "resource": "applications"
    },
    {
      "name": "Delete Application Installation",
      "value": "api.applications.installations.delete",
      "action": "Delete Application Installation",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "set",
              "properties": {
                "value": "={{ { \"success\": true } }}"
              }
            }
          ]
        },
        "request": {
          "url": "=/applications/installations/{{$parameter[\"identifier\"]}}",
          "method": "DELETE"
        }
      },
      "description": "**Required scopes:** `application` (Read and Write).",
      "resource": "applications"
    },
    {
      "name": "Edit Application Installation",
      "value": "api.applications.installations.patch",
      "action": "Edit Application Installation",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "=/applications/installations/{{$parameter[\"identifier\"]}}",
          "method": "PATCH"
        }
      },
      "description": "**Required scopes:** `application` (Read and Write).",
      "resource": "applications"
    },
    {
      "name": "Get Application Data",
      "value": "api.applications.api.get",
      "action": "Get Application Data",
      "routing": {
        "request": {
          "url": "=/applications/{{$parameter[\"applicationIdentifier\"]}}/api/{{$parameter[\"path\"]}}",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `application` (Read only).\n\nRetrieves data from the specified application.\n\n__Note__: Query parameters are application-specific and vary depending on the application being accessed.",
      "resource": "applications"
    },
    {
      "name": "Update or Restore Application Data",
      "value": "api.applications.api.put",
      "action": "Update or Restore Application Data",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "=/applications/{{$parameter[\"applicationIdentifier\"]}}/api/{{$parameter[\"path\"]}}",
          "method": "PUT"
        }
      },
      "description": "**Required scopes:** `application` (Read and Write).\n\nUpdates or restores data in the specified application.\n\n__Note__: Both the query parameters and request body are application-specific and vary depending on the application being accessed.",
      "resource": "applications"
    },
    {
      "name": "Add Application Data",
      "value": "api.applications.api.post",
      "action": "Add Application Data",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "=/applications/{{$parameter[\"applicationIdentifier\"]}}/api/{{$parameter[\"path\"]}}",
          "method": "POST"
        }
      },
      "description": "**Required scopes:** `application` (Read and Write).\n\nAdds new data to the specified application.\n\n__Note__: Both the query parameters and request body are application-specific and vary depending on the application being accessed.",
      "resource": "applications"
    },
    {
      "name": "Delete Application Data",
      "value": "api.applications.api.delete",
      "action": "Delete Application Data",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "set",
              "properties": {
                "value": "={{ { \"success\": true } }}"
              }
            }
          ]
        },
        "request": {
          "url": "=/applications/{{$parameter[\"applicationIdentifier\"]}}/api/{{$parameter[\"path\"]}}",
          "method": "DELETE"
        }
      },
      "description": "**Required scopes:** `application` (Read and Write).\n\nDeletes data from the specified application.\n\n__Note__: Query parameters are application-specific and vary depending on the application being accessed.",
      "resource": "applications"
    },
    {
      "name": "Edit Application Data",
      "value": "api.applications.api.patch",
      "action": "Edit Application Data",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "=/applications/{{$parameter[\"applicationIdentifier\"]}}/api/{{$parameter[\"path\"]}}",
          "method": "PATCH"
        }
      },
      "description": "**Required scopes:** `application` (Read and Write).\n\nEdits existing data in the specified application.\n\n__Note__: Both the query parameters and request body are application-specific and vary depending on the application being accessed.",
      "resource": "applications"
    },
    {
      "name": "List Crowdin Files",
      "value": "api.applications.integrations.crowdin.files",
      "action": "List Crowdin Files",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/applications/{{$parameter[\"applicationIdentifier\"]}}/api/crowdin-files",
          "method": "GET"
        }
      },
      "resource": "integrations"
    },
    {
      "name": "Get File Progress",
      "value": "api.applications.integrations.file.progress",
      "action": "Get File Progress",
      "routing": {
        "request": {
          "url": "=/applications/{{$parameter[\"applicationIdentifier\"]}}/api/file-progress",
          "method": "GET"
        }
      },
      "resource": "integrations"
    },
    {
      "name": "List Integration Files",
      "value": "api.applications.integrations.integration.files",
      "action": "List Integration Files",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/applications/{{$parameter[\"applicationIdentifier\"]}}/api/integration-files",
          "method": "GET"
        }
      },
      "resource": "integrations"
    },
    {
      "name": "Update Crowdin Files",
      "value": "api.applications.integrations.crowdin.update",
      "action": "Update Crowdin Files",
      "routing": {
        "request": {
          "url": "=/applications/{{$parameter[\"applicationIdentifier\"]}}/api/crowdin-update",
          "method": "POST"
        }
      },
      "resource": "integrations"
    },
    {
      "name": "Update Integration Files",
      "value": "api.applications.integrations.integration.update",
      "action": "Update Integration Files",
      "routing": {
        "request": {
          "url": "=/applications/{{$parameter[\"applicationIdentifier\"]}}/api/integration-update",
          "method": "POST"
        }
      },
      "resource": "integrations"
    },
    {
      "name": "List Jobs",
      "value": "api.applications.integrations.job.list",
      "action": "List Jobs",
      "routing": {
        "send": {
          "paginate": "={{$parameter[\"returnAll\"]}}"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "enabled": "={{!$parameter[\"returnAll\"]}}",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/applications/{{$parameter[\"applicationIdentifier\"]}}/api/all-jobs",
          "method": "GET"
        }
      },
      "resource": "integrations"
    },
    {
      "name": "Get Job Info",
      "value": "api.applications.integrations.job.info",
      "action": "Get Job Info",
      "routing": {
        "request": {
          "url": "=/applications/{{$parameter[\"applicationIdentifier\"]}}/api/job-info",
          "method": "GET"
        }
      },
      "resource": "integrations"
    },
    {
      "name": "Cancel Job",
      "value": "api.applications.integrations.job.cancel",
      "action": "Cancel Job",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "set",
              "properties": {
                "value": "={{ { \"success\": true } }}"
              }
            }
          ]
        },
        "request": {
          "url": "=/applications/{{$parameter[\"applicationIdentifier\"]}}/api/jobs",
          "method": "DELETE"
        }
      },
      "resource": "integrations"
    },
    {
      "name": "Get Application Settings",
      "value": "api.applications.integrations.settings.get",
      "action": "Get Application Settings",
      "routing": {
        "request": {
          "url": "=/applications/{{$parameter[\"applicationIdentifier\"]}}/api/settings",
          "method": "GET"
        }
      },
      "resource": "integrations"
    },
    {
      "name": "Update Application Settings",
      "value": "api.applications.integrations.settings.update",
      "action": "Update Application Settings",
      "routing": {
        "request": {
          "url": "=/applications/{{$parameter[\"applicationIdentifier\"]}}/api/settings",
          "method": "POST"
        }
      },
      "resource": "integrations"
    },
    {
      "name": "Get Sync Settings",
      "value": "api.applications.integrations.sync.settings.get",
      "action": "Get Sync Settings",
      "routing": {
        "request": {
          "url": "=/applications/{{$parameter[\"applicationIdentifier\"]}}/api/sync-settings",
          "method": "GET"
        }
      },
      "resource": "integrations"
    },
    {
      "name": "Update Sync Settings",
      "value": "api.applications.integrations.sync.settings.update",
      "action": "Update Sync Settings",
      "routing": {
        "request": {
          "url": "=/applications/{{$parameter[\"applicationIdentifier\"]}}/api/sync-settings",
          "method": "POST"
        }
      },
      "resource": "integrations"
    },
    {
      "name": "Integration Login Form Fields",
      "value": "api.applications.integrations.integration.fields",
      "action": "Integration Login Form Fields",
      "routing": {
        "request": {
          "url": "=/applications/{{$parameter[\"applicationIdentifier\"]}}/api/login-fields",
          "method": "GET"
        }
      },
      "resource": "integrations"
    },
    {
      "name": "Integration Login",
      "value": "api.applications.integrations.integration.login",
      "action": "Integration Login",
      "routing": {
        "request": {
          "url": "=/applications/{{$parameter[\"applicationIdentifier\"]}}/api/login",
          "method": "POST"
        }
      },
      "resource": "integrations"
    },
    {
      "name": "List Bundles",
      "value": "api.projects.bundles.getMany",
      "action": "List Bundles",
      "routing": {
        "send": {
          "paginate": "={{$parameter[\"returnAll\"]}}"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "enabled": "={{!$parameter[\"returnAll\"]}}",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/bundles",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.translation` (Read only).",
      "resource": "bundles"
    },
    {
      "name": "Add Bundle",
      "value": "api.projects.bundles.post",
      "action": "Add Bundle",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/bundles",
          "method": "POST"
        }
      },
      "description": "**Required scopes:** `project.source.file` (Read and Write).",
      "resource": "bundles"
    },
    {
      "name": "Get Bundle",
      "value": "api.projects.bundles.get",
      "action": "Get Bundle",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/bundles/{{$parameter[\"bundleId\"]}}",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.source.file` (Read only).",
      "resource": "bundles"
    },
    {
      "name": "Delete Bundle",
      "value": "api.projects.bundles.delete",
      "action": "Delete Bundle",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "set",
              "properties": {
                "value": "={{ { \"success\": true } }}"
              }
            }
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/bundles/{{$parameter[\"bundleId\"]}}",
          "method": "DELETE"
        }
      },
      "description": "**Required scopes:** `project.source.file` (Read and Write).",
      "resource": "bundles"
    },
    {
      "name": "Edit Bundle",
      "value": "api.projects.bundles.patch",
      "action": "Edit Bundle",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/bundles/{{$parameter[\"bundleId\"]}}",
          "method": "PATCH"
        }
      },
      "description": "**Required scopes:** `project.source.file` (Read and Write).",
      "resource": "bundles"
    },
    {
      "name": "Download Bundle",
      "value": "api.projects.bundles.exports.download.get",
      "action": "Download Bundle",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/bundles/{{$parameter[\"bundleId\"]}}/exports/{{$parameter[\"exportId\"]}}/download",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.translation` (Read only).",
      "resource": "bundles"
    },
    {
      "name": "Export Bundle",
      "value": "api.projects.bundles.exports.post",
      "action": "Export Bundle",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/bundles/{{$parameter[\"bundleId\"]}}/exports",
          "method": "POST"
        }
      },
      "description": "**Required scopes:** `project.translation` (Read only).",
      "resource": "bundles"
    },
    {
      "name": "Check Bundle Export Status",
      "value": "api.projects.bundles.exports.get",
      "action": "Check Bundle Export Status",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/bundles/{{$parameter[\"bundleId\"]}}/exports/{{$parameter[\"exportId\"]}}",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.translation` (Read only).",
      "resource": "bundles"
    },
    {
      "name": "Bundle List Files",
      "value": "api.projects.bundles.files.getMany",
      "action": "Bundle List Files",
      "routing": {
        "send": {
          "paginate": "={{$parameter[\"returnAll\"]}}"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "enabled": "={{!$parameter[\"returnAll\"]}}",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/bundles/{{$parameter[\"bundleId\"]}}/files",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.source.file` (Read only).",
      "resource": "bundles"
    },
    {
      "name": "List Distributions",
      "value": "api.projects.distributions.getMany",
      "action": "List Distributions",
      "routing": {
        "send": {
          "paginate": "={{$parameter[\"returnAll\"]}}"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "enabled": "={{!$parameter[\"returnAll\"]}}",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/distributions",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.translation` (Read only).",
      "resource": "distributions"
    },
    {
      "name": "Add Distribution",
      "value": "api.projects.distributions.post",
      "action": "Add Distribution",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/distributions",
          "method": "POST"
        }
      },
      "description": "**Required scopes:** `project.translation` (Read and Write).",
      "resource": "distributions"
    },
    {
      "name": "Get Distribution",
      "value": "api.projects.distributions.get",
      "action": "Get Distribution",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/distributions/{{$parameter[\"hash\"]}}",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.translation` (Read only).",
      "resource": "distributions"
    },
    {
      "name": "Delete Distribution",
      "value": "api.projects.distributions.delete",
      "action": "Delete Distribution",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "set",
              "properties": {
                "value": "={{ { \"success\": true } }}"
              }
            }
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/distributions/{{$parameter[\"hash\"]}}",
          "method": "DELETE"
        }
      },
      "description": "**Required scopes:** `project.translation` (Read and Write).",
      "resource": "distributions"
    },
    {
      "name": "Edit Distribution",
      "value": "api.projects.distributions.patch",
      "action": "Edit Distribution",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/distributions/{{$parameter[\"hash\"]}}",
          "method": "PATCH"
        }
      },
      "description": "**Required scopes:** `project.translation` (Read and Write).",
      "resource": "distributions"
    },
    {
      "name": "Get Distribution Release",
      "value": "api.projects.distributions.release.get",
      "action": "Get Distribution Release",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/distributions/{{$parameter[\"hash\"]}}/release",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.translation` (Read and Write).",
      "resource": "distributions"
    },
    {
      "name": "Release Distribution",
      "value": "api.projects.distributions.release.post",
      "action": "Release Distribution",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/distributions/{{$parameter[\"hash\"]}}/release",
          "method": "POST"
        }
      },
      "description": "**Required scopes:** `project.translation` (Read and Write).",
      "resource": "distributions"
    },
    {
      "name": "Assign Label to Strings",
      "value": "api.projects.labels.strings.post",
      "action": "Assign Label to Strings",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/labels/{{$parameter[\"labelId\"]}}/strings",
          "method": "POST"
        }
      },
      "description": "**Required scopes:** `project.source.file` (Read and Write).",
      "resource": "labels"
    },
    {
      "name": "Unassign Label from Strings",
      "value": "api.projects.labels.strings.deleteMany",
      "action": "Unassign Label from Strings",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "set",
              "properties": {
                "value": "={{ { \"success\": true } }}"
              }
            }
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/labels/{{$parameter[\"labelId\"]}}/strings",
          "method": "DELETE"
        }
      },
      "description": "**Required scopes:** `project.source.file` (Read and Write).",
      "resource": "labels"
    },
    {
      "name": "List Labels",
      "value": "api.projects.labels.getMany",
      "action": "List Labels",
      "routing": {
        "send": {
          "paginate": "={{$parameter[\"returnAll\"]}}"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "enabled": "={{!$parameter[\"returnAll\"]}}",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/labels",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.source.file` (Read only).",
      "resource": "labels"
    },
    {
      "name": "Add Label",
      "value": "api.projects.labels.post",
      "action": "Add Label",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/labels",
          "method": "POST"
        }
      },
      "description": "**Required scopes:** `project.source.file` (Read and Write).",
      "resource": "labels"
    },
    {
      "name": "Get Label",
      "value": "api.projects.labels.get",
      "action": "Get Label",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/labels/{{$parameter[\"labelId\"]}}",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `project.source.file` (Read only).",
      "resource": "labels"
    },
    {
      "name": "Delete Label",
      "value": "api.projects.labels.delete",
      "action": "Delete Label",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "set",
              "properties": {
                "value": "={{ { \"success\": true } }}"
              }
            }
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/labels/{{$parameter[\"labelId\"]}}",
          "method": "DELETE"
        }
      },
      "description": "**Required scopes:** `project.source.file` (Read and Write).",
      "resource": "labels"
    },
    {
      "name": "Edit Label",
      "value": "api.projects.labels.patch",
      "action": "Edit Label",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/labels/{{$parameter[\"labelId\"]}}",
          "method": "PATCH"
        }
      },
      "description": "**Required scopes:** `project.source.file` (Read and Write).",
      "resource": "labels"
    },
    {
      "name": "Assign Label to Screenshots",
      "value": "api.projects.labels.screenshots.post",
      "action": "Assign Label to Screenshots",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/labels/{{$parameter[\"labelId\"]}}/screenshots",
          "method": "POST"
        }
      },
      "description": "**Required scopes:** `project.source.file` (Read and Write).",
      "resource": "labels"
    },
    {
      "name": "Unassign Label from Screenshots",
      "value": "api.projects.labels.screenshots.deleteMany",
      "action": "Unassign Label from Screenshots",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "set",
              "properties": {
                "value": "={{ { \"success\": true } }}"
              }
            }
          ]
        },
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/labels/{{$parameter[\"labelId\"]}}/screenshots",
          "method": "DELETE"
        }
      },
      "description": "**Required scopes:** `project.source.file` (Read and Write).",
      "resource": "labels"
    },
    {
      "name": "Send Notification to Authenticated User",
      "value": "api.notify.post",
      "action": "Send Notification to Authenticated User",
      "routing": {
        "request": {
          "url": "=/notify",
          "method": "POST"
        }
      },
      "description": "**Required scopes:** `notification` (Read and Write).",
      "resource": "notifications"
    },
    {
      "name": "Send Notification To Project Members",
      "value": "api.projects.notify.post",
      "action": "Send Notification To Project Members",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter[\"projectId\"]}}/notify",
          "method": "POST"
        }
      },
      "description": "**Required scopes:** `project` (Read and Write).",
      "resource": "notifications"
    },
    {
      "name": "List User Security Logs",
      "value": "api.users.security-logs.getMany",
      "action": "List User Security Logs",
      "routing": {
        "send": {
          "paginate": "={{$parameter[\"returnAll\"]}}"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "enabled": "={{!$parameter[\"returnAll\"]}}",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/users/{{$parameter[\"userId\"]}}/security-logs",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `security-log` (Read only).",
      "resource": "securityLogs"
    },
    {
      "name": "Get User Security Log",
      "value": "api.users.security-logs.get",
      "action": "Get User Security Log",
      "routing": {
        "request": {
          "url": "=/users/{{$parameter[\"userId\"]}}/security-logs/{{$parameter[\"securityLogId\"]}}",
          "method": "GET"
        }
      },
      "description": "**Required scopes:** `security-log` (Read only).",
      "resource": "securityLogs"
    }
  ]

npm_readme:
  # @crowdin/n8n-nodes-crowdin

  [![npm](https://img.shields.io/npm/v/@crowdin/n8n-nodes-crowdin?logo=npm&cacheSeconds=1800)](https://www.npmjs.com/package/@crowdin/n8n-nodes-crowdin)
  [![npm](https://img.shields.io/npm/dt/@crowdin/n8n-nodes-crowdin?logo=npm&cacheSeconds=1800)](https://www.npmjs.com/package/@crowdin/n8n-nodes-crowdin)
  [![License](https://img.shields.io/github/license/crowdin/n8n-nodes-crowdin?cacheSeconds=3600)](https://github.com/crowdin/n8n-nodes-crowdin/blob/main/LICENSE)

  This is an n8n community node. It lets you use [Crowdin](https://crowdin.com/) in your n8n workflows.

  Crowdin is an AI-powered localization software designed for teams and businesses. It's a cloud-based solution that streamlines localization management for your product. With 700+ apps and integrations, Crowdin automates the translation process. Its AI translator provides accurate, context-aware translations that continuously improve based on your resources and feedback. Crowdin supports 300+ languages and enables continuous localization for software, mobile apps, websites, marketing content, and help centers.

  [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.

  [Installation](#installation)  
  [Nodes](#nodes)  
  [Operations](#operations)  
  [Credentials](#credentials)  
  [Compatibility](#compatibility)  
  [Usage](#usage)  
  [Workflow Templates](#workflow-templates)  
  [Resources](#resources)  

  ## Installation

  Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.

  ## Nodes

  This package includes the following nodes:

  ### Action Nodes

  | Node | Description |
  |------|-------------|
  | **Crowdin (File-Based)** | Interact with Crowdin file-based projects on crowdin.com |
  | **Crowdin (String-Based)** | Interact with Crowdin string-based projects on crowdin.com |
  | **Crowdin Enterprise (File-Based)** | Interact with Crowdin Enterprise file-based projects |
  | **Crowdin Enterprise (String-Based)** | Interact with Crowdin Enterprise string-based projects |

  ### Trigger Nodes

  | Node | Description |
  |------|-------------|
  | **Crowdin (File-Based) Trigger** | Start workflows on file-based project events |
  | **Crowdin (String-Based) Trigger** | Start workflows on string-based project events |
  | **Crowdin Enterprise (File-Based) Trigger** | Start workflows on Enterprise file-based project events |
  | **Crowdin Enterprise (String-Based) Trigger** | Start workflows on Enterprise string-based project events |

  ## Operations

  ### Common Resources

  | Resource | Description |
  |----------|-------------|
  | **AI** | AI-powered features for translation assistance |
  | **Storage** | Upload files for localization, screenshots, glossaries, and TMs |
  | **Languages** | Access 300+ supported languages and their details |
  | **Source Files** | Manage source files, folders, and branches |
  | **Source Strings** | Manage text units for translation |
  | **String/Asset Translations** | Add, remove, and manage translations and approvals |
  | **String/Asset Comments** | Manage comments and issues on strings |
  | **Screenshots** | Provide visual context for translators |
  | **Glossaries** | Maintain terminology consistency |
  | **Translation Memory** | Reuse previous translations |
  | **Machine Translation Engines** | Configure MT providers (Google, DeepL, etc.) |
  | **Translation Status** | Track localization progress |
  | **Reports** | Generate cost estimates and translation reports |
  | **Users** | Get user profile information |
  | **Webhooks** | Configure project-level webhooks |
  | **Organization Webhooks** | Configure account-level webhooks |
  | **Applications** | Manage Crowdin App integrations |
  | **Bundles** | Group files for export |
  | **Dictionaries** | Manage spell-checker word lists |
  | **Distributions** | Configure content delivery |
  | **Labels** | Organize strings with labels |
  | **Notifications** | Manage notification settings |
  | **Security Logs** | Access audit logs |
  | **Tasks** | Create and manage translation tasks |

  ### Crowdin-Specific Resources

  | Resource | Description |
  |----------|-------------|
  | **Projects** | Manage localization projects |
  | **Translations** | Pre-translate and download translations |

  ### Crowdin Enterprise-Specific Resources

  | Resource | Description |
  |----------|-------------|
  | **Projects and Groups** | Manage projects and organizational groups |
  | **Workflows** | Configure translation workflow templates |
  | **Teams** | Manage team members and permissions |
  | **Vendors** | Manage translation vendor relationships |
  | **Clients** | Manage client organizations |
  | **Fields** | Configure custom fields |
  | **Organization** | Manage organization settings |
  | **External QA Checks** | Configure external quality assurance |
  | **Custom Spellcheckers** | Manage custom spell-check dictionaries |
  | **String Corrections** | Manage string correction suggestions |

  ### Trigger Events

  The trigger nodes support the following webhook events. For detailed payload structures, see the [Crowdin Webhooks Documentation](https://support.crowdin.com/developer/webhooks/#events).

  #### Account/Organization Events

  | Event | Crowdin | Enterprise | Description |
  |-------|:-------:|:----------:|-------------|
  | Project created | ✅ | ✅ | A project is created |
  | Project deleted | ✅ | ✅ | A project is deleted |
  | Group created | — | ✅ | A group is created |
  | Group deleted | — | ✅ | A group is deleted |

  #### Project Events

  | Event | Description |
  |-------|-------------|
  | Project fully translated | All files are translated into one of the target languages |
  | Project fully reviewed | Translations in all files are approved for one of the target languages |
  | Project successfully built | A project is built successfully |
  | Project QA check finished | QA check for all strings in the project is finished |
  | Exported translation updated | Final translation of a string is updated |

  #### File Events (File-Based Projects Only)

  | Event | Description |
  |-------|-------------|
  | File added | A new file is added to the project |
  | File updated | A file is updated |
  | File deleted | A file is deleted |
  | File reverted | A file is reverted to the previous revision |
  | File fully translated | A file is translated into one of the target languages |
  | File fully reviewed | Translations in a file are approved for one of the target languages |
  | File QA check finished | QA check for all strings in a file is finished |

  #### Source String Events

  | Event | Description |
  |-------|-------------|
  | Source string added | A new string is added to the project |
  | Source string updated | A string in the project is updated |
  | Source string deleted | A string is deleted |

  #### String Comment/Issue Events

  | Event | Description |
  |-------|-------------|
  | String comment/issue created | A comment or issue is added to the string |
  | String comment/issue updated | A comment or issue is updated |
  | String comment/issue deleted | A comment or issue is deleted |
  | String comment/issue restored | A comment or issue is restored |

  #### Suggested Translation Events

  | Event | Description |
  |-------|-------------|
  | Suggested translation added | A string in the project is translated |
  | Suggested translation updated | A translation for a string in the project is updated |
  | Suggested translation deleted | One of the translations is deleted |
  | Suggested translation approved | A translation for a string is approved |
  | Suggested translation disapproved | Approval for a previously added translation is removed |

  #### Task Events

  | Event | Description |
  |-------|-------------|
  | Task added | A task is added to the project |
  | Task status changed | A task status is changed |
  | Task updated | A task is updated |
  | Task deleted | A task is deleted |

  ## Credentials

  This node supports two authentication methods:

  ### OAuth2 (Recommended)

  1. Go to your [Crowdin OAuth Apps](https://crowdin.com/settings#oauth-apps) or [Crowdin Enterprise OAuth Apps](https://{your-organization}.crowdin.com/u/system-settings/oauth-apps)
  2. Create a new OAuth application
  3. Configure the redirect URI as provided by n8n
  4. Use the Client ID and Client Secret in n8n credentials
  5. Set the required scopes (e.g., `project`, `tm`, `glossary`)

  ### Personal Access Token

  1. Go to your [Crowdin API Settings](https://crowdin.com/settings#api-key) or [Crowdin Enterprise Access Tokens](https://{your-organization}.crowdin.com/u/user_settings/access-tokens)
  2. Create a new Personal Access Token
  3. Grant only the minimum required scopes for your workflow
  4. Copy the token and paste it into n8n credentials

  > 🔐 **Security Best Practice:** Follow the principle of least privilege - grant only the minimum scopes required for your workflow.

  ## Compatibility

  - **Minimum n8n version:** 1.0.0
  - **Tested with:** n8n 2.4.4

  ## Usage

  ### File-Based vs String-Based Projects

  Crowdin supports two types of projects:

  - **File-Based Projects:** Traditional localization workflow where you upload source files (JSON, XLIFF, Android XML, etc.) and download translated versions
  - **String-Based Projects:** Content is managed as individual strings without file structure, ideal for web applications and dynamic content

  Choose the appropriate node based on your project type.

  ### Crowdin vs Crowdin Enterprise

  - **Crowdin (crowdin.com):** For individuals and teams using the standard Crowdin platform
  - **Crowdin Enterprise:** For organizations with dedicated Crowdin Enterprise instances (custom domain: `{organization}.crowdin.com`)

  ### Example Workflow: Sync Translations

  1. Add a **Crowdin Trigger** node to listen for `file.translated` events
  2. Use the **Crowdin** node to build and download translations
  3. Connect to your deployment pipeline or storage

  ### Using with AI Agents

  All nodes in this package have `usableAsTool: true`, making them compatible with n8n's AI Agent nodes. You can use them as tools for AI-powered automation workflows.

  ## Workflow Templates

  This package includes ready-to-use workflow templates:

  | Template | Description |
  |----------|-------------|
  | **Crowdin AI Translation Slack Bot** | AI-powered translation assistant in Slack |
  | **Crowdin AI Translation Teams Bot** | AI-powered translation assistant in Microsoft Teams |
  | **Crowdin to JIRA** | Sync Crowdin issues to JIRA tickets |
  | **Crowdin to Linear** | Sync Crowdin issues to Linear issues |
  | **JIRA to Crowdin** | Create Crowdin tasks from JIRA tickets |
  | **Linear to Crowdin** | Create Crowdin tasks from Linear issues |

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [Crowdin API documentation](https://support.crowdin.com/api/v2/)
  - [Crowdin Enterprise API documentation](https://support.crowdin.com/enterprise/api/)
  - [Crowdin Developer Portal](https://developer.crowdin.com/)
  - [Crowdin Help Center](https://support.crowdin.com/)

  ## License

  [MIT](LICENSE.md)

ai_documentation_summary:
  {"purpose":"This n8n community node allows users to interact with Crowdin's cloud-based localization platform to manage translations, files, and projects for software, mobile apps, and content.","capabilities":["File-based project management","String-based project management","Enterprise project management","AI-powered translation assistance","File upload and localization management","Multi-language support (300+ languages)","Translation memory and glossary management","Machine translation engine configuration","Translation status tracking and reporting","Webhook configuration for project events"],"authentication":"API key required","commonUseCases":["Automating translation workflows for software localization","Managing multi-language content for websites and marketing","Integrating AI translation into development pipelines","Tracking translation progress and quality","Automating project creation and deletion events"],"limitations":["Community node (requires n8n community license)","Requires valid Crowdin account with appropriate permissions","Some enterprise-specific features require Enterprise plan"],"relatedNodes":["Crowdin (String-Based)","Crowdin Enterprise (File-Based)","Crowdin Enterprise (String-Based)","Crowdin (File-Based) Trigger","Crowdin (String-Based) Trigger"]}


