{
  "openapi": "3.1.0",
  "info": {
    "title": "Getting Started",
    "description": "<h2>Cincopa REST API V2 to get/set and manipulate assets and galleries</h2><p>Cincopa REST API V2 is a simple set of REST based methods that allow you to access almost every aspect of your galleries and assets. Authentication is done with a simple api_token that can be created and deleted per app, set the permission level according to the needed level and exposure level.</p><p><b>V2 API was designed to be used:</b></p><ul><li>in server-to-server scenario where the api_token and information is not exposed to the public, in such scenario the permissions level can allow write and delete.</li><li>in client-to-server scenario like javascript request from a public web page, in this scenario permission level will be set to read only which ensures the safety of your web app. This unique architecture eliminates the need of creating a \"proxy\" service that usually needed when working with a 3rd party API thus saving you time in integration.</li></ul>",
    "version": "1.0.0",
    "contact": {
      "name": "Cincopa API Support",
      "email": "support@cincopa.com"
    },
    "license": {
      "name": "MIT",
      "url": "https://opensource.org/licenses/MIT"
    }
  },
  "servers": [
    {
      "url": "https://api.cincopa.com/v2/",
      "description": "Cincopa API"
    }
  ],
  "tags": [
    {
      "name": "General",
      "description": "This section offers foundational API endpoints essential for establishing and validating connections with the Cincopa platform. These endpoints are designed to ensure smooth integration and secure interactions between your application and Cincopa's services. \n\n |Key Functionalities| Endpoint| Purpose |\n|---|---|---|\n |Validate API Connection|<code>/ping.json</code>| This endpoint allows you to confirm the validity and responsiveness of your API connection. By sending a request to /ping.json with your <code>api_token</code>, you can verify that your application is properly authenticated and can communicate effectively with Cincopa's servers.|\n|Obtain a Temporary Token|<code>/token.get_temp.json</code>|In scenarios where frontend applications require direct interaction with Cincopa's API, this endpoint provides a secure method to generate temporary tokens. These tokens facilitate client-to-server communications, enabling operations like updating galleries or assets directly from client-side code without exposing permanent credentials.|\n"
    },
    {
      "name": "Gallery",
      "description": "This section provides a comprehensive suite of methods for managing your media galleries. The Gallery API empowers developers to programmatically create, manage, and customize multimedia galleries for seamless integration into applications, websites, or digital platforms. \n\n  Whether you're building a media-rich portal, a dynamic content hub, or a branded video experience, this API provides granular control over gallery configurations, media assets, permissions, and display logic. \n\n |Key Functionalities| Endpoint| Purpose |\n|---|---|---|\n |Creating Galleries|<code>/gallery.create.json</code>| Establish new media galleries to organize your content effectively.|\n| Setting Gallery Metadata|<code>/gallery.set_meta.json </code>| Update gallery information such as title, description, and custom properties to keep your content organized and accessible.|\n| Deleting Galleries| <code>/gallery.delete.json</code>| Remove galleries that are no longer needed, ensuring your media library stays current.|\n| Adding Items to Galleries| <code>/gallery.add_item.json</code>| Incorporate new media assets into existing galleries to enhance your content offerings.| \n| Removing Items from Galleries| <code>/gallery.remove_item.json</code>| Manage your galleries by removing outdated or unwanted media assets.|\n| Listing Galleries| <code>/gallery.list.json</code>| Retrieve a list of all galleries in your account for easy management and overview.| \n| Retrieving Gallery Items| <code>/gallery.get_items.json</code>| Access detailed information about the media assets contained within a specific gallery.|\n| Setting Master Media| <code>/gallery.set_master.json</code>| Designate a primary media asset within a gallery to highlight featured content.| \n"
    },
    {
      "name": "Assets",
      "description": "This section provides a comprehensive suite of methods for managing assets within your account. The Assets API enables developers to efficiently upload, organize, modify, and retrieve digital assets, ensuring seamless integration into applications, websites, or media platforms. \n\n  Whether you're handling large media libraries, automating asset management, or implementing structured metadata, this API offers precise control over asset creation, metadata customization, categorization, and retrieval, enhancing workflow efficiency and content organization. \n\n |Key Functionalities| Endpoint| Purpose |\n|---|---|---|\n |List Assets|<code>/asset.list.json</code>| Get a list of assets in the account; those assets can be added to any gallery. Use search to locate specific assets or use reference_id to locate by reference_id of the asset.|\n| List Tags|<code>/asset.get_tags.json </code>| Fetches all tags associated with assets for categorization and filtering. Returns a structured list for efficient metadata management.|\n| Set meta data of an asset| <code>/asset.set_meta.json</code>| Updates or adds metadata (title, description, custom fields) for a specific asset. Requires the asset ID and enhances searchability and organization.|\n| Resync an asset| <code>/asset.resync.json</code>| Resync an asset will start a process of checking for missing versions and generating them. This method is only needed in cases of a failure to sync a gallery.| \n| Delete an asset| <code>/asset.delete.json</code>| Delete an asset for good, it will be removed also from any gallery that exists.|\n| Get upload URL to POST an asset.| <code>/asset.get_upload_url.json</code>| Get upload URL to your assets library, use this URL with an HTTP POST method. Asset can be added directly to a gallery or be attached to another asset to set the video poster, for example. When attaching to another asset, it must provide a type name.| \n| Start uploading an asset from an input URL.| <code>/asset.upload_from_url.json</code>| Upload an asset from an input URL. Asset can be added directly to a gallery or be attached to another asset to set the video poster, for example. When attaching to another asset, must provide a type name. This method will return a status ID that can be used by asset.upload_from_url_get_status to get information about the upload process and the ID of the uploaded asset when done. |\n| Get status during and after the uploading process. | <code>/asset.upload_from_url_get_status.json</code>| Use this method to get the Id of the uploaded asset when done.| \n| Abort uploading process.| <code>/asset.upload_from_url_abort.json</code>| Use this method to abort an upload.| \n"
    },
    {
      "name": "Upload",
      "description": "This section provides you with a detailed overview of Cincopa's Upload API, which allows users to upload media files to their Cincopa galleries efficiently. The API offers two primary methods for uploading content: an embeddable iFrame for direct user uploads and a secure token-based system for controlled access. These options ensure flexibility, security, and ease of use, making it simple to integrate media uploads into your applications or websites. \n\n  With the embeddable iFrame, users can upload media directly through an interactive interface that supports drag-and-drop functionality, media selection, and content management features like metadata editing and file reordering. On the other hand, the token-based system ensures that only authorized users can upload media by generating a secure upload token. \n\n |Key Functionalities| Endpoint| Purpose |\n|---|---|---|\n |HTML iframe to manage gallery|<code>/upload.iframe</code>| Provides an embeddable iFrame URL for users to upload media directly to a Cincopa gallery. The interface supports drag-and-drop uploads, media selection, metadata editing, reordering, and deletion. It is fully responsive across devices.|\n| Invite upload token|<code>/upload.get_upload_token.json</code>| Generates a unique token that restricts access to the invite upload page, ensuring that only authorized users can upload media to a specified gallery. \n"
    },
    {
      "name": "Portal",
      "description": "This section provides a comprehensive suite of methods for managing and customizing portals. The Portal API allows developers to programmatically create, manage, and configure landing pages, video hubs, and share pages for seamless integration into applications, websites, or digital platforms. \n\n  Whether you're building a dynamic content hub, a multimedia-rich portal, or a branded video experience, this API offers full control over portal settings, status management, and retrieval of existing portals. The following table provides a breakdown of the available API endpoints and their functions:\n\n |Key Functionalities| Endpoint| Purpose |\n|---|---|---|\n |Verify subdomain|<code>/portal.check.json</code>| Checks if a portal exists and retrieves its status. This is useful for validating whether a portal is active before performing further operations.|\n| Create subdomain if available |<code>/portal.cease.json </code>| Deactivates or ceases an existing portal. This operation is useful when a portal is no longer needed but should not be permanently deleted.|\n| Rename subdomain| <code>/portal.rename.json</code>| Renames a specified portal by providing the existing portal ID and the new desired name. This helps in organizing portals efficiently.|\n| Remove subdomain| <code>/portal.remove.json</code>| Deletes a portal from the system. This operation is irreversible and permanently removes all associated data.| \n| Save subdomain| <code>/portal.set.json</code>| Creates a new portal or updates the settings of an existing one. This allows customization of portal properties such as name, visibility, and other configurations.|\n| List of portals| <code>/portal.list.json</code>| Retrieves a list of all configured portals along with their details. This endpoint helps in managing multiple portals and tracking their statuses. \n"
    },
    {
      "name": "Webhook",
      "description": "This section provides a streamlined way to receive real-time notifications about account activities via **HTTP POST callbacks**. Instead of continuously polling for updates, webhooks allow external applications to listen for specific events and respond accordingly. \n\n  This API enables developers to automate workflows, synchronize data, and receive alerts whenever significant actions occur in the system. Additionally, the API supports Slack integration, allowing event notifications to be delivered directly to a Slack channel for easy monitoring and collaboration.\n\n |Key Functionalities| Endpoint| Purpose |\n|---|---|---|\n |List of webhooks|<code>/webhook.list.json</code>| Retrieves a list of all active webhooks associated with the account, including their configurations and callback URLs.|\n| Create/update webhook |<code>/webhook.set.json</code>| Registers a new webhook by specifying a callback URL and event types to trigger notifications.|\n| Create/update webhook to slack| <code>/webhook.set_slack.json</code>| Sets up a webhook that sends real-time event notifications directly to a Slack channel for instant updates.|\n| Delete a webhook| <code>/webhhook.delete.json</code>| Deletes an existing webhook, stopping further event notifications and removing it from the system.| \n"
    },
    {
      "name": "Live",
      "description": "Professional Live Video Streaming Service."
    }
  ],
  "paths": {
    "/ping.json": {
      "get": {
        "summary": "Validate API connection",
        "description": "Verify the validity of your API credentials and confirm connectivity to the Cincopa platform. This endpoint checks if the provided <code>api_token</code> is valid and returns account/user metadata.<P><P>**Endpoint:** <code>GET /ping.json</code></P>**URL:** <code>https://api.cincopa.com/v2/ping.json</code>",
        "operationId": "ping",
        "tags": [
          "General"
        ],
        "parameters": [
          {
            "name": "api_token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "A unique key used for authentication. Must be a valid API key provided by the system. Without the valid [api_token](https://www.cincopa.com/help/how-to-get-an-api-key/), the request will be rejected with a 403 Unauthorized error.",
            "example": "abc12345"
          }
        ],
        "responses": {
          "200": {
            "description": "Returns account and user details if the api_token is valid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ping"
                }
              }
            }
          },
          "403": {
            "description": "When a request is unauthorized due to an invalid/missing/expired API token, the server returns a JSON response detailing the issue. Below is a breakdown of the response parameters. {% admonition type=\"info\" %} If you receive a 403 Unauthorized error, double-check your API token. {% /admonition %}",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemAuthorize"
                }
              }
            }
          },
          "500": {
            "description": "This error indicates an unexpected failure on the server while processing your request. Unlike client-side errors (e.g., 403), this is unrelated to your input or token and requires server-side intervention. {% admonition type=\"info\" %} If you get a 500 Internal Server Error, retry after a short delay or [contact support](https://features.cincopa.com/contact-us).{% /admonition %} {% admonition type=\"danger\" name=\"Careful\" %}Server errors (500) may be temporary. If the issue persists, review your request structure or check for API updates.{% /admonition %}",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemInternalError"
                }
              }
            }
          }
        }
      }
    },
    "/token.get_temp.json": {
      "get": {
        "summary": "Get a temporary token",
        "description": "Use this method to get a temporary token that you can comfortably share in a front-end scenario. For example, if you've built a UI to update a gallery or asset and need to send an update request to Cincopa via JavaScript, the temporary token provides controlled access with usage limits. <P>{% admonition type=\"info\" %} You must first configure specific permissions (e.g., gallery.update or asset.update) for the temporary token to define its access and capabilities.{% /admonition %} </P><P>**Endpoint:** <code>GET /token.get_temp.json</code><P>**URL:** <code>https://api.cincopa.com/v2/token.get_temp.json</code></P>",
        "operationId": "getTemp",
        "tags": [
          "General"
        ],
        "parameters": [
          {
            "name": "api_token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "A unique key used for authentication. Must be a valid API key provided by the system. Without the valid [api_token](https://www.cincopa.com/help/how-to-get-an-api-key/), the request will be rejected with a 403 Unauthorized error.",
            "example": "abc12345"
          },
          {
            "name": "ttl",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Time to live in seconds, after this time the token will expire. Leave empty for never expire.",
            "example": "3600"
          },
          {
            "name": "permissions",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Limit this token to a specific set of permissions. Empty value means no permissions at all",
            "example": "asset.read|gallery.*"
          },
          {
            "name": "rid",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Limit this token to be able to update only a specific asset (rid). Empty value means that token can update any asset.",
            "example": "123456"
          },
          {
            "name": "fid",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Limit this token to be able to update only a specific gallery (fid). Empty value means that token can update any gallery.",
            "example": "987654"
          },
          {
            "name": "sourceip",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Limit this token to a specific client IP address. Any attempt to use this token from a different IP address will reject the call. Leave empty to not limit the token to a specific IP address.",
            "example": "192.168.1.1"
          }
        ],
        "responses": {
          "200": {
            "description": "Returns a temporary authentication token if the provided <code>api_token</code> is valid. This token can be used for making authorized API requests within a limited scope.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/tokenTemp"
                }
              }
            }
          },
          "403": {
            "description": "When a request is unauthorized due to an invalid/missing/expired API token, the server returns a JSON response detailing the issue. Below is a breakdown of the response parameters.{% admonition type=\"info\" %} If you receive a 403 Unauthorized error, double-check your API token. {% /admonition %}",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemAuthorize"
                }
              }
            }
          },
          "500": {
            "description": "This error indicates an unexpected failure on the server while processing your request. Unlike client-side errors (e.g., 403), this is unrelated to your input or token and requires server-side intervention. {% admonition type=\"info\" %} If you get a 500 Internal Server Error, retry after a short delay or [contact support](https://features.cincopa.com/contact-us).{% /admonition %} {% admonition type=\"danger\" name=\"Careful\" %}Server errors (500) may be temporary. If the issue persists, review your request structure or check for API updates.{% /admonition %}",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemInternalError"
                }
              }
            }
          }
        }
      }
    },
    "/gallery.create.json": {
      "post": {
        "summary": "Create a gallery",
        "operationId": "createGallery",
        "description": "Create a new multimedia gallery with customizable settings, styles, and content. This endpoint allows you to define gallery metadata, apply templates, clone existing galleries, or link to master galleries. Returns a unique <code>fid</code> (gallery ID) and an <code>upload_url</code> for adding media assets. <p><p>**Endponit:** <code>POST/gallery.create.json</code></p></p><p>**URL:** <code>https://api.cincopa.com/v2/gallery.create.json</code></p>",
        "tags": [
          "Gallery"
        ],
        "parameters": [
          {
            "name": "api_token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "A unique key used for authentication. Must be a valid API key provided by the system. Without the valid [api_token](https://www.cincopa.com/help/how-to-get-an-api-key/), the request will be rejected with a 403 Unauthorized error.",
              "example": "AAAAtAURG"
            }
          },
          {
            "name": "name",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "The desired name for the new gallery. Should be a non-empty string. Max 255 characters.",
              "example": "Photo Gallery"
            }
          },
          {
            "name": "description",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "Description of the gallery's purpose or content. This is optional.",
              "example": "Contain travel photo"
            }
          },
          {
            "name": "template",
            "in": "query",
            "schema": {
              "type": "string",
              "default": "A4IA-RbWMFlu",
              "description": "ID of a predefined template to apply the gallery's visual style. {% admonition type=\"danger\" name=\"Careful\" %}The <code>template</code> parameter should match one of Cincopa's available gallery templates. If omitted, a default template will be used.{% /admonition %} </P>",
              "example": "A4IA-RbWMFlu"
            }
          },
          {
            "name": "copy_args",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "ID of another gallery to copy all settings from. This parameter supersedes the template parameter. {% admonition type=\"info\" name=\"Template vs. Cloning:\" %} <p> ✅ Use <code>template</code> for predefined styles.</p> <p>✅ Use <code>copy_args</code> to replicate complex configurations (e.g., permissions, metadata).</p>{% /admonition %}</p>",
              "example": "A6IA-RbWMvnr"
            }
          },
          {
            "name": "master",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "ID of a master gallery to link this gallery to (for centralized control){% admonition type=\"info\" %}Use <code>master</code> to synchronize settings across multiple galleries.{% /admonition %} </p>",
              "example": "A4oA-RbdhMFlu"
            }
          },
          {
            "name": "copy_items",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "ID of another gallery to copy all media items from. {% admonition type=\"info\" %}<code>copy_items</code> clones media but retains independent gallery configurations.{% /admonition %}</p>",
              "example": "v4oA-RdqhMFlu"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "When a gallery is successfully created, the API returns a JSON response containing key details about the newly generated gallery. Below are the response parameters with corresponding descriptions and examples.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/galleryCreate"
                }
              }
            }
          },
          "403": {
            "description": "When a request is unauthorized due to an invalid/missing/expired API token, the server returns a JSON response detailing the issue. Below is a breakdown of the response parameters. {% admonition type=\"info\" %} If you receive a 403 Unauthorized error, double-check your API token. {% /admonition %}",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemAuthorize"
                }
              }
            }
          },
          "500": {
            "description": "This error indicates an unexpected failure on the server while processing your request. Unlike client-side errors (e.g., 403), this is unrelated to your input or token and requires server-side intervention. {% admonition type=\"info\" %} If you get a 500 Internal Server Error, retry after a short delay or [contact support](https://features.cincopa.com/contact-us).{% /admonition %} {% admonition type=\"danger\" name=\"Careful\" %}Server errors (500) may be temporary. If the issue persists, review your request structure or check for API updates.{% /admonition %}",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemInternalError"
                }
              }
            }
          }
        }
      }
    },
    "/gallery.set_meta.json": {
      "post": {
        "summary": "Set gallery metadata",
        "operationId": "gallerySetMeta",
        "description": "This endpoint allows you to update a gallery's metadata, including its title, description, tags, privacy settings, and custom properties. Keeping metadata up to date ensures accurate information, improves searchability, and enhances control over access permissions. <p><p> **Endpoint:** <code>POST /gallery.set_meta.json</code></p><p>**URL:** <code>https://api.cincopa.com/v2/gallery.set_meta.json</code></P>",
        "tags": [
          "Gallery"
        ],
        "parameters": [
          {
            "name": "api_token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "A unique key used for authentication. Must be a valid API key provided by the system. Without the valid [api_token](https://www.cincopa.com/help/how-to-get-an-api-key/), the request will be rejected with a 403 Unauthorized error.",
            "example": "AAAAAAURG"
          },
          {
            "name": "fid",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The unique identifier of the gallery to be updated. It must match an existing gallery ID.{% admonition type=\"danger\" name=\"Careful\" %}If an invalid <code>fid</code> is provided, the API will not update any gallery metadata and may return an error.{% /admonition %}",
              "example": "21T20"
            }
          },
          {
            "name": "name",
            "in": "query",
            "schema": {
              "type": "string",
              "default": "no name"
            },
            "description": "The new name for the gallery, with a maximum limit of 255 characters.",
            "example": "Photo Gallery"
          },
          {
            "name": "description",
            "in": "query",
            "schema": {
              "type": "string",
              "default": "no name"
            },
            "description": "Detailed overview of the gallery's content and purpose (max 1,000 characters).",
            "example": "Contain travel photo"
          },
          {
            "name": "tags",
            "in": "query",
            "schema": {
              "type": "string",
              "default": "no name",
              "description": "A comma-separated list of up to 50 keywords (each ≤ 50 characters) for categorization and search.",
              "example": "travel, adventure, nature, mountains, beaches'"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Indicates that the gallery metadata was successfully updated. The request was processed without any errors.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/successResponse"
                }
              }
            }
          },
          "403": {
            "description": "When a request is unauthorized due to an invalid/missing/expired API token, the server returns a JSON response detailing the issue. Below is a breakdown of the response parameters. {% admonition type=\"info\" %}If you receive a 403 Unauthorized error, double-check your API token. {% /admonition %}",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemAuthorize"
                }
              }
            }
          },
          "500": {
            "description": "This error indicates an unexpected failure on the server while processing your request. Unlike client-side errors (e.g., 403), this is unrelated to your input or token and requires server-side intervention. {% admonition type=\"info\" %} If you get a 500 Internal Server Error, retry after a short delay or [contact support](https://features.cincopa.com/contact-us).{% /admonition %} {% admonition type=\"danger\" name=\"Careful\" %}Server errors (500) may be temporary. If the issue persists, review your request structure or check for API updates.{% /admonition %}",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemInternalError"
                }
              }
            }
          }
        }
      }
    },
    "/gallery.delete.json": {
      "post": {
        "summary": "Delete a gallery",
        "operationId": "galleryDelete",
        "description": "This API endpoint irreversibly deletes a gallery, including embedded media files, player settings, and analytics data. Once executed, the gallery cannot be recovered. Use this method cautiously, ensuring the galleryid is correct and necessary backups exist. <p><P> The request requires authentication via an API key with **write permissions** and supports both synchronous (immediate response) and asynchronous (callback URL) workflows. {% admonition type=\"danger\" name=\"Careful\" %} Cincopa does not retain backups of deleted galleries. Ensure you've exported or backed up critical data before using this endpoint.{% /admonition %} <p><p>**Endpoint:** <code>POST/gallery.delete.json</code> </p> **URL:** <code>https://api.cincopa.com/v2/gallery.delete.json</code>",
        "tags": [
          "Gallery"
        ],
        "parameters": [
          {
            "name": "api_token",
            "in": "query",
            "required": true,
            "example": "AAAAtAURG",
            "schema": {
              "type": "string",
              "description": "A unique key used for authentication. Must be a valid API key provided by the system. Without the valid [api_token](https://www.cincopa.com/help/how-to-get-an-api-key/), the request will be rejected with a 403 Unauthorized error."
            }
          },
          {
            "name": "fid",
            "in": "query",
            "required": true,
            "example": "AAAAtAURG",
            "schema": {
              "type": "string",
              "description": "Unique identifier for the gallery to be deleted. Must be a valid gallery ID, ensuring the correct resource is targeted.{% admonition type=\"danger\" name=\"Careful\" %}Deleting a gallery via this API is irreversible. All associated media, settings, and metadata will be permanently removed. Double-check the <code>gallery_id</code> before proceeding.{% /admonition %}{% admonition type=\"info\" %}Use the <code>[GET /gallery/list](https://developer.cincopa.com/apis/gallery/gallerylist)</code> endpoint to confirm the <code>gallery_id</code> matches the intended gallery.{% /admonition %}</p>"
            }
          },
          {
            "name": "delete_assets",
            "in": "query",
            "example": "no",
            "schema": {
              "type": "boolean",
              "default": "no",
              "description": "Determines whether all assets in the gallery should be deleted. Accepts yes or no. Defaults to **\"no\"** if not provided."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "When a gallery is successfully deleted, the API returns a JSON response confirming the action. Below are the response parameters with corresponding descriptions and examples.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/successResponse"
                }
              }
            }
          },
          "403": {
            "description": "When a request is unauthorized due to an invalid/missing/expired API token, the server returns a JSON response detailing the issue. Below is a breakdown of the response parameters. {% admonition type=\"info\" %} If you receive a 403 Unauthorized error, double-check your API token. {% /admonition %}",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemAuthorize"
                }
              }
            }
          },
          "500": {
            "description": "This error indicates an unexpected failure on the server while processing your request. Unlike client-side errors (e.g., 403), this is unrelated to your input or token and requires server-side intervention. {% admonition type=\"info\" %} If you get a 500 Internal Server Error, retry after a short delay or [contact support](https://features.cincopa.com/contact-us).{% /admonition %} {% admonition type=\"danger\" name=\"Careful\" %}Server errors (500) may be temporary. If the issue persists, review your request structure or check for API updates.{% /admonition %}",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemInternalError"
                }
              }
            }
          }
        }
      }
    },
    "/gallery.add_item.json": {
      "post": {
        "summary": "Add gallery assets",
        "operationId": "galleryAddItem",
        "description": "This endpoint allows developers to add media files, such as images, videos, and audio, to an existing Cincopa gallery. This enables seamless media management, automates content updates, and integrates Cincopa with third-party applications. <p><p>The request requires authentication via an API key with write permissions and supports various media formats. Once executed, the media file is added to the specified gallery, making it immediately available for use.</p></p> <p> **Endpoint:** <code> POST /gallery.add_item.json </code> </p> <p> **URL:** <code> https://api.cincopa.com/v2/gallery.add_item.json </code> </p>",
        "tags": [
          "Gallery"
        ],
        "parameters": [
          {
            "name": "api_token",
            "in": "query",
            "required": true,
            "example": "AAAAtAURG",
            "schema": {
              "type": "string",
              "description": "A unique key used for authentication. Must be a valid API key provided by the system. Without the valid [api_token](https://www.cincopa.com/help/how-to-get-an-api-key/), the request will be rejected with a 403 Unauthorized error."
            }
          },
          {
            "name": "fid",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The unique identifier of the gallery to be updated. It must match an existing gallery ID. {% admonition type=\"danger\" name=\"Careful\" %}If an invalid <code>fid</code> is provided, the API will not update any gallery metadata and may return an error.{% /admonition %} <p></p>",
              "example": "21T20"
            }
          },
          {
            "name": "rid",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "A unique identifier for the asset being added. If adding multiple assets at once, provide a comma-separated list of asset IDs. {% admonition type=\"danger\" name=\"Careful\" %}Ensure that all asset IDs (<code>rid</code>) are **valid and exist in the system**. If an invalid ID is provided, the request may fail partially or entirely.{% /admonition %}{% admonition type=\"info\" %}Assets must be pre-uploaded to Cincopa (via /upload endpoints) before linking them to a gallery with <code>rid</code>.{% /admonition %} <p></p>",
            "example": "AAAAtAURG, meyAtAURG"
          },
          {
            "name": "insert_position",
            "in": "query",
            "schema": {
              "type": "string",
              "default": "bottom"
            },
            "description": "Specifies whether the asset should be added at the top or bottom of the gallery.",
            "example": "top"
          }
        ],
        "responses": {
          "200": {
            "description": "When an asset is successfully added to a gallery, the API returns a JSON response confirming the action. Below are the response parameters with corresponding descriptions and examples.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/successResponse"
                }
              }
            }
          },
          "403": {
            "description": "When a request is unauthorized due to an invalid/missing/expired API token, the server returns a JSON response detailing the issue. Below is a breakdown of the response parameters {% admonition type=\"info\" %} If you receive a 403 Unauthorized error, double-check your API token.{% /admonition %}",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemAuthorize"
                }
              }
            }
          },
          "500": {
            "description": "This error indicates an unexpected failure on the server while processing your request. Unlike client-side errors (e.g., 403), this is unrelated to your input or token and requires server-side intervention. {% admonition type=\"info\" %} If you get a 500 Internal Server Error, retry after a short delay or [contact support](https://features.cincopa.com/contact-us).{% /admonition %} {% admonition type=\"danger\" name=\"Careful\" %}Server errors (500) may be temporary. If the issue persists, review your request structure or check for API updates.{% /admonition %}",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemInternalError"
                }
              }
            }
          }
        }
      }
    },
    "/gallery.remove_item.json": {
      "post": {
        "summary": "Remove gallery assets",
        "operationId": "galleryRemoveItem",
        "description": "This API allows you to remove one or multiple assets from a gallery while giving you the choice to either keep them in other galleries or delete them permanently. If deleted, the assets will be removed from all galleries and the asset list. It helps in efficiently managing and organizing media files without unintended data loss. <p></p><p>**Endpoint:** <code>POST /gallery.remove_item.json</code></p> <p>**URL:** <code>https://api.cincopa.com/v2/gallery.remove_item.json</code></p>",
        "tags": [
          "Gallery"
        ],
        "parameters": [
          {
            "name": "api_token",
            "in": "query",
            "required": true,
            "example": "AAAAtAURG",
            "schema": {
              "type": "string",
              "description": "A unique key used for authentication. Must be a valid API key provided by the system. Without the valid [api_token](https://www.cincopa.com/help/how-to-get-an-api-key/), the request will be rejected with a 403 Unauthorized error."
            }
          },
          {
            "name": "fid",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The unique identifier (FID) of the gallery from which the assets will be removed. If this parameter is missing or invalid, the request will fail.",
              "example": "21T20"
            }
          },
          {
            "name": "rid",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "A comma-separated list of asset IDs (RIDs) to be removed from the gallery. Each RID represents a unique asset within the system. If invalid or missing, the API will not process the request.",
              "example": "rid=AAAAtAURG,meyAtAURG"
            }
          },
          {
            "name": "delete_assets",
            "in": "query",
            "example": "no",
            "schema": {
              "type": "boolean",
              "default": "no",
              "description": "Determines whether the assets should be permanently deleted from all galleries and the asset list. Possible values \"yes\" (permanently delete assets) or \"no\" (only remove from the gallery)."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "When assets are successfully removed from a gallery, the API returns a **200** status code, confirming the operation.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/successResponse"
                }
              }
            }
          },
          "403": {
            "description": "When a request is unauthorized due to an invalid/missing/expired API token, the server returns a JSON response detailing the issue. Below is a breakdown of the response parameters. {% admonition type=\"info\" %} If you receive a 403 Unauthorized error, double-check your API token. {% /admonition %}",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemAuthorize"
                }
              }
            }
          },
          "500": {
            "description": "This error indicates an unexpected failure on the server while processing your request. Unlike client-side errors (e.g., 403), this is unrelated to your input or token and requires server-side intervention. {% admonition type=\"info\" %} If you get a 500 Internal Server Error, retry after a short delay or [contact support](https://features.cincopa.com/contact-us).{% /admonition %} {% admonition type=\"danger\" name=\"Careful\" %}Server errors (500) may be temporary. If the issue persists, review your request structure or check for API updates.{% /admonition %}",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemInternalError"
                }
              }
            }
          }
        }
      }
    },
    "/gallery.list.json": {
      "get": {
        "summary": "List of galleries",
        "operationId": "galleryList",
        "description": "This API retrieves a list of galleries from a Cincopa account. You can search by captions, descriptions, IDs, and tags using keywords or filters. It supports pagination to control the number of results per page. <p></p> <p>**Endpoint:** <code>GET /gallery.list.json</code></p> <p>**URL:** <code>https://api.cincopa.com/v2/gallery.list.json</code></p>",
        "tags": [
          "Gallery"
        ],
        "parameters": [
          {
            "name": "api_token",
            "in": "query",
            "required": true,
            "example": "AAAAtAURG",
            "schema": {
              "type": "string",
              "description": "A unique key used for authentication. Must be a valid API key provided by the system. Without the valid [api_token](https://www.cincopa.com/help/how-to-get-an-api-key/), the request will be rejected with a 403 Unauthorized error."
            }
          },
          {
            "name": "search",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "Search for the term in all fields including caption, description, ID, tags etc. Use 'caption=whatever' or 'description=whatever' to do an exact term search.",
              "example": "A4KANh__rQ_m"
            }
          },
          {
            "name": "page",
            "in": "query",
            "example": 2,
            "schema": {
              "type": "integer",
              "default": 1,
              "description": "Specifies which page of results to fetch. The minimum is 1. If the requested page exceeds the total number of pages, no results will be returned."
            }
          },
          {
            "name": "items_per_page",
            "in": "query",
            "example": 45,
            "schema": {
              "type": "integer",
              "default": 50,
              "description": "Defines how many galleries are shown per page. The minimum is 1, and the maximum is 100. If a higher value is requested, it is capped at 100."
            }
          },
          {
            "name": "filter_tags",
            "in": "query",
            "example": "car,truck",
            "schema": {
              "type": "string",
              "description": "This allows you to filter galleries by specific tags using a comma-separated list. You can also exclude certain tags. {% admonition type=\"info\" %} Use <code>filter_tags=tag1,tag2</code> to show galleries that contain either <code>tag1</code> or <code>tag2</code>. Use <code>filter_tags=-tag1</code> to exclude galleries with <code>tag1</code> and display all others. Separate multiple tags with commas. Add a minus **(-)** before a tag to exclude it. {% /admonition %} <p></p>"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "When a list of galleries is successfully retrieved, the API returns a JSON response containing key details about the galleries and related information. Below are the response parameters with corresponding descriptions and examples.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/galleryList"
                }
              }
            }
          },
          "403": {
            "description": "When a request is unauthorized due to an invalid/missing/expired API token, the server returns a JSON response detailing the issue. Below is a breakdown of the response parameters. {% admonition type=\"info\" %} If you receive a 403 Unauthorized error, double-check your API token. {% /admonition %}",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemAuthorize"
                }
              }
            }
          },
          "500": {
            "description": "This error indicates an unexpected failure on the server while processing your request. Unlike client-side errors (e.g., 403), this is unrelated to your input or token and requires server-side intervention. {% admonition type=\"info\" %} If you get a 500 Internal Server Error, retry after a short delay or [contact support](https://features.cincopa.com/contact-us).{% /admonition %} {% admonition type=\"danger\" name=\"Careful\" %}Server errors (500) may be temporary. If the issue persists, review your request structure or check for API updates.{% /admonition %}",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemInternalError"
                }
              }
            }
          }
        }
      }
    },
    "/gallery.get_items.json": {
      "get": {
        "summary": "List all gallery items",
        "operationId": "galleryItems",
        "description": "This API retrieves all items from a specified gallery, including metadata and media URLs. It enables efficient access to gallery content while allowing customization of the metadata returned. Pagination is supported to manage large datasets effectively. <p></p><p>**Endpoint:** <code>GET /gallery.get_items.json</code></p> <p>**URL:** <code>https://api.cincopa.com/v2/gallery.get_items.json</code></p>",
        "tags": [
          "Gallery"
        ],
        "parameters": [
          {
            "name": "api_token",
            "in": "query",
            "required": true,
            "example": "AAAAtAURG",
            "schema": {
              "type": "string",
              "description": "A unique key used for authentication. Must be a valid API key provided by the system. Without the valid [api_token](https://www.cincopa.com/help/how-to-get-an-api-key/), the request will be rejected with a 403 Unauthorized error."
            }
          },
          {
            "name": "fid",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The unique identifier (FID) of the gallery from which gallery's items should be retrieved. {% admonition type=\"danger\" name=\"Careful\" %} If this parameter is missing or invalid, the request will fail. If an invalid fid is provided, the API will not retrieve any gallery items and may return an error. {% /admonition %} <p></p>",
              "example": "21T20"
            }
          },
          {
            "name": "details",
            "in": "query",
            "schema": {
              "type": "string",
              "default": "caption, description, music_tags, exif_tags, long_description, related_link_text, related_link_url, reference_id, tags, metauser_timeline, appears_in_albums, storyboard, attached, attached_versions",
              "description": "Defines the metadata fields to include in the response, such as captions, descriptions, tags, and reference IDs. If not specified, default fields like caption, description, and music tags are included.",
              "example": "caption,description"
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "number",
              "default": 1,
              "description": "Determines which page of results to retrieve, ensuring efficient pagination."
            }
          },
          {
            "name": "items_per_page",
            "in": "query",
            "example": 45,
            "schema": {
              "type": "number",
              "default": 50,
              "description": "Defines how many items are returned in each request."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "When the request to retrieve gallery items is successful, the API responds with a JSON object containing detailed information about the items within the gallery. This response includes essential metadata, such as item identifiers, pagination details, and relevant attributes.  Below are the response parameters with their descriptions and examples",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/galleryItems"
                }
              }
            }
          },
          "403": {
            "description": "When a request is unauthorized due to an invalid/missing/expired API token, the server returns a JSON response detailing the issue. Below is a breakdown of the response parameters. {% admonition type=\"info\" %} If you receive a 403 Unauthorized error, double-check your API token. {% /admonition %}",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemAuthorize"
                }
              }
            }
          },
          "500": {
            "description": "This error indicates an unexpected failure on the server while processing your request. Unlike client-side errors (e.g., 403), this is unrelated to your input or token and requires server-side intervention. {% admonition type=\"info\" %} If you get a 500 Internal Server Error, retry after a short delay or [contact support](https://features.cincopa.com/contact-us).{% /admonition %} {% admonition type=\"danger\" name=\"Careful\" %}Server errors (500) may be temporary. If the issue persists, review your request structure or check for API updates.{% /admonition %}",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemInternalError"
                }
              }
            }
          }
        }
      }
    },
    "/gallery.set_master.json": {
      "post": {
        "summary": "Set master to gallery",
        "operationId": "gallerySetMAster",
        "description": "Use this method to apply a master template to a gallery so it looks and works the same way. Any changes made to the master template will automatically update all galleries using it. <p></p><p>**Endpoint:** <code>POST /gallery.set_master.json</code></p> <p>**URL:** <code>https://api.cincopa.com/v2/gallery.set_master.json</code></p>",
        "tags": [
          "Gallery"
        ],
        "parameters": [
          {
            "name": "api_token",
            "in": "query",
            "required": true,
            "example": "AAAAtAURG",
            "schema": {
              "type": "string",
              "description": "A unique key used for authentication. Must be a valid API key provided by the system. Without the valid [api_token](https://www.cincopa.com/help/how-to-get-an-api-key/), the request will be rejected with a 403 Unauthorized error."
            }
          },
          {
            "name": "fid",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The unique identifier (FID) of the gallery where the master template should be applied. If this value is missing or invalid, the request will not be processed. {% admonition type=\"danger\" name=\"Careful\" %} If this parameter is missing or invalid, the request will fail. If an invalid fid is provided, the API will not retrieve any gallery items and may return an error. {% /admonition %} <p></p>",
              "example": "21T20"
            }
          },
          {
            "name": "master",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The unique ID of the master gallery that will be used as a template for the target gallery. If the ID is invalid, the gallery settings will remain unchanged.",
              "example": "21T20"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "When a request is successfully processed, the API returns a JSON response containing key details about the outcome. Below are the response parameters with their descriptions and examples",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/successResponse"
                }
              }
            }
          },
          "403": {
            "description": "When a request is unauthorized due to an invalid/missing/expired API token, the server returns a JSON response detailing the issue. Below is a breakdown of the response parameters. {% admonition type=\"info\" %} If you receive a 403 Unauthorized error, double-check your API token. {% /admonition %}",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemAuthorize"
                }
              }
            }
          },
          "500": {
            "description": "This error indicates an unexpected failure on the server while processing your request. Unlike client-side errors (e.g., 403), this is unrelated to your input or token and requires server-side intervention. {% admonition type=\"info\" %} If you get a 500 Internal Server Error, retry after a short delay or [contact support](https://features.cincopa.com/contact-us).{% /admonition %} {% admonition type=\"danger\" name=\"Careful\" %}Server errors (500) may be temporary. If the issue persists, review your request structure or check for API updates.{% /admonition %}",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemInternalError"
                }
              }
            }
          }
        }
      }
    },
    "/gallery.download.json": {
      "get": {
        "summary": "Get a download link",
        "operationId": "galleryDownload",
        "description": "This API allows users to generate a downloadable link for a zip file containing all items in a gallery. By using this endpoint, users can easily retrieve and share a single download link to access all gallery contents. <p></p><p>**Endpoint:** <code>GET /gallery.download.json</code></p><p>**URL:** <code>https://api.cincopa.com/v2/gallery.download.json</code></p>",
        "tags": [
          "Gallery"
        ],
        "parameters": [
          {
            "name": "api_token",
            "in": "query",
            "required": true,
            "example": "AAAAtAURG",
            "schema": {
              "type": "string",
              "description": "A unique key used for authentication. Must be a valid API key provided by the system. Without the valid [api_token](https://www.cincopa.com/help/how-to-get-an-api-key/), the request will be rejected with a 403 Unauthorized error."
            }
          },
          {
            "name": "fid",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The unique identifier (FID) of the gallery from which the files should be downloaded. If this value is missing or invalid, the request will fail.",
              "example": "21T20"
            }
          },
          {
            "name": "type",
            "in": "query",
            "schema": {
              "type": "string",
              "default": "original",
              "description": "It can be either original or resized. Original refers to the full, unmodified files, while resized provides a web-optimized, smaller version of the files. If not specified, the original version is used by default.",
              "example": "original"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "When a request is successfully processed, the API returns a JSON response containing key details. Below are the response parameters and their descriptions.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/galleryDownload"
                }
              }
            }
          },
          "403": {
            "description": "When a request is unauthorized due to an **invalid/missing/expired** API token, the server returns a JSON response detailing the issue. Below is a breakdown of the response parameters. {% admonition type=\"info\" %} If you receive a 403 Unauthorized error, double-check your API token. {% /admonition %}",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemAuthorize"
                }
              }
            }
          },
          "500": {
            "description": "This error indicates an unexpected failure on the server while processing your request. Unlike client-side errors (e.g., 403), this is unrelated to your input or token and requires server-side intervention. {% admonition type=\"info\" %} If you get a 500 Internal Server Error, retry after a short delay or [contact support](https://features.cincopa.com/contact-us).{% /admonition %} {% admonition type=\"danger\" name=\"Careful\" %}Server errors (500) may be temporary. If the issue persists, review your request structure or check for API updates.{% /admonition %}",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemInternalError"
                }
              }
            }
          }
        }
      }
    },
    "/asset.list.json": {
      "get": {
        "summary": "List of assets",
        "operationId": "assetList",
        "description": "You can retrieve a list of all assets stored in your account, which can be added to any gallery as needed. To find specific assets, you can use a search query based on keywords. Alternatively, if you know the reference_id of an asset, you can use it to locate the asset directly. This makes it easier to access and manage assets efficiently. <p></p> <p>**Endpoint:** <code>GET /asset.list.json </code></p> <p>**URL:** <code> https://api.cincopa.com/v2/asset.list.json </code></p>",
        "tags": [
          "Assets"
        ],
        "parameters": [
          {
            "name": "api_token",
            "in": "query",
            "required": true,
            "example": "AAAAtAURG",
            "schema": {
              "type": "string",
              "description": "A unique key used for authentication. Must be a valid API key provided by the system. Without the valid [api_token](https://www.cincopa.com/help/how-to-get-an-api-key/), the request will be rejected with a 403 Unauthorized error."
            }
          },
          {
            "name": "search",
            "in": "query",
            "example": "image",
            "schema": {
              "type": "string"
            },
            "description": "Used to search for a specific asset by text. This helps in filtering assets based on their textual metadata, such as names or descriptions."
          },
          {
            "name": "type",
            "in": "query",
            "example": "video",
            "schema": {
              "type": "string",
              "default": "video,image,audio,other"
            },
            "description": "Determines the types of assets to return. Available values include video, image, audio, and other. If not specified, all types will be included by default. {% admonition type=\"danger\" name=\"Careful\" %}If <code>type</code> is not specified, the API returns all asset types by default. This may lead to large datasets and longer response times.{% /admonition %}<p></p>"
          },
          {
            "name": "rid",
            "in": "query",
            "example": "A4KANh__rQ_m",
            "schema": {
              "type": "string"
            },
            "description": "A unique identifier for an asset. It is used to locate a specific asset within the system by its Resource ID (RID). {% admonition type=\"danger\" name=\"Careful\" %}The <code>rid</code> must be an exact match to locate the asset. Partial matches will not work.{% /admonition %}<p></p>"
          },
          {
            "name": "reference_id",
            "in": "query",
            "example": "A4IA",
            "schema": {
              "type": "string"
            },
            "description": "Used to search for an asset by its reference_id. This can be useful when cross-referencing with external databases or other systems. {% admonition type=\"danger\" name=\"Careful\" %}If the <code>reference_id</code> does not exist, the API may return an empty response instead of an error{% /admonition %}<p></p>"
          },
          {
            "name": "tag",
            "in": "query",
            "example": "image",
            "schema": {
              "type": "string"
            },
            "description": "Allows searching for an asset based on its assigned tag. Special values include no-tag to find assets without any tags and any-tag to retrieve all assets regardless of their tag assignments."
          },
          {
            "name": "details",
            "in": "query",
            "example": "music_tags",
            "schema": {
              "type": "string",
              "default": "caption, description, music_tags,exif_tags, long_description, related_link_text, related_link_url, reference_id, tags, metauser_timeline, appears_in_albums, storyboard,attached, attached_versions"
            },
            "description": "Specifies extra metadata fields to return along with the asset. Available values include caption, description, music_tags, exif_tags, long_description, related_link_text, related_link_url, reference_id, and tags. Multiple values can be requested at once."
          },
          {
            "name": "page",
            "in": "query",
            "example": 2,
            "schema": {
              "type": "integer",
              "default": 1,
              "description": "Indicates the page number of the results to be retrieved. This is useful for paginating large datasets. {% admonition type=\"danger\" name=\"Careful\" %}If an invalid or **out-of-range** page number is provided, the API may return an empty response.{% /admonition %}<p></p>"
            }
          },
          {
            "name": "items_per_page",
            "in": "query",
            "example": 45,
            "schema": {
              "type": "integer",
              "default": 50,
              "description": "Defines the number of items to be returned per page. Adjusting this value helps control the amount of data fetched in each request."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "When the request to retrieve a list of assets is successful, the API returns a JSON response containing key details about the assets in your account. Below are the response parameters with their descriptions and examples.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/assetList"
                }
              }
            }
          },
          "403": {
            "description": "When a request is unauthorized due to an **invalid/missing/expired** API token, the server returns a JSON response detailing the issue. Below is a breakdown of the response parameters. {% admonition type=\"info\" %} If you receive a 403 Unauthorized error, double-check your API token. {% /admonition %}",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemAuthorize"
                }
              }
            }
          },
          "500": {
            "description": "This error indicates an unexpected failure on the server while processing your request. Unlike client-side errors (e.g., 403), this is unrelated to your input or token and requires server-side intervention. {% admonition type=\"info\" %} If you get a 500 Internal Server Error, retry after a short delay or [contact support](https://features.cincopa.com/contact-us).{% /admonition %} {% admonition type=\"danger\" name=\"Careful\" %}Server errors (500) may be temporary. If the issue persists, review your request structure or check for API updates.{% /admonition %}",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemInternalError"
                }
              }
            }
          }
        }
      }
    },
    "/asset.get_tags.json": {
      "get": {
        "summary": "List of tags",
        "operationId": "assetGetTags",
        "description": "This API retrieves the list of all tags associated with your account, helping categorize and organize assets efficiently. Tags allow you to group similar assets, making it easier to search, filter, and manage them within the system. Use this endpoint to fetch available tags for applying to new assets or filtering existing ones.<p></p> <p>**Endpoint:** <code>GET /asset.get_tags.json</code></p> <p>**URL:** <code>https://api.cincopa.com/v2/asset.get_tags.json </code></p>",
        "tags": [
          "Assets"
        ],
        "parameters": [
          {
            "name": "api_token",
            "in": "query",
            "required": true,
            "example": "AAAAtAURG",
            "schema": {
              "type": "string",
              "description": "A unique key used for authentication. Must be a valid API key provided by the system. Without the valid [api_token](https://www.cincopa.com/help/how-to-get-an-api-key/), the request will be rejected with a 403 Unauthorized error."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "When the request to retrieve a list of tags is successful, the API returns a JSON response containing key details about the tags associated with your account. Below are the response parameters with their descriptions and examples.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/assetTags"
                }
              }
            }
          },
          "403": {
            "description": "When a request is unauthorized due to an **invalid/missing/expired** API token, the server returns a JSON response detailing the issue. Below is a breakdown of the response parameters. {% admonition type=\"info\" %} If you receive a 403 Unauthorized error, double-check your API token. {% /admonition %}",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemAuthorize"
                }
              }
            }
          },
          "500": {
            "description": "This error indicates an unexpected failure on the server while processing your request. Unlike client-side errors (e.g., 403), this is unrelated to your input or token and requires server-side intervention. {% admonition type=\"info\" %} If you get a 500 Internal Server Error, retry after a short delay or [contact support](https://features.cincopa.com/contact-us).{% /admonition %} {% admonition type=\"danger\" name=\"Careful\" %}Server errors (500) may be temporary. If the issue persists, review your request structure or check for API updates.{% /admonition %}",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemInternalError"
                }
              }
            }
          }
        }
      }
    },
    "/asset.set_meta.json": {
      "post": {
        "summary": "Set asset metadata",
        "operationId": "assetSetMeta",
        "description": "This API helps modify metadata attributes for a specific asset within your account. It helps you manage and update asset-related information, such as titles, descriptions, or custom fields, ensuring that media assets are well-organized and easily searchable. <p></p> <p>**Endpoint:** <code>POST/asset.set_meta.json</code></p> <p>**URL:** <code>https://api.cincopa.com/v2/asset.set_meta.json</code></p>",
        "tags": [
          "Assets"
        ],
        "parameters": [
          {
            "name": "api_token",
            "in": "query",
            "required": true,
            "example": "AAAAtAURG",
            "schema": {
              "type": "string",
              "description": "A unique key used for authentication. Must be a valid API key provided by the system. Without the valid [api_token](https://www.cincopa.com/help/how-to-get-an-api-key/), the request will be rejected with a 403 Unauthorized error."
            }
          },
          {
            "name": "rid",
            "in": "query",
            "required": true,
            "example": "A4KANh__rQ_m",
            "schema": {
              "type": "string"
            },
            "description": "A unique identifier for the asset whose metadata needs to be updated. If an incorrect or non-existent RID is provided, the request will not be processed."
          },
          {
            "name": "caption",
            "in": "query",
            "example": "photo gallery",
            "schema": {
              "type": "string"
            },
            "description": "Defines a new title for the asset. If provided, it replaces the existing title associated with the asset."
          },
          {
            "name": "description",
            "in": "query",
            "example": "latest car images",
            "schema": {
              "type": "string"
            },
            "description": "The description is a short summary of the asset. If included in the request, it will override the previous description."
          },
          {
            "name": "long_description",
            "in": "query",
            "example": "All the latest release imported car images",
            "schema": {
              "type": "string"
            },
            "description": "A detailed description of the asset. If specified, this long description will replace the existing one."
          },
          {
            "name": "related_link_text",
            "in": "query",
            "example": "View Product Documentation",
            "schema": {
              "type": "string"
            },
            "description": "The clickable text that serves as a hyperlink to related content."
          },
          {
            "name": "related_link_url",
            "in": "query",
            "example": "https://docs.example.com/product-guide",
            "schema": {
              "type": "string"
            },
            "description": "The actual URL that the <code>related_link_text</code> points to."
          },
          {
            "name": "reference_id",
            "in": "query",
            "example": "21T20",
            "schema": {
              "type": "string"
            },
            "description": "A user-defined identifier assigned to an asset for custom tracking or integration purposes."
          },
          {
            "name": "tags",
            "in": "query",
            "example": "car, recentlaunch, imported car",
            "schema": {
              "type": "string"
            },
            "description": "A comma-separated list of keywords to categorize the asset. If present in the request, these tags will replace the existing ones."
          },
          {
            "name": "video_thumb_sec",
            "in": "query",
            "example": 15,
            "schema": {
              "type": "string"
            },
            "description": "Specifies the exact second in the video from which the thumbnail should be generated."
          },
          {
            "name": "thumb_attached_rid",
            "in": "query",
            "example": "rid:12345ABCDE",
            "schema": {
              "type": "string"
            },
            "description": "The reference ID of the image to be used as the asset’s thumbnail. When provided, it replaces the default or auto-generated thumbnail. {% admonition type=\"danger\" name=\"Careful\" %}If the provided rid does not point to a valid image asset, the request may fail or revert to a default thumbnail.{% /admonition %} <p></p>"
          }
        ],
        "responses": {
          "200": {
            "description": "When the request to set the Asset Metadata is successful, the API returns a JSON response confirming the update. Below are the response parameters with their descriptions and examples.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/successResponse"
                }
              }
            }
          },
          "403": {
            "description": "When a request is unauthorized due to an **invalid/missing/expired** API token, the server returns a JSON response detailing the issue. Below is a breakdown of the response parameters. {% admonition type=\"info\" %} If you receive a 403 Unauthorized error, double-check your API token. {% /admonition %}",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemAuthorize"
                }
              }
            }
          },
          "500": {
            "description": "This error indicates an unexpected failure on the server while processing your request. Unlike client-side errors (e.g., 403), this is unrelated to your input or token and requires server-side intervention. {% admonition type=\"info\" %} If you get a 500 Internal Server Error, retry after a short delay or [contact support](https://features.cincopa.com/contact-us).{% /admonition %} {% admonition type=\"danger\" name=\"Careful\" %}Server errors (500) may be temporary. If the issue persists, review your request structure or check for API updates.{% /admonition %}",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemInternalError"
                }
              }
            }
          }
        }
      }
    },
    "/asset.resync.json": {
      "post": {
        "summary": "Resync an asset",
        "operationId": "assetResync",
        "description": "This API initiates a process to check for missing versions of an asset and regenerate them if necessary. It is specifically used in scenarios where a gallery synchronization failure has occurred, ensuring that all asset versions remain updated and accessible. This method should only be used when an asset fails to sync properly and requires restoration. <p></p><p>**Endpoint:** <code>POST /asset.resync.json</code></p> <p>**URL:** <code>https://api.cincopa.com/v2/asset.resync.json</code></p>",
        "tags": [
          "Assets"
        ],
        "parameters": [
          {
            "name": "api_token",
            "in": "query",
            "required": true,
            "example": "AAAAtAURG",
            "schema": {
              "type": "string",
              "description": "A unique key used for authentication. Must be a valid API key provided by the system. Without the valid [api_token](https://www.cincopa.com/help/how-to-get-an-api-key/), the request will be rejected with a 403 Unauthorized error."
            }
          },
          {
            "name": "rid",
            "in": "query",
            "required": true,
            "example": "A4KANh__rQ_m",
            "schema": {
              "type": "string"
            },
            "description": "A unique identifier for an asset used to locate a specific item. If invalid or missing, the API cannot process the request."
          }
        ],
        "responses": {
          "200": {
            "description": "When the request to fetch tags is successful, the API responds with a JSON object containing key details about the tags linked to your account. Below are the response parameters along with their descriptions and examples.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/successResponse"
                }
              }
            }
          },
          "403": {
            "description": "When a request is unauthorized due to an **invalid/missing/expired** API token, the server returns a JSON response detailing the issue. Below is a breakdown of the response parameters. {% admonition type=\"info\" %} If you receive a 403 Unauthorized error, double-check your API token. {% /admonition %}",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemAuthorize"
                }
              }
            }
          },
          "500": {
            "description": "This error indicates an unexpected failure on the server while processing your request. Unlike client-side errors (e.g., 403), this is unrelated to your input or token and requires server-side intervention. {% admonition type=\"info\" %} If you get a 500 Internal Server Error, retry after a short delay or [contact support](https://features.cincopa.com/contact-us).{% /admonition %} {% admonition type=\"danger\" name=\"Careful\" %}Server errors (500) may be temporary. If the issue persists, review your request structure or check for API updates.{% /admonition %}",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemInternalError"
                }
              }
            }
          }
        }
      }
    },
    "/asset.delete.json": {
      "post": {
        "summary": "Delete an asset",
        "operationId": "assetDelete",
        "description": "This API allows you to permanently delete an asset from your account. Once deleted, the asset is completely removed from the system, including any galleries it was part of. Use this endpoint carefully, as deleted assets cannot be recovered. <p></p> <p>**Endpoint:** <code>POST/asset.delete.json</code></p> <p>**URL:** <code>https://api.cincopa.com/v2/asset.delete.json</code></p>",
        "tags": [
          "Assets"
        ],
        "parameters": [
          {
            "name": "api_token",
            "in": "query",
            "required": true,
            "example": "AAAAtAURG",
            "schema": {
              "type": "string",
              "description": "A unique key used for authentication. Must be a valid API key provided by the system. Without the valid [api_token](https://www.cincopa.com/help/how-to-get-an-api-key/), the request will be rejected with a 403 Unauthorized error."
            }
          },
          {
            "name": "rid",
            "in": "query",
            "required": true,
            "example": "A4KANh__rQ_m",
            "schema": {
              "type": "string"
            },
            "description": "A unique identifier for the asset that needs to be deleted. The RID ensures that only the specified asset is removed from the system. If an invalid RID is provided, the request will not be processed."
          }
        ],
        "responses": {
          "200": {
            "description": "When the request to delete an asset is successful, the API returns a JSON response confirming the deletion. Below are the response parameters with their descriptions and examples.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/successResponse"
                }
              }
            }
          },
          "403": {
            "description": "When a request is unauthorized due to an **invalid/missing/expired** API token, the server returns a JSON response detailing the issue. Below is a breakdown of the response parameters. {% admonition type=\"info\" %} If you receive a 403 Unauthorized error, double-check your API token. {% /admonition %}",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemAuthorize"
                }
              }
            }
          },
          "500": {
            "description": "This error indicates an unexpected failure on the server while processing your request. Unlike client-side errors (e.g., 403), this is unrelated to your input or token and requires server-side intervention. {% admonition type=\"info\" %} If you get a 500 Internal Server Error, retry after a short delay or [contact support](https://features.cincopa.com/contact-us).{% /admonition %} {% admonition type=\"danger\" name=\"Careful\" %}Server errors (500) may be temporary. If the issue persists, review your request structure or check for API updates.{% /admonition %}",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemInternalError"
                }
              }
            }
          }
        }
      }
    },
    "/asset.get_upload_url.json": {
      "get": {
        "summary": "Get upload URL",
        "operationId": "assetGetUploadUrl",
        "description": "This endpoint generates a temporary upload URL for adding assets to the library. Use this URL with an HTTP POST request to upload the asset. The asset can be added to a gallery or attached to another asset, such as setting a video poster. When attaching to another asset, a type name must be specified. <p></p><p>**Endpoint:** <code>GET /asset.get_upload_url.json</code></p> <p>**URL:** <code>https://api.cincopa.com/v2/asset.get_upload_url.json</code></p>",
        "tags": [
          "Assets"
        ],
        "parameters": [
          {
            "name": "api_token",
            "in": "query",
            "required": true,
            "example": "AAAAtAURG",
            "schema": {
              "type": "string",
              "description": "A unique key used for authentication. Must be a valid API key provided by the system. Without the valid [api_token](https://www.cincopa.com/help/how-to-get-an-api-key/), the request will be rejected with a 403 Unauthorized error."
            }
          },
          {
            "name": "fid",
            "in": "query",
            "example": "A4KANh__rQ_m",
            "schema": {
              "type": "string"
            },
            "description": "A unique identifier for the gallery where the asset is stored. This is mandatory when adding an asset to a gallery. If an invalid or non-existent fid is provided, the request will not be processed."
          },
          {
            "name": "rid",
            "in": "query",
            "example": "AAAAtAURG",
            "schema": {
              "type": "string"
            },
            "description": "A unique identifier for the asset that requires a metadata update. If the provided rid is incorrect or does not exist, the API will reject the request, and the metadata update will not be processed."
          },
          {
            "name": "type",
            "in": "query",
            "example": "subtitle-en-us",
            "schema": {
              "type": "string",
              "default": "thumb"
            },
            "description": "Defines the type of the attached asset, such as **thumb**, **subtitle-en**, or **subtitle-en-us**.  {% admonition type=\"info\"%} After uploading a thumbnail you'll need to call <code>asset.set_meta.json</code> with the same rid and pass the new image's rid as **thumb_attached_rid** to actually. {% /admonition %} <p></p>"
          },
          {
            "name": "ttl",
            "in": "query",
            "example": 46,
            "schema": {
              "type": "string"
            },
            "description": "Specifies the duration (in seconds) for which the generated upload URL remains valid. Once the time expires, any attempt to use the URL will be rejected. If not provided, the URL remains valid indefinitely."
          },
          {
            "name": "sourceip",
            "in": "query",
            "example": "192.168.1.100",
            "schema": {
              "type": "string"
            },
            "description": "Defines the source IP address of the client allowed to use the generated upload URL. Any request from a different IP address will be rejected. This adds an extra layer of security by restricting access to a specific client machine."
          }
        ],
        "responses": {
          "200": {
            "description": "When an upload URL is successfully generated, the API returns a JSON response confirming the action. Below are the response parameters with corresponding descriptions and examples.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/getUploadUrl"
                }
              }
            }
          },
          "403": {
            "description": "When a request is unauthorized due to an **invalid/missing/expired** API token, the server returns a JSON response detailing the issue. Below is a breakdown of the response parameters. {% admonition type=\"info\" %} If you receive a 403 Unauthorized error, double-check your API token. {% /admonition %}",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemAuthorize"
                }
              }
            }
          },
          "500": {
            "description": "This error indicates an unexpected failure on the server while processing your request. Unlike client-side errors (e.g., 403), this is unrelated to your input or token and requires server-side intervention. {% admonition type=\"info\" %} If you get a 500 Internal Server Error, retry after a short delay or [contact support](https://features.cincopa.com/contact-us).{% /admonition %} {% admonition type=\"danger\" name=\"Careful\" %}Server errors (500) may be temporary. If the issue persists, review your request structure or check for API updates.{% /admonition %}",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemInternalError"
                }
              }
            }
          }
        }
      }
    },
    "/asset.upload_from_url.json": {
      "post": {
        "summary": "Upload asset from URL",
        "operationId": "assetUploadFromUrl",
        "description": "This API endpoint allows you to upload an asset using a provided URL. The asset can either be added to a gallery or linked to another asset, such as a video poster. If attaching it to another asset, a type name must be specified. <p></p><p>Once the request is successful, the API returns a status ID. This ID can be used with <code>asset.upload_from_url_get_status</code> to track the upload progress and retrieve the asset's ID after completion.</p> <p>**Endpoint:** <code>POST /asset.upload_from_url.json</code></p> <p>**URL:** <code>https://api.cincopa.com/v2/asset.upload_from_url.json</code></p>",
        "tags": [
          "Assets"
        ],
        "parameters": [
          {
            "name": "api_token",
            "in": "query",
            "required": true,
            "example": "AAAAtAURG",
            "schema": {
              "type": "string",
              "description": "A unique key used for authentication. Must be a valid API key provided by the system. Without the valid [api_token](https://www.cincopa.com/help/how-to-get-an-api-key/), the request will be rejected with a 403 Unauthorized error."
            }
          },
          {
            "name": "input",
            "in": "query",
            "required": true,
            "example": "https://example.com/image.jpg",
            "schema": {
              "type": "string"
            },
            "description": "The URL of the source asset to be uploaded. This is the location from which the API will fetch the asset."
          },
          {
            "name": "fid",
            "in": "query",
            "example": "A4KANh__rQ_m",
            "schema": {
              "type": "string"
            },
            "description": "A unique identifier for the gallery where the asset should be uploaded. This is mandatory when adding an asset to a gallery. If an invalid or non-existent fid is provided, the request will not be processed."
          },
          {
            "name": "rid",
            "in": "query",
            "example": "AAAAtAURG",
            "schema": {
              "type": "string"
            },
            "description": "A unique identifier for an asset when attaching it to another existing asset. If an invalid or non-existent rid is provided, the request will be rejected, and the attachment will not be processed. If specified, a type must also be provided."
          },
          {
            "name": "type",
            "in": "query",
            "example": "thumb",
            "schema": {
              "type": "string",
              "default": "thumb"
            },
            "description": "Defines the type of the attached asset. This is particularly important when associating an asset with another asset."
          }
        ],
        "responses": {
          "200": {
            "description": "When an asset is successfully uploaded from a provided input URL, the API returns a JSON response confirming the action. Below are the response parameters with their descriptions and examples.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/uploadFromUrl"
                }
              }
            }
          },
          "403": {
            "description": "When a request is unauthorized due to an **invalid/missing/expired** API token, the server returns a JSON response detailing the issue. Below is a breakdown of the response parameters. {% admonition type=\"info\" %} If you receive a 403 Unauthorized error, double-check your API token. {% /admonition %}",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemAuthorize"
                }
              }
            }
          },
          "500": {
            "description": "This error indicates an unexpected failure on the server while processing your request. Unlike client-side errors (e.g., 403), this is unrelated to your input or token and requires server-side intervention. {% admonition type=\"info\" %} If you get a 500 Internal Server Error, retry after a short delay or [contact support](https://features.cincopa.com/contact-us).{% /admonition %} {% admonition type=\"danger\" name=\"Careful\" %}Server errors (500) may be temporary. If the issue persists, review your request structure or check for API updates.{% /admonition %}",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemInternalError"
                }
              }
            }
          }
        }
      }
    },
    "/asset.upload_from_url_get_status.json": {
      "get": {
        "summary": "Get upload status",
        "operationId": "assetUploadFromUrlGetStatus",
        "description": "This API allows users to check the status of an asset upload request. When an asset is uploaded, the system assigns a unique <code>status_id</code>. This ID can be used to track the upload progress and determine whether the upload has been successfully completed. <p></p><p>To retrieve the upload status, users must provide a valid authentication key (api_token) along with the corresponding <code>status_id</code>. If the provided ID is incorrect or does not exist, the request will return an error.</p><p>**Endpoint:** <code>GET /asset.upload_from_url_get_status.json</code> </p> **URL:** <code>https://api.cincopa.com/v2/asset.upload_from_url_get_status.json</code>",
        "tags": [
          "Assets"
        ],
        "parameters": [
          {
            "name": "api_token",
            "in": "query",
            "required": true,
            "example": "AAAAtAURG",
            "schema": {
              "type": "string",
              "description": "A unique key used for authentication. Must be a valid API key provided by the system. Without the valid [api_token](https://www.cincopa.com/help/how-to-get-an-api-key/), the request will be rejected with a 403 Unauthorized error."
            }
          },
          {
            "name": "status_id",
            "in": "query",
            "example": "AAAAcAAJFOAAAAAAAAtAURG",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "A unique identifier assigned to each asset upload request. This ID is returned when an asset is uploaded. It is required to track the progress of the upload and retrieve its final status. If an incorrect or non-existent <code>status_id</code> is provided, the request will fail."
          }
        ],
        "responses": {
          "200": {
            "description": "When an asset upload status request is made, the API returns a JSON response containing key details about the progress and outcome of the upload process. This response includes information such as the number of bytes uploaded, the total file size, the upload status, and whether the request was successful.<p></p><p>Below are the response parameters with their descriptions and examples. </p>",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/statusupdate"
                }
              }
            }
          },
          "403": {
            "description": "When a request is unauthorized due to an **invalid/missing/expired** API token, the server returns a JSON response detailing the issue. Below is a breakdown of the response parameters. {% admonition type=\"info\" %} If you receive a 403 Unauthorized error, double-check your API token. {% /admonition %}",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemAuthorize"
                }
              }
            }
          },
          "500": {
            "description": "This error indicates an unexpected failure on the server while processing your request. Unlike client-side errors (e.g., 403), this is unrelated to your input or token and requires server-side intervention. {% admonition type=\"info\" %} If you get a 500 Internal Server Error, retry after a short delay or [contact support](https://features.cincopa.com/contact-us).{% /admonition %} {% admonition type=\"danger\" name=\"Careful\" %}Server errors (500) may be temporary. If the issue persists, review your request structure or check for API updates.{% /admonition %}",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemInternalError"
                }
              }
            }
          }
        }
      }
    },
    "/asset.upload_from_url_abort.json": {
      "post": {
        "summary": "Abort uploading process",
        "operationId": "assetUploadFromUrlAbort",
        "description": "This API allows you to terminate an ongoing file upload. This is useful when an upload is no longer needed, was initiated by mistake, or is taking too long. Aborting an upload prevents unnecessary storage usage and system load. Once aborted, the upload process cannot be resumed, and any partially uploaded data will be discarded. <p></p><p>**Endpoint:** <code>POST/asset.upload_from_url_abort.json</code></p> <p>**URL:** <code>https://api.cincopa.com/v2/asset.upload_from_url_abort.json</code></p>",
        "tags": [
          "Assets"
        ],
        "parameters": [
          {
            "name": "api_token",
            "in": "query",
            "required": true,
            "example": "AAAAtAURG",
            "schema": {
              "type": "string",
              "description": "A unique key used for authentication. Must be a valid API key provided by the system. Without the valid [api_token](https://www.cincopa.com/help/how-to-get-an-api-key/), the request will be rejected with a 403 Unauthorized error.</p>"
            }
          },
          {
            "name": "status_id",
            "in": "query",
            "example": "AAAAcAAJFOAAAAAAAAtAURG",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "A unique identifier assigned to each asset upload request. This ID is returned when an asset is uploaded. It is required to track the progress of the upload and retrieve its final status. If an incorrect or non-existent <code>status_id</code> is provided, the request will fail."
          }
        ],
        "responses": {
          "200": {
            "description": "When the upload process is successfully aborted, the API returns a JSON response confirming the action. Below are the response parameters along with their descriptions and examples.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/uploadFromUrl"
                }
              }
            }
          },
          "403": {
            "description": "When a request is unauthorized due to an **invalid/missing/expired** API token, the server returns a JSON response detailing the issue. Below is a breakdown of the response parameters. {% admonition type=\"info\" %} If you receive a 403 Unauthorized error, double-check your API token. {% /admonition %}",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemAuthorize"
                }
              }
            }
          },
          "500": {
            "description": "This error indicates an unexpected failure on the server while processing your request. Unlike client-side errors (e.g., 403), this is unrelated to your input or token and requires server-side intervention. {% admonition type=\"info\" %} If you get a 500 Internal Server Error, retry after a short delay or [contact support](https://features.cincopa.com/contact-us).{% /admonition %} {% admonition type=\"danger\" name=\"Careful\" %}Server errors (500) may be temporary. If the issue persists, review your request structure or check for API updates.{% /admonition %}",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemInternalError"
                }
              }
            }
          }
        }
      }
    },
    "/upload.iframe": {
      "get": {
        "summary": "HTML iframe to manage gallery",
        "operationId": "uploadIframe",
        "description": "This method is actually a URL for an iframe which allows end users to upload media directly to a Cincopa gallery using an embedded iframe. This iframe provides a unified, simple interface to an end user for uploading using drag and drop, selecting media, editing the media information, reordering, and deleting. The iframe supports mobile, tablet, and desktop and will adopt the size and shape according to the site layout.<p></p><p><b>Here are some scenarios where this iframe can be used:</b></p><ul><li>CMS system like WordPress and BuddyPress in an editor mode where the user can attach the media while in the authoring mode of a post, article or profile.</li><li>LMS system in teachers mode where the teachers can add media to a lesson</li><li>CRM system like Salesforce where media can be attached to any object, for example, a product object where the iframe can be added to the product's layout and allow adding videos, images, audio, and docs to that object.</li></ul><p><b>Every media that is uploaded will reside in a gallery; this gallery can be referenced using two methods. Those two methods are interchangeable and were created to make the integration with the different systems much simpler:</b></p><ul><li>Cincopa Identifier - this id (also known as FID) is issued by the API (or when creating a gallery in www.cincopa.com). When using FIDs your system should save it either in CMS page (like short code in WordPress) or in an extra field in the CRM object.</li><li>External Identifier - this id (also knows as RRID) is actually a remote reference given by your system, for example in WordPress this can be post id, in Salesforce this can be the unique id of the specific object.</li></ul> <p>**Endpoint:** <code>GET /upload.iframe</code></p> <p>**URL:** <code>https://api.cincopa.com/v2/upload.iframe</code></p>",
        "tags": [
          "Upload"
        ],
        "parameters": [
          {
            "name": "api_token",
            "in": "query",
            "required": true,
            "example": "AAAAtAURG",
            "schema": {
              "type": "string",
              "description": "A unique key used for authentication. Must be a valid API key provided by the system. Without the valid [api_token](https://www.cincopa.com/help/how-to-get-an-api-key/), the request will be rejected with a 403 Unauthorized error."
            }
          },
          {
            "name": "fid",
            "in": "query",
            "example": "A4KANh__rQ_m",
            "schema": {
              "type": "string"
            },
            "description": "A unique identifier for a gallery. This parameter is used to specify the target gallery where the asset should be added."
          },
          {
            "name": "rrid",
            "example": "5HN-847n_cyhene7",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "A remote resource ID that serves as a reference to a remote object, such as an entity in a CRM or CMS. This can be used as an alternative to fid when linking assets to external systems."
          }
        ],
        "responses": {
          "200": {
            "description": "When a request to this endpoint is successful, it returns an HTML response containing an embedded iframe link. The iframe can be used to display the uploaded content within a webpage or application.",
            "content": {
              "text/html": {
                "schema": {
                  "type": "string",
                  "description": "The response consists of an HTML string containing an iframe. This iframe link allows direct embedding of the uploaded content into a webpage."
                },
                "examples": {
                  "html": {
                    "value": "<iframe width='100%' height='430' src='https://api.cincopa.com/v2/upload.iframe?api_token=cvdfjndv45' frameborder='0' allowfullscreen scrolling='yes' allow='geolocation *; microphone *; camera *'></iframe>"
                  }
                }
              }
            }
          },
          "403": {
            "description": "When a request is unauthorized due to an **invalid/missing/expired** API token, the server returns a JSON response detailing the issue. Below is a breakdown of the response parameters. {% admonition type=\"info\" %} If you receive a 403 Unauthorized error, double-check your API token. {% /admonition %}",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemAuthorize"
                }
              }
            }
          },
          "500": {
            "description": "This error indicates an unexpected failure on the server while processing your request. Unlike client-side errors (e.g., 403), this is unrelated to your input or token and requires server-side intervention. {% admonition type=\"info\" %} If you get a 500 Internal Server Error, retry after a short delay or [contact support](https://features.cincopa.com/contact-us).{% /admonition %} {% admonition type=\"danger\" name=\"Careful\" %}Server errors (500) may be temporary. If the issue persists, review your request structure or check for API updates.{% /admonition %}",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemInternalError"
                }
              }
            }
          }
        }
      }
    },
    "/upload.get_upload_token.json": {
      "get": {
        "summary": "Invite upload token",
        "operationId": "uploadGetUploadToken",
        "description": "This API generates a special token that allows controlled access to an invite-based upload page. This token restricts access to the upload URL and ensures that only authorized users can upload files within a specified timeframe. The generated token must be included as a query parameter in the upload request to authenticate the upload session.<p></p> <p>This API is useful for scenarios where temporary and restricted access to file uploads is required, such as inviting external users to contribute files without giving them full API access.</p> <p>**Endpoint:** <code>GET /upload.get_upload_token.json</code></p><p>**URL:** <code>https://api.cincopa.com/v2/upload.get_upload_token.json</code></p>",
        "tags": [
          "Upload"
        ],
        "parameters": [
          {
            "name": "api_token",
            "in": "query",
            "required": true,
            "example": "AAAAtAURG",
            "schema": {
              "type": "string",
              "description": "A unique key used for authentication. Must be a valid API key provided by the system. Without the valid [api_token](https://www.cincopa.com/help/how-to-get-an-api-key/), the request will be rejected with a 403 Unauthorized error."
            }
          },
          {
            "name": "fid",
            "in": "query",
            "required": true,
            "example": "A4KANh__rQ_m",
            "schema": {
              "type": "string"
            },
            "description": "A unique identifier for the gallery where the uploaded assets will be stored. This helps link the uploaded content to the correct gallery."
          },
          {
            "name": "expire",
            "in": "query",
            "required": true,
            "example": "2022-09-27",
            "schema": {
              "type": "string"
            },
            "description": "The expiration date of the invite token in **ISO 8601** format **(YYYY-MM-DD)**. After this date, the token will no longer be valid, preventing further uploads."
          }
        ],
        "responses": {
          "200": {
            "description": "When an upload token is successfully generated, the API returns a JSON response confirming the action. Below are the response parameters with corresponding descriptions and examples.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/getUploadToken"
                }
              }
            }
          },
          "403": {
            "description": "When a request is unauthorized due to an **invalid/missing/expired** API token, the server returns a JSON response detailing the issue. Below is a breakdown of the response parameters. {% admonition type=\"info\" %} If you receive a 403 Unauthorized error, double-check your API token. {% /admonition %}",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemAuthorize"
                }
              }
            }
          },
          "500": {
            "description": "This error indicates an unexpected failure on the server while processing your request. Unlike client-side errors (e.g., 403), this is unrelated to your input or token and requires server-side intervention. {% admonition type=\"info\" %} If you get a 500 Internal Server Error, retry after a short delay or [contact support](https://features.cincopa.com/contact-us).{% /admonition %} {% admonition type=\"danger\" name=\"Careful\" %}Server errors (500) may be temporary. If the issue persists, review your request structure or check for API updates.{% /admonition %}",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemInternalError"
                }
              }
            }
          }
        }
      }
    },
    "/portal.check.json": {
      "get": {
        "summary": "Verify subdomain",
        "operationId": "portalCheck",
        "description": "The API allows developers to check whether a specific subdomain is available for use. This is particularly useful when creating new portals, custom domains, or other web-based services that require a unique subdomain. By making a simple API request, users can determine if their desired subdomain is already taken or available for registration. <p></p><p>**Endpoint:** <code>GET /portal.check.json</code></p> <p>**URL:** <code>https://api.cincopa.com/v2/portal.check.json</code></p>",
        "tags": [
          "Portal"
        ],
        "parameters": [
          {
            "name": "api_token",
            "in": "query",
            "required": true,
            "example": "AAAAtAURG",
            "schema": {
              "type": "string",
              "description": "A unique key used for authentication. Must be a valid API key provided by the system. Without the valid [api_token](https://www.cincopa.com/help/how-to-get-an-api-key/), the request will be rejected with a 403 Unauthorized error."
            }
          },
          {
            "name": "subdomain",
            "in": "query",
            "required": true,
            "example": "test4",
            "schema": {
              "type": "string",
              "description": "The name of the subdomain to be checked for availability. The API will return a response indicating whether the subdomain is free or already in use. {% admonition type=\"info\" %}Choose a unique <code>subdomain</code> name to increase the chances of availability and avoid conflicts with existing domains.{%/admonition%}<p></p>"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "When the request is successful, the API returns a JSON response containing relevant details about the requested resource. This response provides key information regarding the availability and status, enabling developers to assess whether further actions are needed. Below are the response parameters with their descriptions and examples.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/portalCheck"
                }
              }
            }
          },
          "403": {
            "description": "When a request is unauthorized due to an **invalid/missing/expired** API token, the server returns a JSON response detailing the issue. Below is a breakdown of the response parameters. {% admonition type=\"info\" %} If you receive a 403 Unauthorized error, double-check your API token. {% /admonition %}",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemAuthorize"
                }
              }
            }
          },
          "500": {
            "description": "This error indicates an unexpected failure on the server while processing your request. Unlike client-side errors (e.g., 403), this is unrelated to your input or token and requires server-side intervention. {% admonition type=\"info\" %} If you get a 500 Internal Server Error, retry after a short delay or [contact support](https://features.cincopa.com/contact-us).{% /admonition %} {% admonition type=\"danger\" name=\"Careful\" %}Server errors (500) may be temporary. If the issue persists, review your request structure or check for API updates.{% /admonition %}",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/portalCheckInternalError"
                }
              }
            }
          }
        }
      }
    },
    "/portal.cease.json": {
      "post": {
        "summary": "Create subdomain if available",
        "operationId": "portalCease",
        "description": "This API endpoint allows users to create a new subdomain if it is available. By making a request with the required parameters, users can initiate the subdomain creation process. The API validates the provided credentials and checks the availability of the requested subdomain before processing the request. <p></p> <p>**Endpoint:** <code>POST /portal.cease.json</code></p> <p>**URL:** <code>https://api.cincopa.com/v2/portal.cease.json</code></p>",
        "tags": [
          "Portal"
        ],
        "parameters": [
          {
            "name": "api_token",
            "in": "query",
            "required": true,
            "example": "AAAAtAURG",
            "schema": {
              "type": "string",
              "description": "A unique key used for authentication. Must be a valid API key provided by the system. Without the valid [api_token](https://www.cincopa.com/help/how-to-get-an-api-key/), the request will be rejected with a 403 Unauthorized error."
            }
          },
          {
            "name": "subdomain",
            "in": "query",
            "required": true,
            "example": "test4",
            "schema": {
              "type": "string",
              "description": "The name of the subdomain to be created. The API will check if the subdomain is available before proceeding with the creation."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "When a request is successfully processed, the API returns a structured JSON response containing key details about the request status. This response helps confirm whether the request was successful and provides additional information about the server's processing time. Below are the response parameters with their descriptions and examples.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/successResponse"
                }
              }
            }
          },
          "403": {
            "description": "When a request is unauthorized due to an **invalid/missing/expired** API token, the server returns a JSON response detailing the issue. Below is a breakdown of the response parameters. {% admonition type=\"info\" %} If you receive a 403 Unauthorized error, double-check your API token. {% /admonition %}",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemAuthorize"
                }
              }
            }
          },
          "500": {
            "description": "This error indicates an unexpected failure on the server while processing your request. Unlike client-side errors (e.g., 403), this is unrelated to your input or token and requires server-side intervention. {% admonition type=\"info\" %} If you get a 500 Internal Server Error, retry after a short delay or [contact support](https://features.cincopa.com/contact-us).{% /admonition %} {% admonition type=\"danger\" name=\"Careful\" %}Server errors (500) may be temporary. If the issue persists, review your request structure or check for API updates.{% /admonition %}",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/portalCheckInternalError"
                }
              }
            }
          }
        }
      }
    },
    "/portal.rename.json": {
      "post": {
        "summary": "Rename subdomain",
        "operationId": "portalRename",
        "description": "This API endpoint allows users to rename an existing subdomain. By providing the current subdomain name and the desired new name, the request will update the subdomain accordingly. Authentication is required through an API token to ensure that only authorized users can perform this action. <p></p> <p>**Endpoint:** <code>POST /portal.rename.json</code></p> <p>**URL:** <code>https://api.cincopa.com/v2/portal.rename.json</code></p>",
        "tags": [
          "Portal"
        ],
        "parameters": [
          {
            "name": "api_token",
            "in": "query",
            "required": true,
            "example": "AAAAtAURG",
            "schema": {
              "type": "string",
              "description": "A unique key used for authentication. Must be a valid API key provided by the system. Without the valid [api_token](https://www.cincopa.com/help/how-to-get-an-api-key/), the request will be rejected with a 403 Unauthorized error."
            }
          },
          {
            "name": "from",
            "in": "query",
            "required": true,
            "example": "test87",
            "schema": {
              "type": "string",
              "description": "Specifies the existing subdomain name that needs to be changed. The subdomain must already exist within the system, and the user making the request must have the necessary permissions to modify it. {% admonition type=\"danger\" name=\"Careful\"%}If the new subdomain name is already taken or does not follow naming rules, the API may return an error. Verify subdomain availability before renaming to avoid conflicts.{% /admonition %}<p></p>"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": true,
            "example": "test88",
            "schema": {
              "type": "string"
            },
            "description": "Defines the new name for the subdomain after renaming. The new name must follow the system's naming conventions (e.g., length limits, allowed characters) and must not be already in use by another subdomain. If the requested subdomain name is unavailable, the API may return an error indicating that the name is already taken."
          }
        ],
        "responses": {
          "200": {
            "description": "When the request to rename a subdomain is successful, the API returns a JSON response containing key details about the operation's outcome. This response provides information on whether the subdomain was successfully renamed and how long the server took to process the request. Below are the response parameters with their descriptions and examples.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/successResponse"
                }
              }
            }
          },
          "403": {
            "description": "When a request is unauthorized due to an **invalid/missing/expired** API token, the server returns a JSON response detailing the issue. Below is a breakdown of the response parameters. {% admonition type=\"info\" %} If you receive a 403 Unauthorized error, double-check your API token. {% /admonition %}",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemAuthorize"
                }
              }
            }
          },
          "500": {
            "description": "This error indicates an unexpected failure on the server while processing your request. Unlike client-side errors (e.g., 403), this is unrelated to your input or token and requires server-side intervention. {% admonition type=\"info\" %} If you get a 500 Internal Server Error, retry after a short delay or [contact support](https://features.cincopa.com/contact-us).{% /admonition %} {% admonition type=\"danger\" name=\"Careful\" %}Server errors (500) may be temporary. If the issue persists, review your request structure or check for API updates.{% /admonition %}",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/portalChangeInternalError"
                }
              }
            }
          }
        }
      }
    },
    "/portal.remove.json": {
      "post": {
        "summary": "Remove subdomain",
        "operationId": "portalRemove",
        "description": "This API endpoint allows users to delete an existing subdomain from the system. This action is irreversible, meaning that once a subdomain is removed, it cannot be recovered, and any associated services or configurations will be lost. Proper authentication is required to perform this operation.<p></p><p>**Endpoint:** <code>POST /portal.remove.json</code></p> <p>**URL:** <code>https://api.cincopa.com/v2/portal.remove.json</code></p>",
        "tags": [
          "Portal"
        ],
        "parameters": [
          {
            "name": "api_token",
            "in": "query",
            "required": true,
            "example": "AAAAtAURG",
            "schema": {
              "type": "string",
              "description": "A unique key used for authentication. Must be a valid API key provided by the system. Without the valid [api_token](https://www.cincopa.com/help/how-to-get-an-api-key/), the request will be rejected with a 403 Unauthorized error."
            }
          },
          {
            "name": "subdomain",
            "in": "query",
            "required": true,
            "example": "test987",
            "schema": {
              "type": "string"
            },
            "description": "The name of the subdomain to be removed. The subdomain must exist within the system and be accessible by the user making the request."
          }
        ],
        "responses": {
          "200": {
            "description": "When a request to remove a subdomain is processed, the API returns a JSON response indicating the success or failure of the operation. Below are the response parameters with their descriptions and examples.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/successResponse"
                }
              }
            }
          },
          "403": {
            "description": "When a request is unauthorized due to an **invalid/missing/expired** API token, the server returns a JSON response detailing the issue. Below is a breakdown of the response parameters. {% admonition type=\"info\" %} If you receive a 403 Unauthorized error, double-check your API token. {% /admonition %}",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemAuthorize"
                }
              }
            }
          },
          "500": {
            "description": "This error indicates an unexpected failure on the server while processing your request. Unlike client-side errors (e.g., 403), this is unrelated to your input or token and requires server-side intervention. {% admonition type=\"info\" %} If you get a 500 Internal Server Error, retry after a short delay or [contact support](https://features.cincopa.com/contact-us).{% /admonition %} {% admonition type=\"danger\" name=\"Careful\" %}Server errors (500) may be temporary. If the issue persists, review your request structure or check for API updates.{% /admonition %}",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/portalChangeInternalError"
                }
              }
            }
          }
        }
      }
    },
    "/portal.set.json": {
      "post": {
        "summary": "Save subdomain",
        "operationId": "portalSet",
        "description": "The Save subdomain API endpoint allows you to create or update a subdomain configuration for a Cincopa-hosted portal. This endpoint is critical for configuring custom access rules, authentication methods (e.g., SSO, user/password), and domain mappings for your portal. Use it to:<p><ul><li>Set up a branded subdomain (e.g., portal.yourcompany.cincopa.com).</li><li>Control public/private access to the portal.</li><li>Integrate Single Sign-On (SSO) via Google or Cincopa’s native authentication.</li><li>Map custom domains (CNAME) to the portal.</li></ul></p><p>**Endpoint:** <code>POST/ portal.set.json</code></p> <p>**URL:** <code>https://api.cincopa.com/v2/portal.set.json</code></p>",
        "tags": [
          "Portal"
        ],
        "parameters": [
          {
            "name": "api_token",
            "in": "query",
            "required": true,
            "example": "AAAAtAURG",
            "schema": {
              "type": "string",
              "description": "A unique key used for authentication. Must be a valid API key provided by the system. Without the valid [api_token](https://www.cincopa.com/help/how-to-get-an-api-key/), the request will be rejected with a 403 Unauthorized error."
            }
          },
          {
            "name": "subdomain",
            "in": "query",
            "required": true,
            "example": "test456",
            "schema": {
              "type": "string"
            },
            "description": "Specifies the name of the subdomain to be created. This must be unique within the Cincopa platform. {% admonition type=\"danger\" name=\"Careful\" %}<code>subdomain</code> must be unique within Cincopa; duplicate entries will fail.{% /admonition %} <p></p>"
          },
          {
            "name": "template",
            "in": "query",
            "example": "/templates/corporate",
            "schema": {
              "type": "string"
            },
            "description": "The path to a predefined template that can be used to structure the portal’s appearance."
          },
          {
            "name": "args",
            "in": "query",
            "example": "JSON.stringify ({primary_color:\"#2A5F9E\", logo_url:\"https://acme.com/logo.png\"})",
            "schema": {
              "type": "string"
            },
            "description": "A JSON string containing additional settings for the template. {% admonition type=\"danger\" name=\"Careful\" %}<code>args</code>must be a properly formatted JSON string; invalid JSON will cause errors.{% /admonition %} <p></p>"
          },
          {
            "name": "allow_public",
            "in": "query",
            "example": "no",
            "schema": {
              "type": "string",
              "default": "yes"
            },
            "description": "Determines if the portal is publicly accessible. Possible values:**yes** (anyone can access) or **no** (restricted access). {% admonition type=\"danger\" name=\"Careful\" %}<code>allow_public</code>accepts only **yes** or **no**; any other value will be rejected.{% /admonition %} <p></p>"
          },
          {
            "name": "cincopa_login",
            "in": "query",
            "example": "yes",
            "schema": {
              "type": "string",
              "default": "no"
            },
            "description": "Enables or disables Cincopa login authentication. **yes** requires users to log in with Cincopa credentials. Controls user registration when Cincopa login is enabled. **anyone** allows open registration, **restricted** limits it, and **off** disables it."
          },
          {
            "name": "cincopa_login_registration",
            "in": "query",
            "example": "restricted",
            "schema": {
              "type": "string",
              "default": "restricted"
            },
            "description": "Controls user registration when Cincopa login is enabled. **anyone** allows open registration, **restricted** limits it, and **off** disables it."
          },
          {
            "name": "cincopa_login_user_add",
            "in": "query",
            "example": "john@acme.com,emma@acme.com",
            "schema": {
              "type": "string"
            },
            "description": "Comma-separated list of emails authorized to access the portal using Cincopa login."
          },
          {
            "name": "cincopa_login_user_remove",
            "in": "query",
            "example": "old@acme.com",
            "schema": {
              "type": "string"
            },
            "description": "Comma-separated list of emails to be removed from the Cincopa authorization list."
          },
          {
            "name": "cincopa_login_domain_add",
            "in": "query",
            "example": "acme.com",
            "schema": {
              "type": "string"
            },
            "description": "Allows login access for users from specified domains. Accepts a comma-separated list of domains."
          },
          {
            "name": "cincopa_login_domain_remove",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "Removes specified domains from the authorization list, revoking access for associated users."
          },
          {
            "name": "google_openid_user_add",
            "in": "query",
            "example": "sso-user@acme.com",
            "schema": {
              "type": "string"
            },
            "description": "Grants login access via Google OpenID for specific email addresses. Emails should be comma-separated."
          },
          {
            "name": "google_openid_user_remove",
            "in": "query",
            "example": "former@acme.com",
            "schema": {
              "type": "string"
            },
            "description": "Removes specified Google email addresses from the portal’s authorization list."
          },
          {
            "name": "google_openid_domain_add",
            "in": "query",
            "example": "acme.com",
            "schema": {
              "type": "string"
            },
            "description": "Authorizes all users from specified Google domains to log in via OpenID."
          },
          {
            "name": "google_openid_domain_remove",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "Revokes OpenID login access for users from specified Google domains."
          },
          {
            "name": "simple_user_add",
            "in": "query",
            "example": "old_client",
            "schema": {
              "type": "string"
            },
            "description": "Adds users using a CSV **user:password** format or a JSON array for access control."
          },
          {
            "name": "simple_user_remove",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "Removes specified users from the authorization list using a comma-separated format."
          },
          {
            "name": "cname_domain",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "Your domain name to map (CNAME) to this portal. Make sure to map your domain before you make this API call. For example to map your subdomain **https://videos.acme.com** to your Cincopa portal name **https://acme.cincopa.com** first go to your DNS provider and create a CNAME record host - **video.acme.com** points to - **acme.cincopa.com**. For more information read our help article. {% admonition type=\"danger\" name=\"Careful\" %}<code>cname_domain</code> must have a valid CNAME record set up before making the API call.{% /admonition %} <p></p>"
          }
        ],
        "responses": {
          "200": {
            "description": "When a subdomain is successfully saved, the API returns a JSON response containing key details about the request’s execution. Below are the response parameters with corresponding descriptions and examples.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/successResponse"
                }
              }
            }
          },
          "403": {
            "description": "When a request is unauthorized due to an **invalid/missing/expired** API token, the server returns a JSON response detailing the issue. Below is a breakdown of the response parameters. {% admonition type=\"info\" %} If you receive a 403 Unauthorized error, double-check your API token. {% /admonition %}",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemAuthorize"
                }
              }
            }
          },
          "500": {
            "description": "This error indicates an unexpected failure on the server while processing your request. Unlike client-side errors (e.g., 403), this is unrelated to your input or token and requires server-side intervention. {% admonition type=\"info\" %} If you get a 500 Internal Server Error, retry after a short delay or [contact support](https://features.cincopa.com/contact-us).{% /admonition %} {% admonition type=\"danger\" name=\"Careful\" %}Server errors (500) may be temporary. If the issue persists, review your request structure or check for API updates.{% /admonition %}",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/portalChangeInternalError"
                }
              }
            }
          }
        }
      }
    },
    "/portal.list.json": {
      "get": {
        "summary": "List of portals",
        "operationId": "portalList",
        "description": "This API endpoint retrieves a list of available portals based on the provided query parameters. It allows users to fetch either all portals or filter the results using a specific subdomain. This API requires authentication via an <code>api_token</code> to ensure secure access. <p></p><p>**Endpoint:** <code>GET/ portal.list.json</code></p> <p>**URL:** <code>https://api.cincopa.com/v2/portal.list.json</code></p>",
        "tags": [
          "Portal"
        ],
        "parameters": [
          {
            "name": "api_token",
            "in": "query",
            "required": true,
            "example": "AAAAtAURG",
            "schema": {
              "type": "string",
              "description": "A unique key used for authentication. Must be a valid API key provided by the system. Without the valid [api_token](https://www.cincopa.com/help/how-to-get-an-api-key/), the request will be rejected with a 403 Unauthorized error."
            }
          },
          {
            "name": "subdomain",
            "in": "query",
            "example": "test6789",
            "schema": {
              "type": "string"
            },
            "description": "Specifies the subdomain name to filter the portal list. If left blank, the API will return all available portals."
          }
        ],
        "responses": {
          "200": {
            "description": "When the request to retrieve the list of portals is successfully processed, the API returns a JSON response containing key details about the available portals. Below are the response parameters with their descriptions and examples.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/getPortalList"
                }
              }
            }
          },
          "403": {
            "description": "When a request is unauthorized due to an **invalid/missing/expired** API token, the server returns a JSON response detailing the issue. Below is a breakdown of the response parameters. {% admonition type=\"info\" %} If you receive a 403 Unauthorized error, double-check your API token. {% /admonition %}",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemAuthorize"
                }
              }
            }
          },
          "500": {
            "description": "This error indicates an unexpected failure on the server while processing your request. Unlike client-side errors (e.g., 403), this is unrelated to your input or token and requires server-side intervention. {% admonition type=\"info\" %} If you get a 500 Internal Server Error, retry after a short delay or [contact support](https://features.cincopa.com/contact-us).{% /admonition %} {% admonition type=\"danger\" name=\"Careful\" %}Server errors (500) may be temporary. If the issue persists, review your request structure or check for API updates.{% /admonition %}",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemInternalError"
                }
              }
            }
          }
        }
      }
    },
    "/webhook.list.json": {
      "get": {
        "summary": "List of webhooks",
        "operationId": "webhookList",
        "description": "This API allows users to retrieve all active webhooks associated with their account. This endpoint provides an overview of registered webhooks, including their callback URLs and event types. It enables seamless management of webhook configurations, ensuring users can monitor or update their event-driven integrations efficiently.<p></p><p>**Endpoint:** <code>GET /webhook.list.json</code></p><p>**URL:** <code>https://api.cincopa.com/v2/webhook.list.json</code></p>",
        "tags": [
          "Webhook"
        ],
        "parameters": [
          {
            "name": "api_token",
            "in": "query",
            "required": true,
            "example": "AAAAtAURG",
            "schema": {
              "type": "string",
              "description": "A unique key used for authentication. Must be a valid API key provided by the system. Without the valid [api_token](https://www.cincopa.com/help/how-to-get-an-api-key/), the request will be rejected with a 403 Unauthorized error."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "When the request for retrieving the list of webhooks is successfully processed, the API returns a 200 OK response containing key details about the operation.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/getWebhookList"
                }
              }
            }
          },
          "403": {
            "description": "When a request is unauthorized due to an **invalid/missing/expired** API token, the server returns a JSON response detailing the issue. Below is a breakdown of the response parameters. {% admonition type=\"info\" %} If you receive a 403 Unauthorized error, double-check your API token. {% /admonition %}",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemAuthorize"
                }
              }
            }
          },
          "500": {
            "description": "This error indicates an unexpected failure on the server while processing your request. Unlike client-side errors (e.g., 403), this is unrelated to your input or token and requires server-side intervention. {% admonition type=\"info\" %} If you get a 500 Internal Server Error, retry after a short delay or [contact support](https://features.cincopa.com/contact-us).{% /admonition %} {% admonition type=\"danger\" name=\"Careful\" %}Server errors (500) may be temporary. If the issue persists, review your request structure or check for API updates.{% /admonition %}",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemInternalError"
                }
              }
            }
          }
        }
      }
    },
    "/webhook.set.json": {
      "post": {
        "summary": "Create/update webhook",
        "operationId": "webhookSet",
        "description": "This API endpoint allows users to create or modify a webhook by specifying a target URL **(hook_url)**. A webhook is a mechanism that enables real-time notifications when specific events occur in the system. When a webhook is created or updated, it listens for particular events and triggers an HTTP request to the specified **hook_url**.<p></p><p>**Endpoint:** <code>POST /webhook.set.json</code></p><p>**URL:** <code>https://api.cincopa.com/v2/webhook.set.json</code></p>",
        "tags": [
          "Webhook"
        ],
        "parameters": [
          {
            "name": "api_token",
            "in": "query",
            "required": true,
            "example": "AAAAtAURG",
            "schema": {
              "type": "string",
              "description": "A unique key used for authentication. Must be a valid API key provided by the system. Without the valid [api_token](https://www.cincopa.com/help/how-to-get-an-api-key/), the request will be rejected with a 403 Unauthorized error."
            }
          },
          {
            "name": "hook_url",
            "in": "query",
            "example": "test87",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The URL that will receive event notifications when the webhook is triggered. This URL should be properly configured to handle incoming webhook requests."
          },
          {
            "name": "security_key",
            "example": "4dfdfdc39",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "A secret key used to hash the URL and append it when calling the **hook_url**. This adds an extra layer of security, ensuring that only authorized requests are processed."
          },
          {
            "name": "events",
            "example": "asset",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "Specifies the events that will trigger the webhook. Users can define one or multiple namespace events. Available namespaces include **gallery.**, **asset.**, **account.**, **analytics.**, **leads**.* (with * indicating all events under a namespace)."
          }
        ],
        "responses": {
          "200": {
            "description": "When a request is successfully processed the endpoint, the API returns a 200 OK status code. This indicates that the webhook has been successfully created or updated. The response body is returned in JSON format and contains the following fields",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/successResponse"
                }
              }
            }
          },
          "403": {
            "description": "When a request is unauthorized due to an **invalid/missing/expired** API token, the server returns a JSON response detailing the issue. Below is a breakdown of the response parameters. {% admonition type=\"info\" %} If you receive a 403 Unauthorized error, double-check your API token. {% /admonition %}",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemAuthorize"
                }
              }
            }
          },
          "500": {
            "description": "This error indicates an unexpected failure on the server while processing your request. Unlike client-side errors (e.g., 403), this is unrelated to your input or token and requires server-side intervention. {% admonition type=\"info\" %} If you get a 500 Internal Server Error, retry after a short delay or [contact support](https://features.cincopa.com/contact-us).{% /admonition %} {% admonition type=\"danger\" name=\"Careful\" %}Server errors (500) may be temporary. If the issue persists, review your request structure or check for API updates.{% /admonition %}",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/webhookSetInternalError"
                }
              }
            }
          }
        }
      }
    },
    "/webhook.set_slack.json": {
      "post": {
        "summary": "Create/update webhook to slack",
        "operationId": "webhookSetSlack",
        "description": "This API endpoint allows users to create or update a webhook that sends messages to a specified Slack channel. This webhook integration enables automated notifications based on specified events, improving communication and workflow efficiency. Users must provide authentication credentials, specify the Slack webhook URL, and define parameters such as the Slack channel, username, and optional icon. <p></p><p>**Endpoint:** <code>POST/webhook.set_slack.json</code></p><p>**URL:** <code>https://api.cincopa.com/v2/webhook.set_slack.json</code></p>",
        "tags": [
          "Webhook"
        ],
        "parameters": [
          {
            "name": "api_token",
            "in": "query",
            "required": true,
            "example": "AAAAtAURG",
            "schema": {
              "type": "string",
              "description": "A unique key used for authentication. Must be a valid API key provided by the system. Without the valid [api_token](https://www.cincopa.com/help/how-to-get-an-api-key/), the request will be rejected with a 403 Unauthorized error."
            }
          },
          {
            "name": "hook_url",
            "in": "query",
            "required": true,
            "example": "https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX",
            "schema": {
              "type": "string"
            },
            "description": "The Slack webhook URL where messages will be sent. This must be in a valid Slack webhook format."
          },
          {
            "name": "events",
            "in": "query",
            "example": "asset",
            "schema": {
              "type": "string",
              "default": "*(all)"
            },
            "description": "Defines the events that will trigger the webhook call. The specified events determine when messages are sent to Slack."
          },
          {
            "name": "slack_channel",
            "in": "query",
            "required": true,
            "example": "cincopatest.slack.com",
            "schema": {
              "type": "string"
            },
            "description": "The Slack channel where the messages will be posted. This should be in the format of a channel name or workspace channel."
          },
          {
            "name": "slack_username",
            "in": "query",
            "example": "test",
            "schema": {
              "type": "string",
              "default": "cincopa_bot"
            },
            "description": "The username that will appear as the sender of the message. Defaults to the integration’s configured username if not provided."
          },
          {
            "name": "slack_icon",
            "in": "query",
            "example": ":)",
            "schema": {
              "type": "string"
            },
            "description": "An optional icon for the message sender. This can be an emoji (e.g., :smile:) or a URL linking to an image."
          }
        ],
        "responses": {
          "200": {
            "description": "When the request to create or update a Slack webhook is successfully processed, the API returns a 200 OK response. This response confirms that the webhook has been set up or modified correctly and is now ready to send messages to the specified Slack channel. Below are the response parameters with their descriptions and examples.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/successResponse"
                }
              }
            }
          },
          "403": {
            "description": "When a request is unauthorized due to an **invalid/missing/expired** API token, the server returns a JSON response detailing the issue. Below is a breakdown of the response parameters. {% admonition type=\"info\" %} If you receive a 403 Unauthorized error, double-check your API token. {% /admonition %}",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemAuthorize"
                }
              }
            }
          },
          "500": {
            "description": "This error indicates an unexpected failure on the server while processing your request. Unlike client-side errors (e.g., 403), this is unrelated to your input or token and requires server-side intervention. {% admonition type=\"info\" %} If you get a 500 Internal Server Error, retry after a short delay or [contact support](https://features.cincopa.com/contact-us).{% /admonition %} {% admonition type=\"danger\" name=\"Careful\" %}Server errors (500) may be temporary. If the issue persists, review your request structure or check for API updates.{% /admonition %}",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/webhookSetSlackInternalError"
                }
              }
            }
          }
        }
      }
    },
    "/webhook.delete.json": {
      "post": {
        "summary": "Delete a webhook",
        "operationId": "webhookDelete",
        "description": "This API endpoint allows users to remove an existing webhook from the system. By making a request to this endpoint with the necessary authentication and webhook details, users can ensure that the specified webhook URL is no longer active or receiving event notifications.<p></p><p>**Endpoint:**<code>POST/webhook.delete.json</code></p>**URL:** <code>https://api.cincopa.com/v2/webhook.delete.json</code>",
        "tags": [
          "Webhook"
        ],
        "parameters": [
          {
            "name": "api_token",
            "in": "query",
            "required": true,
            "example": "AAAAtAURG",
            "schema": {
              "type": "string",
              "description": "A unique key used for authentication. Must be a valid API key provided by the system. Without the valid <code>api_token</code>, the request will be rejected with a 403 Unauthorized error."
            }
          },
          {
            "name": "hook_url",
            "in": "query",
            "required": true,
            "example": "cincopatest",
            "schema": {
              "type": "string"
            },
            "description": "The URL of the webhook to delete. It must be a valid Slack webhook format and should match an existing webhook entry."
          }
        ],
        "responses": {
          "200": {
            "description": "When the webhook is successfully deleted, the API returns a 200 OK response. This response confirms that the specified webhook has been removed from the system. Below are the response parameters with their descriptions and examples.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/successResponse"
                }
              }
            }
          },
          "403": {
            "description": "When a request is unauthorized due to an **invalid/missing/expired** API token, the server returns a JSON response detailing the issue. Below is a breakdown of the response parameters. {% admonition type=\"info\" %} If you receive a 403 Unauthorized error, double-check your API token. {% /admonition %}",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemAuthorize"
                }
              }
            }
          },
          "500": {
            "description": "This error indicates an unexpected failure on the server while processing your request. Unlike client-side errors (e.g., 403), this is unrelated to your input or token and requires server-side intervention. {% admonition type=\"info\" %} If you get a 500 Internal Server Error, retry after a short delay or [contact support](https://features.cincopa.com/contact-us).{% /admonition %} {% admonition type=\"danger\" name=\"Careful\" %}Server errors (500) may be temporary. If the issue persists, review your request structure or check for API updates.{% /admonition %}",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemInternalError"
                }
              }
            }
          }
        }
      }
    },
    "/live.list.json": {
      "get": {
        "summary": "List of live streams",
        "operationId": "liveList",
        "description": "Get all live streams registered in the account. The list will include liveid, rtmp_source is the address to which your source device should transmit, hls_playback_url is the URL of the hls file (m3u8), iframe_embed_code is an embed code for a player that already configured with this live stream.",
        "tags": [
          "Live"
        ],
        "parameters": [
          {
            "name": "api_token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The api_token to authorize the request."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/liveList"
                }
              }
            }
          },
          "403": {
            "description": "Unauthorized, invalid or missing token.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemAuthorize"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemInternalError"
                }
              }
            }
          }
        }
      }
    },
    "/live.create.json": {
      "get": {
        "summary": "Create a live stream",
        "operationId": "liveCreate",
        "tags": [
          "Live"
        ],
        "parameters": [
          {
            "name": "api_token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The api_token to authorize the request."
          },
          {
            "name": "name",
            "in": "query",
            "schema": {
              "type": "string",
              "default": "no name"
            },
            "description": "Give a name to your channel."
          },
          {
            "name": "location",
            "in": "query",
            "schema": {
              "type": "string",
              "default": "us_central"
            },
            "description": "Location of the live server. Available values - us_central, us_east, us_west, eu, uk, au, jp, in, kr, tw, sg, br."
          },
          {
            "name": "type",
            "in": "query",
            "schema": {
              "type": "string",
              "default": "passthrough"
            },
            "description": "Type of live broadcast. Available values` passthrough - broadcast original input only, transcoded - broadcast original input and lower resolutions/bitrate."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/successResponse"
                }
              }
            }
          },
          "403": {
            "description": "Unauthorized, invalid or missing token.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemAuthorize"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/liveCreateInternalError"
                }
              }
            }
          }
        }
      }
    },
    "/live.start.json": {
      "get": {
        "summary": "Start a live stream",
        "operationId": "liveStart",
        "tags": [
          "Live"
        ],
        "parameters": [
          {
            "name": "api_token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The api_token to authorize the request."
          },
          {
            "name": "liveid",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "ID of the live stream, you can get it from live.list."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/liveStart"
                }
              }
            }
          },
          "403": {
            "description": "Unauthorized, invalid or missing token.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemAuthorize"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/liveInternalError"
                }
              }
            }
          }
        }
      }
    },
    "/live.stop.json": {
      "get": {
        "summary": "Stop a live stream",
        "operationId": "liveStop",
        "tags": [
          "Live"
        ],
        "parameters": [
          {
            "name": "api_token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The api_token to authorize the request."
          },
          {
            "name": "liveid",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "ID of the live stream, you can get it from live.list."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/liveStop"
                }
              }
            }
          },
          "403": {
            "description": "Unauthorized, invalid or missing token.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemAuthorize"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/liveInternalError"
                }
              }
            }
          }
        }
      }
    },
    "/live.reset.json": {
      "get": {
        "summary": "Reset a live stream",
        "operationId": "liveReset",
        "tags": [
          "Live"
        ],
        "parameters": [
          {
            "name": "api_token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The api_token to authorize the request."
          },
          {
            "name": "liveid",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "ID of the live stream, you can get it from live.list."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/liveReset"
                }
              }
            }
          },
          "403": {
            "description": "Unauthorized, invalid or missing token.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemAuthorize"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/liveInternalError"
                }
              }
            }
          }
        }
      }
    },
    "/live.delete.json": {
      "get": {
        "summary": "Delete a live stream",
        "operationId": "liveDelete",
        "tags": [
          "Live"
        ],
        "parameters": [
          {
            "name": "api_token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The api_token to authorize the request."
          },
          {
            "name": "liveid",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "ID of the live stream, you can get it from live.list."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/successResponse"
                }
              }
            }
          },
          "403": {
            "description": "Unauthorized, invalid or missing token.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemAuthorize"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/liveDeleteInternalError"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "problemInternalError": {
        "type": "object",
        "properties": {
          "error": {
            "type": "string",
            "description": "A brief description of the error type that occurred.",
            "example": "Exception"
          },
          "exception": {
            "type": "string",
            "example": "System.ApplicationException: did not supported",
            "description": "Provides additional details about the exception, if available. Typically empty; populated only for internal server exceptions (rare)."
          },
          "message": {
            "type": "string",
            "description": "A more specific error message explaining why the request failed. This message helps in debugging authentication issues.",
            "example": "did not supported"
          },
          "runtime": {
            "type": "integer",
            "example": 0,
            "description": "Represents the time taken (in milliseconds) to process the request before failing. Use this to audit latency during authentication. A value of 0 indicates an immediate rejection due to invalid authentication."
          },
          "success": {
            "type": "boolean",
            "description": "Indicates whether the request was successful. Since this is an error response, the value will always be false.",
            "example": false
          }
        }
      },
      "portalCheckInternalError": {
        "type": "object",
        "properties": {
          "error": {
            "type": "string",
            "description": "A brief description of the error type that occurred.",
            "example": "taken"
          },
          "exception": {
            "type": "string",
            "description": "Provides additional details about the exception, if available. Typically empty; populated only for internal server exceptions (rare).",
            "example": ""
          },
          "message": {
            "type": "string",
            "description": "A more specific error message explaining why the request failed. This message helps in debugging authentication issues.",
            "example": "name is already taken, try another name"
          },
          "runtime": {
            "type": "integer",
            "description": "Represents the time taken (in milliseconds) to process the request before failing. Use this to audit latency during authentication. A value of 0 indicates an immediate rejection due to invalid authentication.",
            "example": 0
          },
          "success": {
            "type": "boolean",
            "description": "Indicates whether the request was successful. Since this is an error response, the value will always be false.",
            "example": false
          }
        }
      },
      "portalChangeInternalError": {
        "type": "object",
        "properties": {
          "error": {
            "type": "string",
            "description": "A brief description of the error type that occurred.",
            "example": "not_yours"
          },
          "exception": {
            "type": "string",
            "description": "Provides additional details about the exception, if available. Typically empty; populated only for internal server exceptions (rare).",
            "example": ""
          },
          "message": {
            "type": "string",
            "description": "A more specific error message explaining why the request failed. This message helps in debugging authentication issues.",
            "example": ""
          },
          "runtime": {
            "type": "integer",
            "description": "Represents the time taken (in milliseconds) to process the request before failing. Use this to audit latency during authentication. A value of 0 indicates an immediate rejection due to invalid authentication.",
            "example": 0
          },
          "success": {
            "type": "boolean",
            "description": "Indicates whether the request was successful. Since this is an error response, the value will always be false.",
            "example": false
          }
        }
      },
      "webhookSetInternalError": {
        "type": "object",
        "properties": {
          "error": {
            "type": "string",
            "description": "A brief description of the error type that occurred.",
            "example": "hook_url_is_missing"
          },
          "exception": {
            "type": "string",
            "description": "Provides additional details about the exception, if available. Typically empty; populated only for internal server exceptions (rare).",
            "example": ""
          },
          "message": {
            "type": "string",
            "description": "A more specific error message explaining why the request failed. This message helps in debugging authentication issues.",
            "example": "hook_url can't be empty"
          },
          "runtime": {
            "type": "integer",
            "description": "Represents the time taken (in milliseconds) to process the request before failing. Use this to audit latency during authentication. A value of 0 indicates an immediate rejection due to invalid authentication.",
            "example": 0
          },
          "success": {
            "type": "boolean",
            "description": "Indicates whether the request was successful. Since this is an error response, the value will always be false.",
            "example": false
          }
        }
      },
      "webhookSetSlackInternalError": {
        "type": "object",
        "properties": {
          "error": {
            "type": "string",
            "description": "A brief description of the error type that occurred.",
            "example": "hook_url_is_missing"
          },
          "exception": {
            "type": "string",
            "description": "Provides additional details about the exception, if available. Typically empty; populated only for internal server exceptions (rare).",
            "example": ""
          },
          "message": {
            "type": "string",
            "description": "A more specific error message explaining why the request failed. This message helps in debugging authentication issues.",
            "example": "bad slack hook url"
          },
          "runtime": {
            "type": "integer",
            "description": "Represents the time taken (in milliseconds) to process the request before failing. Use this to audit latency during authentication. A value of 0 indicates an immediate rejection due to invalid authentication.",
            "example": 0
          },
          "success": {
            "type": "boolean",
            "description": "Indicates whether the request was successful. Since this is an error response, the value will always be false.",
            "example": false
          }
        }
      },
      "liveCreateInternalError": {
        "type": "object",
        "properties": {
          "error": {
            "type": "string",
            "example": "api-live-channels"
          },
          "exception": {
            "type": "string",
            "example": ""
          },
          "message": {
            "type": "string",
            "example": "user is limited to 0 live channels, you have 0 active - please upgrade your plan"
          },
          "runtime": {
            "type": "integer",
            "example": 0
          },
          "success": {
            "type": "boolean",
            "example": false
          }
        }
      },
      "liveInternalError": {
        "type": "object",
        "properties": {
          "error": {
            "type": "string",
            "example": "bad_state_or_liveid"
          },
          "exception": {
            "type": "string",
            "example": ""
          },
          "message": {
            "type": "string",
            "example": ""
          },
          "runtime": {
            "type": "integer",
            "example": 0
          },
          "success": {
            "type": "boolean",
            "example": false
          }
        }
      },
      "liveDeleteInternalError": {
        "type": "object",
        "properties": {
          "error": {
            "type": "string",
            "example": "error"
          },
          "exception": {
            "type": "string",
            "example": ""
          },
          "message": {
            "type": "string",
            "example": "liveid is missing"
          },
          "runtime": {
            "type": "integer",
            "example": 0
          },
          "success": {
            "type": "boolean",
            "example": false
          }
        }
      },
      "problemAuthorize": {
        "type": "object",
        "properties": {
          "error": {
            "type": "string",
            "description": "A brief description of the error type that occurred.{% admonition type=\"warning\" name=\"Note\" %}✅ **For <code>api_token</code>:** Ensure the <code>api_token</code> is included in the query string.</p><p> ✅**For expired token:** [Generate a new token](https://www.cincopa.com/help/how-to-get-an-api-key/#:~:text=through%20your%20account.-,How%20can%20I%20create%20an%20API%20token%3F,-To%20create%20API) via the Cincopa Dashboard </p><p>✅**For incorrect permissions:** Verify the token has gallery.create scope. Update scopes in the dashboard if needed.</p><p>✅**For Malformed Token:** Ensure no typos or truncation. Tokens are case-sensitive.</p>{% /admonition %}",
            "example": "Unauthorized, invalid or missing token"
          },
          "exception": {
            "type": "string",
            "example": "",
            "description": "Provides additional details about the exception, if available. Typically empty; populated only for internal server exceptions (rare)."
          },
          "message": {
            "type": "string",
            "description": "A more specific error message explaining why the request failed. This message helps in debugging authentication issues.",
            "example": "api_token is missing or bad api_token"
          },
          "runtime": {
            "type": "integer",
            "example": 0,
            "description": "Represents the time taken (in milliseconds) to process the request before failing. Use this to audit latency during authentication. A value of 0 indicates an immediate rejection due to invalid authentication."
          },
          "success": {
            "type": "boolean",
            "description": "Indicates whether the request was successful. Since this is an error response, the value will always be false.",
            "example": false
          }
        }
      },
      "successResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "example": true,
            "description": "A flag indicating the success of the request. **True** means the request was processed successfully, while **false** indicates failure"
          },
          "runtime": {
            "type": "integer",
            "example": 44,
            "description": "The total time (milliseconds) taken by the server to process the request and return a response."
          }
        }
      },
      "ping": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "example": true,
            "description": "Indicate whether the request was successful. <code>true</code> for success and <code>false</code> for failure."
          },
          "accemail": {
            "type": "string",
            "description": "The email address associated with the account. Must be a valid email format",
            "example": "example@cincopa.com"
          },
          "accid": {
            "type": "string",
            "description": "A unique identifier for the account. Must be a unique string.",
            "example": "okGbyjhVW40d"
          },
          "accid_num": {
            "type": "integer",
            "description": "A numeric representation of the account ID. Must be a positive integer.",
            "example": "0"
          },
          "permissions": {
            "type": "string",
            "description": "A list of permissions granted to the user. Follows a regex pattern-based permission system.",
            "example": "|asset.*|gallery.*|portal.*|webhook.*|live.*|token.*|account.read|"
          },
          "ping": {
            "type": "string",
            "example": "pong",
            "description": "A sample response value used for testing connectivity. Fixed value."
          },
          "runtime": {
            "type": "integer",
            "example": 77,
            "description": "The time taken to process the request. Measured in milliseconds."
          },
          "useremail": {
            "type": "string",
            "description": "The email address associated with the request. Must be a valid email address.",
            "example": "test@company.com"
          },
          "userid": {
            "type": "string",
            "description": "A unique identifier for the user. Must be a unique string.",
            "example": "ooGAyjfgW00d"
          },
          "userid_num": {
            "type": "integer",
            "description": "A numeric representation of the user ID. Must be a non-negative integer.",
            "example": "15786836"
          }
        }
      },
      "tokenTemp": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "example": true,
            "description": "Indicates whether the request was successful. Accepts <code>true</code> for success and <code>false</code> for failure."
          },
          "runtime": {
            "type": "integer",
            "example": 0,
            "description": "The time taken to process the request, measured in milliseconds. Must be a non-negative integer."
          },
          "token": {
            "type": "string",
            "example": "string",
            "description": "A temporary authentication token. Must be a valid string."
          }
        }
      },
      "galleryCreate": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "example": true,
            "description": "Indicates whether the request was executed successfully. A value of true confirms a successful gallery creation, while false signifies failure."
          },
          "runtime": {
            "type": "integer",
            "example": 77,
            "description": "Represents the time (in milliseconds) taken to process the request. This can be useful for monitoring performance and response times."
          },
          "fid": {
            "type": "string",
            "example": "string",
            "description": "A unique identifier assigned to the newly created gallery. This ID is required for further operations, such as updating or retrieving the gallery details."
          },
          "upload_url": {
            "type": "string",
            "format": "uri",
            "example": "https://mediaupload.cincopa.com/post.jpg?uid={USER_ID}&d=AAAAcAAJFOAAAAAAAAtAURG&hash={HASH}&addtofid={FID}",
            "description": "The direct URL where media files can be uploaded to the newly created gallery. This endpoint securely uploads files directly to the gallery. Expires after 24 hours."
          },
          "claimed": {
            "type": "string",
            "example": "original",
            "description": "Indicates gallery ownership. original = owned by the creator; shared = inherited from a master gallery."
          },
          "spfid": {
            "type": "string",
            "example": "string",
            "description": "An additional unique identifier related to the gallery, used for tracking gallery creation workflows. Rarely needed for integrations."
          },
          "workspace": {
            "type": "string",
            "example": "general",
            "description": "Defines the virtual container where media channels are organized. Workspaces help manage multiple media assets effectively."
          }
        }
      },
      "galleryList": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "example": true,
            "description": "Indicates whether the request was successful. <code>true</code> for success, <code>false</code> for failure."
          },
          "runtime": {
            "type": "integer",
            "example": 15,
            "description": "Time (milliseconds) taken to process the request."
          },
          "workspace": {
            "type": "string",
            "example": "",
            "description": "This contains the workspace associated with the request. It is generally used to indicate the workspace or environment the request was made in."
          },
          "galleries": {
            "type": "array",
            "example": [
              {
                "fid": "string",
                "name": "Gallery name",
                "description": "Gallery description",
                "upload_url": "https://mediaupload.cincopa.com/post.jpg?uid={USER_ID}&d=AAAAcAAJFOAAAAAAAAtAURG&hash={HASH}&addtofid={FID}",
                "tags": "",
                "modified": "2025-01-21T20:33:36.9500000Z",
                "syncstatus": "synced"
              }
            ],
            "description": "This is an array of galleries returned by the API, containing detailed information for each gallery."
          },
          "tag_cloud": {
            "type": "object",
            "example": {
              "notags": 15,
              "master-gallery": 35
            },
            "description": "This object contains information about the tags related to the galleries."
          },
          "items_data": {
            "type": "object",
            "example": {
              "page": 1,
              "items_per_page": 50,
              "items_count": 435,
              "page_count": 9
            },
            "description": "This object defines pagination information related to the galleries returned. It shows the number of items per page and the total number of items."
          }
        }
      },
      "galleryItems": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "example": true,
            "description": "Indicates whether the request was successful. <code>true</code> for success, <code>false</code> for failure. Always <code>true</code> for a <code>200</code> response."
          },
          "runtime": {
            "type": "integer",
            "example": 77,
            "description": "Shows how long the request took to process in milliseconds."
          },
          "fid": {
            "type": "string",
            "example": "string",
            "description": "A unique ID for the gallery used to identify it in requests."
          },
          "upload_url": {
            "type": "string",
            "format": "uri",
            "example": "https://mediaupload.cincopa.com/post.jpg?uid={USER_ID}&d=AAAAcAAJFOAAAAAAAAtAURG&hash={HASH}&addtofid={FID}",
            "description": "The URL where the file can be uploaded or accessed. Always a valid URI format."
          },
          "claimed": {
            "type": "string",
            "example": "original",
            "description": "Specifies whether the file is the original or a modified version. Always either \"original\" or a predefined string."
          },
          "spfid": {
            "type": "string",
            "example": "string",
            "description": "An additional unique ID used for tracking or reference. Always a non-empty string."
          },
          "folder": {
            "type": "object",
            "example": {
              "items": [],
              "items_data": {
                "page": 1,
                "items_per_page": 50,
                "items_count": 0,
                "pages_count": 1
              }
            },
            "description": "Contains a list of items in a folder along with metadata. Always includes pagination details, total item count, and page count."
          }
        }
      },
      "galleryDownload": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "example": true,
            "description": "Indicates whether the request was successful. <code>true</code> for success, <code>false</code> for failure."
          },
          "runtime": {
            "type": "integer",
            "example": 77,
            "description": "Shows how long the request took to process in milliseconds."
          },
          "download_link": {
            "type": "string",
            "format": "uri",
            "example": "https://www.cincopa.com/media-platform/runtime/download.aspx?fid={FID}&type={TYPE}&auth={AUTH}",
            "description": "This provides a URL to download the entire gallery as a zip file. The link includes parameters for gallery ID, file type, and authentication."
          }
        }
      },
      "assetList": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "example": true,
            "description": "Indicates whether the request was successful. <code>true</code> for success, <code>false</code> for failure. Always true for a <code>200</code> response."
          },
          "runtime": {
            "type": "integer",
            "example": 77,
            "description": "Specifies the total time taken to process the request, measured in milliseconds."
          },
          "items": {
            "type": "array",
            "example": [],
            "description": "A collection of multiple item objects. Each item represents an individual result returned by the API. The structure depends on the type of data requested."
          },
          "items_data": {
            "type": "object",
            "example": {
              "page": 1,
              "items_per_page": 50,
              "items_count": 0,
              "pages_count": 1
            },
            "description": "An object containing metadata about the list of returned items. It provides information about pagination and the number of items retrieved."
          }
        }
      },
      "assetTags": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "example": true,
            "description": "Indicates whether the request was successful. <code>true</code> for success, <code>false</code> for failure. Always <code>true</code> for a <code>200</code> response."
          },
          "runtime": {
            "type": "integer",
            "example": 77,
            "description": "Specifies the total time taken to process the request, measured in milliseconds."
          },
          "tag_cloud": {
            "type": "object",
            "example": {
              "no-tag": 999,
              "any-tag": 99
            },
            "description": "Displays the count of untagged assets and those with at least one tag, aiding in asset management and filtering."
          }
        }
      },
      "getUploadUrl": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "example": true,
            "description": "Indicates whether the request was successful. <code>true</code> for success, <code>false</code> for failure. Always <code>true</code> for a **200** response."
          },
          "runtime": {
            "type": "integer",
            "example": 77,
            "description": "Specifies the total time taken to process the request, measured in milliseconds."
          },
          "upload_url": {
            "type": "string",
            "format": "uri",
            "example": "https://mediaupload.cincopa.com/post.jpg?uid={UID}&d=AAAAcAAJFOAAAAAAAAtAURG&hash={HAASH}&addtofid={FID}&addtorid={ADD_TO_RID}:thumb",
            "description": "A temporary URL used to upload an asset. This URL should be accessed via an HTTP POST request within the valid timeframe. Modifying its structure may result in an upload failure."
          }
        }
      },
      "uploadFromUrl": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "example": true,
            "description": "Indicates whether the request was successful. <code>true</code> for success, <code>false</code> for failure. Always <code>true</code> for a **200** response."
          },
          "runtime": {
            "type": "integer",
            "example": 77,
            "description": "Specifies the total time taken to process the request, measured in milliseconds."
          },
          "status_id": {
            "type": "string",
            "example": "4dfdfdc39-2dfd-4df3c-82d7-b76sdfdcf2677",
            "description": "A unique identifier assigned to track the upload process. This ID can be used in subsequent API calls to check the status of the upload operation. {% admonition type=\"info\" %} Store the <code>status_id</code> safely, as it is unique per upload request and required for tracking progress—losing it may require reinitiating the upload.{% /admonition %} <p></p>"
          }
        }
      },
      "getUploadToken": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "example": true,
            "description": "Indicates whether the request was successful. **true** for success, **false** for failure. Always true for a **200** response."
          },
          "runtime": {
            "type": "integer",
            "example": 77,
            "description": "Specifies the total time taken to process the request, measured in milliseconds."
          },
          "upload_token": {
            "type": "string",
            "example": "LCJ1aWQiOiJBa0dBeWpoVlcwMGQiLCJleHBp",
            "description": "A unique token that can be used to control access to the invite upload page. This token may be required for authentication or limiting the upload process."
          }
        }
      },
      "portalCheck": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "example": true,
            "description": "Indicates whether the request was successful. <code>true</code> for success, <code>false</code> for failure. Always <code>true</code> for a **200** response."
          },
          "runtime": {
            "type": "integer",
            "example": 77,
            "description": "Specifies the total time taken to process the request, measured in milliseconds."
          },
          "subdomain": {
            "type": "string",
            "example": "available",
            "description": "Specifies whether the requested subdomain is available or not. Possible values may include **available**, **unavailable**, or other relevant status messages."
          }
        }
      },
      "getPortalList": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "example": true,
            "description": "Indicates whether the request was successful. <code>true</code> for success, <code>false</code> for failure. Always <code>true</code> for a **200** response."
          },
          "runtime": {
            "type": "integer",
            "example": 77,
            "description": "Specifies the total time taken to process the request, measured in milliseconds."
          },
          "portals": {
            "type": "array",
            "example": [
              {
                "id": 101,
                "name": "TechDocs Portal",
                "subdomain": "techdocs",
                "created_at": "2024-03-10T12:45:00Z",
                "status": "active"
              }
            ],
            "description": "Contains the list of portals retrieved based on the provided subdomain or all portals if no subdomain is specified."
          }
        }
      },
      "getWebhookList": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "example": true,
            "description": "Indicates whether the request was successful. <code>true</code> for success, <code>false</code> for failure. Always <code>true</code> for a **200** response"
          },
          "runtime": {
            "type": "integer",
            "example": 77,
            "description": "Specifies the total time taken to process the request, measured in milliseconds."
          },
          "webhooks": {
            "type": "array",
            "description": "A collection of webhook objects, where each object contains details of a registered webhook."
          }
        }
      },
      "liveList": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "example": true,
            "description": "Indicates whether the request was successful. <code>true</code> for success, <code>false</code> for failure."
          },
          "runtime": {
            "type": "integer",
            "example": 77,
            "description": "How long the request took to process in second or milisecond."
          },
          "live_streams": {
            "type": "array"
          },
          "usage": {
            "type": "object",
            "example": {
              "max_passthrough_quota": 0,
              "max_transcoded_quota": 0,
              "usage_passthrough": 0,
              "usage_transcoded": 0,
              "history": []
            }
          }
        }
      },
      "liveStart": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "example": true,
            "description": "Indicates whether the request was successful. <code>true</code> for success, <code>false</code> for failure."
          },
          "runtime": {
            "type": "integer",
            "example": 77,
            "description": "How long the request took to process in second or milisecond."
          },
          "state": {
            "type": "string",
            "default": "starting"
          },
          "note": {
            "type": "string",
            "example": "extra charge may apply - please contact your account manager for more info"
          }
        }
      },
      "liveStop": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "example": true,
            "description": "Indicates whether the request was successful. <code>true</code> for success, <code>false</code> for failure."
          },
          "runtime": {
            "type": "integer",
            "example": 77,
            "description": "How long the request took to process in second or milisecond."
          },
          "state": {
            "type": "string",
            "default": "stopped"
          },
          "note": {
            "type": "string",
            "example": "extra charge may apply - please contact your account manager for more info"
          }
        }
      },
      "liveReset": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "example": true,
            "description": "Indicates whether the request was successful. <code>true</code> for success, <code>false</code> for failure."
          },
          "runtime": {
            "type": "integer",
            "example": 77,
            "description": "How long the request took to process in second or milisecond."
          },
          "state": {
            "type": "string",
            "default": "resetting"
          },
          "note": {
            "type": "string",
            "example": "extra charge may apply - please contact your account manager for more info"
          }
        }
      },
      "statusupdate": {
        "type": "object",
        "properties": {
          "progress_bytes": {
            "type": "string",
            "example": 0,
            "description": "Indicates the number of bytes that have been uploaded so far. This helps track the progress of the upload in real time."
          },
          "more": {
            "type": "string",
            "description": "Provides additional information related to the upload process. This field may contain messages or metadata relevant to the request.",
            "example": "string"
          },
          "resid": {
            "type": "string",
            "example": "AAAAcAAJFOAAAAAAAAtAURG",
            "description": "A unique identifier assigned to the uploaded asset. This ID is essential for referencing the asset in future API calls."
          },
          "debug": {
            "type": "string",
            "example": "2025-02-24T09:16:14.8562610-06:00 started... _bytesRecievedTotal=0 _bytesSendTotal=0 url=https://media",
            "description": "Contains debugging information, including timestamps and details about the request, which can help diagnose issues during the upload process."
          },
          "file_size_bytes": {
            "type": "string",
            "example": "62 byte",
            "description": "Indicates the total size of the uploaded file in bytes. This value helps verify the expected file size against the actual upload progress."
          },
          "status": {
            "type": "string",
            "example": "inprogress",
            "description": "Represents the current upload status, which can be **\"inprogress\"** (ongoing), **\"completed\"** (successful), or **\"failed\"** (error occurred)."
          },
          "progress": {
            "type": "string",
            "example": 1,
            "description": "Provides an upload progress indicator. The value can be used to determine how much of the upload is complete."
          },
          "success": {
            "type": "boolean",
            "example": true,
            "description": "Indicates whether the request was successful. <code>true</code> for success, <code>false</code> for failure. Always <code>true</code> for a 200 response"
          },
          "runtime": {
            "type": "integer",
            "example": 77,
            "description": "Specifies the total time taken to process the request, measured in milliseconds."
          }
        }
      },
      "Item": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier for the item",
            "example": "itm_tsla_blueprint",
            "readOnly": true
          },
          "description": {
            "type": "string",
            "description": "Description of the item",
            "example": "Tesla's Blueprint"
          }
        }
      }
    },
    "securitySchemes": {
      "bearerAuth": {
        "type": "http"
      }
    }
  }
}