openapi: 3.0.0
servers:
  - url: https://api.lambdatest.com/screenshots/v1
info:
  title: LambdaTest Screenshots API Documentation
  version: 1.0.1
  x-apisguru-categories:
    - developer_tools
  x-origin:
    - format: openapi
      url: https://screenshot-public-api.s3.amazonaws.com/openapi.yaml
      version: "3.0"
  x-providerName: lambdatest.com
paths:
  /:
    post:
      description: Start Screenshot Test
      operationId: Start Screenshot Test
      requestBody:
        content:
          application/json:
            examples:
              objectExample:
                $ref: "#/components/examples/objectExample"
              objectExample2:
                $ref: "#/components/examples/objectExample2"
              objectExample3:
                $ref: "#/components/examples/objectExample3"
              objectExample4:
                $ref: "#/components/examples/objectExample4"
              objectExample5:
                $ref: "#/components/examples/objectExample5"
              objectExample6:
                $ref: "#/components/examples/objectExample6"
            schema:
              $ref: "#/components/schemas/screenshot-payload"
        description: start screenshot test payload.
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/start-screenshot-success"
          description: successful operation
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/start-screenshot-bad-request"
          description: Bad Request
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AccessDenied"
          description: Access denied. Auth error.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Forbidden"
          description: Access denied. Auth error.
      security:
        - basicAuth: []
      summary: Start Screenshot Test
      tags:
        - Start Screenshot Test
  /devices:
    get:
      description: Fetch all os devices combinations available on lambdatest platform.
      operationId: devices
      parameters:
        - description: Fetch details for a particular OS
          in: query
          name: os
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/os-devices"
          description: successful operation
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AccessDenied"
          description: Access denied. Auth error.
      security:
        - basicAuth: []
      summary: Fetch all available device combinations.
      tags:
        - Get Devices
  /locations:
    get:
      description: Fetch list of available Geolocations
      operationId: Locations
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/locations"
          description: successful operation
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AccessDenied"
          description: Access denied. Auth error.
      security:
        - basicAuth: []
      summary: Fetch Locations
      tags:
        - Get Locations
  /os-browsers:
    get:
      description: Fetch all os browsers combinations available on lambdatest platform.
      operationId: os-browsers
      parameters:
        - description: Fetch details for a particular OS
          in: query
          name: os
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/os-browsers"
          description: successful operation
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AccessDenied"
          description: Access denied. Auth error.
      security:
        - basicAuth: []
      summary: Fetch all available os-browser combinations.
      tags:
        - Get OS-Browsers
  /profiles:
    get:
      description: Fetch login profiles
      operationId: Profiles
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/profiles"
          description: successful operation
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AccessDenied"
          description: Access denied. Auth error.
      security:
        - basicAuth: []
      summary: Fetch login profiles
      tags:
        - Get Profiles
  /resolutions:
    get:
      description: Fetch all available resolution on different OS
      operationId: Resolutions
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/resolutions"
          description: successful operation
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AccessDenied"
          description: Access denied. Auth error.
      security:
        - basicAuth: []
      summary: Fetch all available resolution on different OS
      tags:
        - Get Resolutions
  "/stop/{test_id}":
    put:
      description: Stop specified screenshot test
      operationId: stop screenshots test
      parameters:
        - description: Test ID that details you want to stop
          explode: false
          in: path
          name: test_id
          required: true
          schema:
            type: string
          style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/stop-screenshot-success"
          description: successful operation
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AccessDenied"
          description: Access denied. Auth error.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Forbidden"
          description: Access denied. Auth error.
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/stop-screenshot-not-found"
          description: Resource not found
      security:
        - basicAuth: []
      summary: Stop specified screenshot test
      tags:
        - Stop Screenshot Test
  "/{test_id}":
    get:
      description: To fetch specified screenshot details
      operationId: screenshots
      parameters:
        - description: Test ID that details you want to fetch
          explode: false
          in: path
          name: test_id
          required: true
          schema:
            type: string
          style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/screenshot-details"
          description: successful operation
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AccessDenied"
          description: Access denied. Auth error.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Forbidden"
          description: Access denied. Auth error.
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/screenshot-not-found"
          description: Resource not found
      security:
        - basicAuth: []
      summary: Fetch specified screenshot details
      tags:
        - Get Screenshots
  "/{test_id}/zip":
    get:
      description: Fetch Zipped Screenshots
      operationId: ZippedScreenshots
      parameters:
        - description: Test ID that Zipped Screenshots you want to fetch
          explode: false
          in: path
          name: test_id
          required: true
          schema:
            type: string
          style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/zipped-screenshots-success"
          description: successful operation
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AccessDenied"
          description: Access denied. Auth error.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Forbidden"
          description: Access denied. Auth error.
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/screenshot-not-found"
          description: Resource not found
      security:
        - basicAuth: []
      summary: Fetch Zipped Screenshots
      tags:
        - Get Zipped Screenshots
components:
  examples:
    objectExample:
      summary: Screenshot Test
      value:
        configs:
          android 9.0:
            devices:
              - galaxy s9 plus
          ios 12.0:
            devices:
              - iphone xr
              - iphone xs
              - iphone xs max
          macos mojave:
            chrome:
              - "76"
              - "75"
            firefox:
              - "67"
              - "66"
            opera:
              - "58"
              - "57"
            safari:
              - "12"
          windows 10:
            chrome:
              - "76"
              - "75"
            firefox:
              - "67"
              - "66"
            ie:
              - "11"
            opera:
              - "58"
              - "57"
        defer_time: 5
        email: true
        layout: portrait
        mac_res: 1024x768
        smart_scroll: true
        url: https://www.lambdatest.com
        win_res: 1366X768
    objectExample2:
      summary: Screenshot Test with Tunnel
      value:
        configs:
          android 9.0:
            devices:
              - galaxy s9 plus
          ios 12.0:
            devices:
              - iphone xr
              - iphone xs
              - iphone xs max
          macos mojave:
            chrome:
              - "76"
              - "75"
            firefox:
              - "67"
              - "66"
            opera:
              - "58"
              - "57"
            safari:
              - "12"
          windows 10:
            chrome:
              - "76"
              - "75"
            firefox:
              - "67"
              - "66"
            ie:
              - "11"
            opera:
              - "58"
              - "57"
        defer_time: 5
        email: true
        layout: portrait
        mac_res: 1024x768
        smart_scroll: true
        tunnel: true
        url: https://www.lambdatest.com
        win_res: 1366X768
    objectExample3:
      summary: Screenshot Test with Basic Authentication
      value:
        configs:
          android 9.0:
            devices:
              - galaxy s9 plus
          ios 12.0:
            devices:
              - iphone xr
              - iphone xs
              - iphone xs max
          macos mojave:
            chrome:
              - "76"
              - "75"
            firefox:
              - "67"
              - "66"
            opera:
              - "58"
              - "57"
          windows 10:
            chrome:
              - "76"
              - "75"
            firefox:
              - "67"
              - "66"
            ie:
              - "11"
            opera:
              - "58"
              - "57"
        defer_time: 5
        email: true
        layout: portrait
        mac_res: 1024x768
        password: password
        smart_scroll: true
        url: https://httpbin.org/basic-auth/username/password
        username: username
        win_res: 1366X768
    objectExample4:
      summary: Screenshot Test with Callback Url
      value:
        callbackurl: https://www.example.com
        configs:
          android 9.0:
            devices:
              - galaxy s9 plus
          ios 12.0:
            devices:
              - iphone xr
              - iphone xs
              - iphone xs max
          macos mojave:
            chrome:
              - "76"
              - "75"
            firefox:
              - "67"
              - "66"
            opera: null
          windows 10:
            chrome:
              - "76"
              - "75"
            firefox:
              - "67"
              - "66"
            ie:
              - "11"
            opera:
              - "58"
              - "57"
        defer_time: 5
        email: true
        mac_res: 1024x768
        url: https://www.lambdatest.com
        win_res: 1366X768
    objectExample5:
      summary: Screenshot Test with Login
      value:
        configs:
          macos mojave:
            chrome:
              - "76"
              - "75"
            firefox:
              - "67"
              - "66"
          windows 10:
            chrome:
              - "76"
              - "75"
            firefox:
              - "67"
              - "66"
            ie:
              - "11"
            opera:
              - "58"
              - "57"
        defer_time: 5
        email: true
        mac_res: 1024x768
        profile_id: lambda-login
        url: https://www.lambdatest.com
        win_res: 1366X768
    objectExample6:
      summary: Screenshot Test with Geolocation
      value:
        configs:
          macos mojave:
            chrome:
              - "76"
              - "75"
            firefox:
              - "67"
              - "66"
          windows 10:
            chrome:
              - "76"
              - "75"
            firefox:
              - "67"
              - "66"
            ie:
              - "11"
            opera:
              - "58"
              - "57"
        country_code: US
        defer_time: 5
        email: true
        mac_res: 1024x768
        url: https://www.lambdatest.com
        win_res: 1366X768
  schemas:
    AccessDenied:
      properties:
        message:
          example: Unauthorized
          type: string
    Forbidden:
      properties:
        message:
          example: Screenshot API is supported only in our premium plans. Please upgrade.
          type: string
    android-7.0:
      properties:
        devices:
          example:
            - galaxy j7 max
            - galaxy s8
            - galaxy s8+
            - galaxy tab s3 9.3
            - huawei honor 6x
            - nexus 5x
            - nexus 6p
            - oppo r9
          items:
            type: string
          type: array
      type: object
    android-9.0:
      properties:
        devices:
          example:
            - galaxy s9 plus
          items:
            type: string
          type: array
      type: object
    browsers:
      properties:
        chrome:
          example:
            - "76"
            - "75"
          items:
            type: string
          type: array
        firefox:
          example:
            - "67"
            - "66"
          items:
            type: string
          type: array
        opera:
          example:
            - "55"
            - "54"
          items:
            type: string
          type: array
      type: object
    ios-12.0:
      properties:
        devices:
          example:
            - iphone xr
            - iphone xs
            - iphone xs max
          items:
            type: string
          type: array
      type: object
    locations:
      properties:
        locations:
          items:
            properties:
              code:
                example: US
                type: string
              name:
                example: United States
                type: string
            type: object
          type: array
      type: object
    os-browsers:
      properties:
        macos mojave:
          $ref: "#/components/schemas/browsers"
        windows 10:
          $ref: "#/components/schemas/browsers"
    os-devices:
      properties:
        android 7.0:
          $ref: "#/components/schemas/android-7.0"
        ios 12.0:
          $ref: "#/components/schemas/ios-12.0"
    profiles:
      properties:
        profiles:
          items:
            properties:
              name:
                example: lambda-login
                type: string
              profile_config:
                properties:
                  credentials:
                    properties:
                      password:
                        example: password
                        type: string
                      username:
                        example: name
                        type: string
                    type: object
                  locators:
                    properties:
                      password:
                        properties:
                          type:
                            example: name
                            type: string
                          value:
                            example: password
                            type: string
                        type: object
                      submit:
                        properties:
                          type:
                            example: css
                            type: string
                          value:
                            example: button.btn-lg
                            type: string
                        type: object
                      username:
                        properties:
                          type:
                            example: name
                            type: string
                          value:
                            example: email
                            type: string
                        type: object
                    type: object
                  login_url:
                    example: https://accounts.lambdatest.com/login
                    type: string
                  profile_name:
                    example: lambda-login
                    type: string
                type: object
            type: object
          type: array
      type: object
    res_list:
      example:
        - 1024x768
        - 1280x1024
      items:
        type: string
      type: array
    resolutions:
      properties:
        mac_res:
          $ref: "#/components/schemas/res_list"
        win_res:
          $ref: "#/components/schemas/res_list"
    screenshot-details:
      $ref: "#/components/schemas/screenshot-test-response"
    screenshot-not-found:
      properties:
        message:
          example: No data found
          type: string
        reason:
          example: test_id is invalid
          type: string
    screenshot-payload:
      properties:
        callback_url:
          example: https://www.example.com
          type: string
        configs:
          properties:
            macos mojave:
              $ref: "#/components/schemas/browsers"
            windows 10:
              $ref: "#/components/schemas/browsers"
          type: object
        defer_time:
          example: 5
          type: number
        email:
          example: true
          type: boolean
        mac_res:
          example: 1024x768
          type: string
        password:
          example: password
          type: string
        tunnel:
          example: true
          type: boolean
        tunnel_identifier:
          example: tunnel
          type: string
        url:
          example: https://www.lambdatest.com
          type: string
        username:
          example: admin
          type: string
        win_res:
          example: 1366X768
          type: string
      type: object
    screenshot-test-response:
      properties:
        callback_url:
          example: https://www.example.com
          type: string
        defer_time:
          example: 5
          type: number
        screenshots:
          items:
            $ref: "#/components/schemas/screenshot-type"
          type: array
        test_id:
          example: TES100968331562237283314836
          type: string
        test_status:
          example: completed
          type: string
        url:
          example: https://www.lambdatest.com
          type: string
      type: object
    screenshot-type:
      properties:
        activity_id:
          example: ACT100968331562237283340194
          type: string
        browser:
          example: chrome
          type: string
        browser_version:
          example: "76"
          type: string
        os:
          example: windows 10
          type: string
        resolution:
          example: 1024x768
          type: string
        screenshot_url:
          example: https://s3.amazonaws.com/s3-screenshots/prod/ACT100968331562237283340194/screenshot/win-cr-76.0.png
          type: string
        status:
          example: completed
          type: string
        thumbnail_url:
          example: https://s3.amazonaws.com/s3-screenshots/prod/ACT100968331562237283340194/screenshot/win-cr-76.0.png
          type: string
      type: object
    start-screenshot-bad-request:
      properties:
        message:
          example: The os, browser, browser_version combination is either unsupported or doesn't exist. Please try again with a different combination.
          type: string
      type: object
    start-screenshot-success:
      properties:
        test_id:
          example: TES100968331562243938913767
          type: string
      type: object
    stop-screenshot-not-found:
      properties:
        message:
          example: No active Screenshot test found for this test_id
          type: string
    stop-screenshot-success:
      properties:
        message:
          example: Test stopped successfully
          type: string
    zipped-screenshots-success:
      properties:
        url:
          example: https://s3-screenshots.s3.amazonaws.com/screenshots/TES1009632231568637527345629.zip
          type: string
      type: object
  securitySchemes:
    basicAuth:
      scheme: basic
      type: http
