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. 

       |Key Functionalities| Endpoint| Purpose |
      |---|---|---|
       |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.|
      |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.|
  - 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. 

        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. 

       |Key Functionalities| Endpoint| Purpose |
      |---|---|---|
       |Creating Galleries|<code>/gallery.create.json</code>| Establish new media galleries to organize your content effectively.|
      | 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.|

      | Deleting Galleries| <code>/gallery.delete.json</code>| Remove galleries
      that are no longer needed, ensuring your media library stays current.|

      | Adding Items to Galleries| <code>/gallery.add_item.json</code>|
      Incorporate new media assets into existing galleries to enhance your
      content offerings.| 

      | Removing Items from Galleries| <code>/gallery.remove_item.json</code>|
      Manage your galleries by removing outdated or unwanted media assets.|

      | Listing Galleries| <code>/gallery.list.json</code>| Retrieve a list of
      all galleries in your account for easy management and overview.| 

      | Retrieving Gallery Items| <code>/gallery.get_items.json</code>| Access
      detailed information about the media assets contained within a specific
      gallery.|

      | Setting Master Media| <code>/gallery.set_master.json</code>| Designate a
      primary media asset within a gallery to highlight featured content.| 
  - 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. 

        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. 

       |Key Functionalities| Endpoint| Purpose |
      |---|---|---|
       |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.|
      | 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.|

      | 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.|

      | 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.| 

      | Delete an asset| <code>/asset.delete.json</code>| Delete an asset for
      good, it will be removed also from any gallery that exists.|

      | 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.| 

      | 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. |

      | 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.| 

      | Abort uploading process.|
      <code>/asset.upload_from_url_abort.json</code>| Use this method to abort
      an upload.| 
  - 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. 

        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. 

       |Key Functionalities| Endpoint| Purpose |
      |---|---|---|
       |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.|
      | 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. 
  - 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. 

        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:

       |Key Functionalities| Endpoint| Purpose |
      |---|---|---|
       |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.|
      | 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.|

      | 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.|

      | Remove subdomain| <code>/portal.remove.json</code>| Deletes a portal
      from the system. This operation is irreversible and permanently removes
      all associated data.| 

      | 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.|

      | 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. 
  - 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. 

        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.

       |Key Functionalities| Endpoint| Purpose |
      |---|---|---|
       |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.|
      | Create/update webhook |<code>/webhook.set.json</code>| Registers a new
      webhook by specifying a callback URL and event types to trigger
      notifications.|

      | 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.|

      | Delete a webhook| <code>/webhhook.delete.json</code>| Deletes an
      existing webhook, stopping further event notifications and removing it
      from the system.| 
  - 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
            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: page=2
        - 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
          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
      scheme: bearer
