> ## Documentation Index
> Fetch the complete documentation index at: https://docs.runalloy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Generate Alloy Link

> This endpoint generates an alloy Link. For more details on Embedded Link, please [read](/embedded/alloy-link) this tutorial.



## OpenAPI

````yaml get /users/{userId}/integrations/{integrationId}/install-url
openapi: 3.0.1
info:
  title: Embedded 2025-09
  version: '5.0'
servers:
  - url: https://production.runalloy.com
security: []
paths:
  /users/{userId}/integrations/{integrationId}/install-url:
    get:
      summary: Create an Embedded link for an integration
      description: >-
        This endpoint generates an alloy Link. For more details on Embedded
        Link, please [read](/embedded/alloy-link) this tutorial.
      operationId: generate-alloy-link
      parameters:
        - name: Authorization
          in: header
          required: true
          schema:
            type: string
            default: bearer YOUR_API_KEY
        - $ref: '#/components/parameters/xApiVersion'
        - name: userId
          in: query
          description: The user to generate the Embedded Link for
          schema:
            type: string
          required: true
        - name: integrationId
          in: path
          description: The Id of the integration you want to generate the Embedded Link for
          schema:
            type: string
          required: true
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value:
                    url: >-
                      https://app.runalloy.com/embedded-install?integrationId=XXXXXXX&token=YYYYYYYY.ZZZZZZZZZZZZZ.WWWWWWWWWWWWWW-VVVVVVVVV&forgeMode=engaged&alwaysShowCredentials=true
              schema:
                type: object
                properties:
                  url:
                    type: string
                    example: >-
                      https://app.runalloy.com/embedded-install?integrationId=XXXXXXX&token=YYYYYYYY.ZZZZZZZZZZZZZ.WWWWWWWWWWWWWW-VVVVVVVVV&forgeMode=engaged&alwaysShowCredentials=true
      deprecated: false
      security: []
      x-code-samples:
        - lang: cURL
          source: >
            curl -X GET
            "https://production.runalloy.com/users/{userId}/integrations/{integrationId}/install-url?userId={{userId}}"
            \
              -H "Authorization: bearer YOUR_API_KEY" \
              -H "x-api-version: 2025-09"
        - lang: Python
          source: >
            import requests


            url =
            "https://production.runalloy.com/users/{userId}/integrations/{integrationId}/install-url"

            params = {"userId": "{{userId}}"}

            headers = {
                "Authorization": "bearer YOUR_API_KEY",
                "x-api-version": "2025-09"
            }


            response = requests.get(url, params=params, headers=headers)

            print(response.json())
        - lang: JavaScript
          source: >
            const userId = "{{userId}}";

            const integrationId = "{integrationId}";

            const url =
            `https://production.runalloy.com/users/${userId}/integrations/${integrationId}/install-url?userId=${userId}`;


            fetch(url, {
              method: "GET",
              headers: {
                "Authorization": "bearer YOUR_API_KEY",
                "x-api-version": "2025-09"
              }
            })
              .then(response => response.json())
              .then(data => console.log(data))
              .catch(error => console.error("Error:", error));
        - lang: PHP
          source: >
            <?php

            $userId = "{{userId}}";

            $integrationId = "{integrationId}";

            $url =
            "https://production.runalloy.com/users/{$userId}/integrations/{$integrationId}/install-url?userId="
            . urlencode($userId);


            $ch = curl_init($url);

            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

            curl_setopt($ch, CURLOPT_HTTPHEADER, [
                "Authorization: bearer YOUR_API_KEY",
                "x-api-version: 2025-09"
            ]);


            $response = curl_exec($ch);

            curl_close($ch);

            $data = json_decode($response, true);

            print_r($data);

            ?>
        - lang: Go
          source: |
            package main

            import (
                "encoding/json"
                "fmt"
                "io"
                "net/http"
                "net/url"
            )

            func main() {
                userId := "{{userId}}"
                integrationId := "{integrationId}"
                baseURL := "https://production.runalloy.com/users/" + userId + "/integrations/" + integrationId + "/install-url"
                params := url.Values{}
                params.Add("userId", userId)
                fullURL := baseURL + "?" + params.Encode()

                req, _ := http.NewRequest("GET", fullURL, nil)
                req.Header.Set("Authorization", "bearer YOUR_API_KEY")
                req.Header.Set("x-api-version", "2025-09")

                client := &http.Client{}
                resp, _ := client.Do(req)
                defer resp.Body.Close()

                body, _ := io.ReadAll(resp.Body)
                var data map[string]interface{}
                json.Unmarshal(body, &data)
                fmt.Println(data)
            }
        - lang: Java
          source: |
            import java.net.HttpURLConnection;
            import java.net.URL;
            import java.io.BufferedReader;
            import java.io.InputStreamReader;
            import com.google.gson.Gson;
            import java.util.Map;

            public class Example {
                public static void main(String[] args) throws Exception {
                    String userId = "{{userId}}";
                    String integrationId = "{integrationId}";
                    String baseUrl = "https://production.runalloy.com/users/" + userId + "/integrations/" + integrationId + "/install-url";
                    String urlString = baseUrl + "?userId=" + java.net.URLEncoder.encode(userId, "UTF-8");
                    
                    URL url = new URL(urlString);
                    HttpURLConnection conn = (HttpURLConnection) url.openConnection();
                    conn.setRequestMethod("GET");
                    conn.setRequestProperty("Authorization", "bearer YOUR_API_KEY");
                    conn.setRequestProperty("x-api-version", "2025-09");
                    
                    BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
                    String inputLine;
                    StringBuilder response = new StringBuilder();
                    while ((inputLine = in.readLine()) != null) {
                        response.append(inputLine);
                    }
                    in.close();
                    
                    Gson gson = new Gson();
                    Map<String, Object> data = gson.fromJson(response.toString(), Map.class);
                    System.out.println(data);
                }
            }
        - lang: Ruby
          source: >
            require 'net/http'

            require 'json'

            require 'uri'


            userId = "{{userId}}"

            integrationId = "{integrationId}"

            base_url =
            "https://production.runalloy.com/users/#{userId}/integrations/#{integrationId}/install-url"

            uri = URI(base_url)

            params = { userId: userId }

            uri.query = URI.encode_www_form(params)


            http = Net::HTTP.new(uri.host, uri.port)

            http.use_ssl = true


            request = Net::HTTP::Get.new(uri)

            request['Authorization'] = 'bearer YOUR_API_KEY'

            request['x-api-version'] = '2025-09'


            response = http.request(request)

            data = JSON.parse(response.body)

            puts data
components:
  parameters:
    xApiVersion:
      name: x-api-version
      in: header
      required: true
      description: The version of the API to use. The current API version is **2025-09**.
      schema:
        type: string
        default: 2025-09

````