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

# Upload a gallery image from URL

> Download an image from a public http(s) URL server-side and store it in the gallery (up to 20 MB). Returns the created gallery image, including its CDN url.



## OpenAPI

````yaml https://backend-v2.landerlab.workers.dev/api/v2/openapi.json post /api/v2/workspaces/{workspaceId}/gallery/url/upload
openapi: 3.1.0
info:
  title: LanderLab API
  version: 2.0.0
  description: >-
    LanderLab public API. Authenticate with an API key using the X-API-Key
    header.
servers:
  - url: https://api.landerlab.dev
    description: Production
security: []
tags:
  - name: Account
    description: >-
      Discover the organization and workspaces your API key can access. Start
      here.
  - name: Workspaces
    description: List and manage workspaces.
  - name: Landers
    description: Create, update, publish and manage landers.
  - name: A/B Testing
    description: Manage variants and split-test weights.
  - name: Editor
    description: Load and save lander content and settings.
  - name: Analytics
    description: Query unified analytics across workspaces, landers and variants.
  - name: Engagement
    description: >-
      Per-lander engagement reports: engagement rate, scroll depth, attention,
      clicks, web vitals, JS errors and live visitors.
  - name: Leads
    description: Retrieve captured leads.
  - name: Integrations
    description: Manage account-level integrations.
  - name: Lander Integrations
    description: Attach and toggle integrations on landers.
  - name: Domains
    description: Manage custom domains.
  - name: Folders
    description: Organize landers into folders.
paths:
  /api/v2/workspaces/{workspaceId}/gallery/url/upload:
    post:
      tags:
        - Gallery
      summary: Upload a gallery image from URL
      description: >-
        Download an image from a public http(s) URL server-side and store it in
        the gallery (up to 20 MB). Returns the created gallery image, including
        its CDN url.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                url:
                  type: string
                  description: Public http(s) URL of the image
                name:
                  type: string
                  description: Display name in the gallery
                alt:
                  type: string
                  description: Alt text
                folderId:
                  type:
                    - integer
                    - 'null'
                scope:
                  type: string
                  enum:
                    - all
                    - workspace
              required:
                - url
      responses:
        '200':
          description: Uploaded
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                  image:
                    type: object
                    properties:
                      id:
                        type: number
                      name:
                        type: string
                      alt:
                        type:
                          - string
                          - 'null'
                      url:
                        type: string
                      width:
                        type:
                          - number
                          - 'null'
                      height:
                        type:
                          - number
                          - 'null'
                      size:
                        type:
                          - number
                          - 'null'
                      originalFormat:
                        type:
                          - string
                          - 'null'
                      folderId:
                        type:
                          - number
                          - 'null'
                      workspaceId:
                        type:
                          - number
                          - 'null'
                      createdAt:
                        type: string
                    required:
                      - id
                      - name
                      - alt
                      - url
                      - width
                      - height
                      - size
                      - originalFormat
                      - folderId
                      - workspaceId
                      - createdAt
                    additionalProperties: false
                required:
                  - message
                  - image
                additionalProperties: false
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                  - error
                additionalProperties: false
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                  - error
                additionalProperties: false
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                  - error
                additionalProperties: false
      security:
        - ApiKeyAuth: []
components:
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
      description: API key with ll_live_ prefix

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.