---
title: "Batch create or update public embed links"
method: GET
path: "/batchupsertassetlinkswithcustomroute_41FD_v2"
---

# Batch create or update public embed links

`GET /batchupsertassetlinkswithcustomroute_41FD_v2`

Create or update up to 10,000 custom public embed links at once

## Request body

- object
  - `records` object[] — Include one object for each custom embed link URL you want to create. The maximum number you can create simultaneously is 10,000.
    - `title` string — The name of the link in the “Embed links” extension. If empty, the link will not appear in the extension.
    - `customRoute` string — <strong>To create a new link</strong>: Include the relative path of the URL you want to create. </br> <strong>To update a link’s path</strong>: Include the existing relative path. This path will be updated based on the parameters included in your request. </br> <strong>Notes</strong>: <ul> <li>If the URL contains a query string, the query string will be ignored.</li> <li>The link to each asset format must be unique.</li> </ul>
    - `assetID` string — The asset this link goes to. This can be the asset’s unique ID, unencrypted record ID, or encrypted record ID.
    - `format` string — The ID of the format you are creating the link to. For example, this could be a standard proxy such as TR1 or TR4. Alternatively, it could be a custom format your organization uses, such as “Instagram.”
    - `fileExtension` string — The filename extension.
    - `transformations` string[] — The transformations applied to the format, using transformation URL syntax with a comma separator between each transformation.
    - `stickToCurrentVersion` boolean — <strong>True</strong>: This link always goes to the current version of the asset. </br><strong>False</strong>: This link always goes to the latest version of the asset.
    - `trackingParameters` object — Optional UTM tracking parameters that provide metrics about the link, but do not change its behavior.
      - `name` string — The UTM name, such as utm_source or utm_campaign.
      - `value` string — The UTM value, such as Instagram.
    - `expirationDate` string, date — The <a href="https://developer.orangelogic.com/reference/date-and-time" target="_blank">date and time</a>. If no date is specified, the link is permanent.
    - string
  - `executionOptions` object — The manner in which the links are created.
    - `executeAsynchronously` boolean — <strong>True</strong>: This job is queued and the response returns the jobRecordID. Use the jobRecordID with the Custom Route Job Status API to check the job status or obtain the custom routes. </br> <strong>False</strong>: This job is executed immediately and the custom URLs are included in the response. </br> When you’re updating many links simultaneously, we recommend asynchronous execution.

## Response `200`

200

- object
  - `isRunning` boolean
  - `jobRecordID` unknown
  - `results` object[]
    - `assetID` string
    - `format` string
    - `expirationDate` string
    - `link` string
  - `errors` object[]

---

[API](https://skmtc.net/orangelogic/apis/security.md) · [All operations](https://skmtc.net/orangelogic/apis/security/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/orangelogic/security/revisions/c8e945426c5e/schema)
