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

# Advanced exercise filtering

> Filter exercises by multiple criteria with fuzzy search support and cursor-based pagination.



## OpenAPI

````yaml /api-reference/exercisedb-v2/exercisedb-v2.json get /api/v1/exercises
openapi: 3.1.0
info:
  version: 1.0.0
  title: EXERCISEDB V2 API
  description: >-

    EXERCISEDB  V2 is a comprehensive, multipurpose exercise dataset designed
    for production-grade fitness applications. With 11,000+ structured
    exercises, 15,000+ demonstration videos, and 20,000+ images, it provides
    everything developers need to build rich, data-driven fitness experiences.


    Each exercise includes detailed muscle targeting, secondary muscle
    engagement, required equipment, exercise type classification, step-by-step
    instructions, pro tips, exercise variations, and related exercise
    recommendations. Media is served through a fast CDN in multiple resolutions
    from 360p to 1080p, with video demonstrations included for every exercise.


    Built for a wide range of use cases including fitness apps, physiotherapy
    platforms, personal training tools, workout planners, strength training
    programs, and educational health platforms.


    ## 🔗 Useful Links:


    | | |

    |---|---|

    |  Docs | [docs.ascendapi.com](https://docs.ascendapi.com) |

    |  Website | [ascendapi.com](https://ascendapi.com) |

    |  RapidAPI | [Subscribe
    Here](https://rapidapi.com/ascendapi/api/edb-with-videos-and-images-by-ascendapi)
    |

    |  GitHub |
    [github.com/exercisedb](https://github.com/exercisedb/exercisedb-api) |



    **Built with ❤️ by [AscendAPI](https://www.ascendapi.com)**
      
servers:
  - url: https://edb-with-videos-and-images-by-ascendapi.p.rapidapi.com
    description: |-
      RapidAPI Production (X-RapidAPI-Key Required) 💼
      • Subscription-based plans
      • Basic → Pro → Ultra → Mega tiers
      • without rate limits & more data
      • Reliable production service
security: []
paths:
  /api/v1/exercises:
    get:
      tags:
        - exercises
      summary: Advanced exercise filtering
      description: >-
        Filter exercises by multiple criteria with fuzzy search support and
        cursor-based pagination.
      operationId: v1.FetchExerciseByFilterApi
      parameters:
        - schema:
            type: string
            description: Filter exercises by name. Supports fuzzy matching.
            title: Exercise Name
            example: Bench Press
          required: false
          name: name
          in: query
        - schema:
            type: string
            description: >-
              Filter exercises by keywords. Use comma-separated values for
              multiple keywords.
            title: Keywords
            example: chest workout,barbell
          required: false
          name: keywords
          in: query
        - schema:
            type: string
            description: >-
              Filter exercises by primary target muscles. Use comma-separated
              values for multiple muscles.
            title: Target Muscles
            example: Pectoralis Major Clavicular Head,Deltoid Anterior
          required: false
          name: targetMuscles
          in: query
        - schema:
            type: string
            description: >-
              Filter exercises by secondary muscles. Use comma-separated values
              for multiple muscles.
            title: Secondary Muscles
            example: Triceps Brachii,Deltoid Anterior
          required: false
          name: secondaryMuscles
          in: query
        - schema:
            type: string
            description: Filter exercises by type (e.g., strength, cardio).
            title: Exercise Type
            example: strength
          required: false
          name: exerciseType
          in: query
        - schema:
            type: string
            description: >-
              Filter exercises by body parts. Use comma-separated values for
              multiple body parts.
            title: Body Parts
            example: Chest,Shoulders
          required: false
          name: bodyParts
          in: query
        - schema:
            type: string
            description: >-
              Filter exercises by required equipment. Use comma-separated values
              for multiple equipment types.
            title: Equipments
            example: Barbell,Dumbbell
          required: false
          name: equipments
          in: query
        - schema:
            type: string
            description: 'Maximum number of results to return (min: 1, max: 25, default: 10)'
            title: Limit
            example: '10'
          required: false
          name: limit
          in: query
        - schema:
            type: string
            description: Exercise ID to paginate after (for forward pagination)
            title: After Cursor
          required: false
          name: after
          in: query
        - schema:
            type: string
            description: Exercise ID to paginate before (for backward pagination)
            title: Before Cursor
          required: false
          name: before
          in: query
      responses:
        '200':
          description: Retrieve exercises by search filters
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    description: Indicates whether the request was successful
                    example: true
                  meta:
                    type: object
                    properties:
                      total:
                        type: number
                        description: Total number of exercises matching the filters
                        example: 12778
                      hasNextPage:
                        type: boolean
                        description: Whether there are more results after the current page
                        example: true
                      hasPreviousPage:
                        type: boolean
                        description: Whether there are results before the current page
                        example: false
                      nextCursor:
                        type: string
                        description: Cursor for the next page (exercise ID)
                      previousCursor:
                        type: string
                        description: Cursor for the previous page (exercise ID)
                    required:
                      - total
                      - hasNextPage
                      - hasPreviousPage
                    description: Metadata about cursor-based pagination
                    title: Cursor Pagination Metadata
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        exerciseId:
                          type: string
                          description: The id of the exercise
                          example: exr_41n2hxnFMotsXTj3
                        name:
                          type: string
                          description: The name of the exercise.
                          example: Bench Press
                        equipments:
                          type: array
                          items:
                            type: string
                          description: List of equipment required for the exercise.
                          example:
                            - Barbell
                        bodyParts:
                          type: array
                          items:
                            type: string
                          description: Primary body parts targeted by the exercise.
                          example:
                            - Chest
                        exerciseType:
                          type: string
                          description: Type of exercise (e.g., cardio,strength).
                          example: strength
                        targetMuscles:
                          type: array
                          items:
                            type: string
                          description: Primary muscles targeted by the exercise.
                          example:
                            - Pectoralis Major Clavicular Head
                        secondaryMuscles:
                          type: array
                          items:
                            type: string
                          description: Secondary muscles engaged during the exercise.
                          example:
                            - Deltoid Anterior
                            - Pectoralis Major Clavicular Head
                            - Triceps Brachii
                        imageUrl:
                          type: string
                          description: URL of the exercise image
                          title: imageUrl of exercises
                          example: ''
                        keywords:
                          type: array
                          items:
                            type: string
                          description: >-
                            Keywords associated with the exercise for
                            searchability.
                          example:
                            - Chest workout with barbell
                            - Barbell bench press exercise
                            - Strength training for chest
                            - Upper body workout with barbell
                            - Barbell chest exercises
                            - Bench press for chest muscles
                            - Building chest muscles with bench press
                            - Chest strengthening with barbell
                            - Bench press workout routine
                            - Barbell exercises for chest muscle growth
                      required:
                        - exerciseId
                        - name
                        - equipments
                        - bodyParts
                        - exerciseType
                        - targetMuscles
                        - secondaryMuscles
                        - keywords
                    description: Array of exercises matching the filter criteria
                    title: Filtered Exercise Results
                required:
                  - success
                  - meta
                  - data
        '400':
          description: >-
            The server cannot or will not process the request due to something
            that is perceived to be a client error (e.g., malformed request
            syntax, invalid request message framing, or deceptive request
            routing).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrBadRequest'
        '401':
          description: >-
            Although the HTTP standard specifies "unauthorized", semantically
            this response means "unauthenticated". That is, the client must
            authenticate itself to get the requested response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrUnauthorized'
        '403':
          description: >-
            The client does not have access rights to the content; that is, it
            is unauthorized, so the server is refusing to give the requested
            resource. Unlike 401 Unauthorized, the client's identity is known to
            the server.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrForbidden'
        '404':
          description: >-
            The server cannot find the requested resource. In the browser, this
            means the URL is not recognized. In an API, this can also mean that
            the endpoint is valid but the resource itself does not exist.
            Servers may also send this response instead of 403 Forbidden to hide
            the existence of a resource from an unauthorized client. This
            response code is probably the most well known due to its frequent
            occurrence on the web.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrNotFound'
        '405':
          description: >-
            The request method is not supported by the target resource. The
            server must generate an Allow header field in a 405 response
            containing a list of the target resource's currently supported
            methods.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrMethodNotAllowed'
        '409':
          description: >-
            This response is sent when a request conflicts with the current
            state of the server.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrConflict'
        '412':
          description: >-
            The requested operation cannot be completed because certain
            conditions were not met. This typically occurs when a required
            resource state or version check fails.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrPreconditionFailed'
        '429':
          description: >-
            The user has sent too many requests in a given amount of time ("rate
            limiting")
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrTooManyRequests'
        '500':
          description: >-
            The server has encountered a situation it does not know how to
            handle.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrInternalServerError'
      security:
        - RapidAPIKey: []
components:
  schemas:
    ErrBadRequest:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              enum:
                - BAD_REQUEST
              description: A machine readable error code.
              example: BAD_REQUEST
            docs:
              type: string
              description: >-
                A link to our documentation with more details about this error
                code
              example: https://docs.exercisedb.dev/errors/code/BAD_REQUEST
            message:
              type: string
              description: A human readable explanation of what went wrong
            requestId:
              type: string
              description: Please always include the requestId in your error report
              example: req_12345
          required:
            - code
            - docs
            - message
            - requestId
      required:
        - error
    ErrUnauthorized:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              enum:
                - UNAUTHORIZED
              description: A machine readable error code.
              example: UNAUTHORIZED
            docs:
              type: string
              description: >-
                A link to our documentation with more details about this error
                code
              example: https://docs.exercisedb.dev/errors/code/UNAUTHORIZED
            message:
              type: string
              description: A human readable explanation of what went wrong
            requestId:
              type: string
              description: Please always include the requestId in your error report
              example: req_12345
          required:
            - code
            - docs
            - message
            - requestId
      required:
        - error
    ErrForbidden:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              enum:
                - FORBIDDEN
              description: A machine readable error code.
              example: FORBIDDEN
            docs:
              type: string
              description: >-
                A link to our documentation with more details about this error
                code
              example: https://docs.exercisedb.dev/errors/code/FORBIDDEN
            message:
              type: string
              description: A human readable explanation of what went wrong
            requestId:
              type: string
              description: Please always include the requestId in your error report
              example: req_12345
          required:
            - code
            - docs
            - message
            - requestId
      required:
        - error
    ErrNotFound:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              enum:
                - NOT_FOUND
              description: A machine readable error code.
              example: NOT_FOUND
            docs:
              type: string
              description: >-
                A link to our documentation with more details about this error
                code
              example: https://docs.exercisedb.dev/errors/code/NOT_FOUND
            message:
              type: string
              description: A human readable explanation of what went wrong
            requestId:
              type: string
              description: Please always include the requestId in your error report
              example: req_12345
          required:
            - code
            - docs
            - message
            - requestId
      required:
        - error
    ErrMethodNotAllowed:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              enum:
                - METHOD_NOT_ALLOWED
              description: A machine readable error code.
              example: METHOD_NOT_ALLOWED
            docs:
              type: string
              description: >-
                A link to our documentation with more details about this error
                code
              example: https://docs.exercisedb.dev/errors/code/METHOD_NOT_ALLOWED
            message:
              type: string
              description: A human readable explanation of what went wrong
            requestId:
              type: string
              description: Please always include the requestId in your error report
              example: req_12345
          required:
            - code
            - docs
            - message
            - requestId
      required:
        - error
    ErrConflict:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              enum:
                - CONFLICT
              description: A machine readable error code.
              example: CONFLICT
            docs:
              type: string
              description: >-
                A link to our documentation with more details about this error
                code
              example: https://docs.exercisedb.dev/errors/code/CONFLICT
            message:
              type: string
              description: A human readable explanation of what went wrong
            requestId:
              type: string
              description: Please always include the requestId in your error report
              example: req_12345
          required:
            - code
            - docs
            - message
            - requestId
      required:
        - error
    ErrPreconditionFailed:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              enum:
                - PRECONDITION_FAILED
              description: A machine readable error code.
              example: PRECONDITION_FAILED
            docs:
              type: string
              description: >-
                A link to our documentation with more details about this error
                code
              example: https://docs.exercisedb.dev/errors/code/PRECONDITION_FAILED
            message:
              type: string
              description: A human readable explanation of what went wrong
            requestId:
              type: string
              description: Please always include the requestId in your error report
              example: req_12345
          required:
            - code
            - docs
            - message
            - requestId
      required:
        - error
    ErrTooManyRequests:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              enum:
                - TOO_MANY_REQUESTS
              description: A machine readable error code.
              example: TOO_MANY_REQUESTS
            docs:
              type: string
              description: >-
                A link to our documentation with more details about this error
                code
              example: https://docs.exercisedb.dev/errors/code/TOO_MANY_REQUESTS
            message:
              type: string
              description: A human readable explanation of what went wrong
            requestId:
              type: string
              description: Please always include the requestId in your error report
              example: req_12345
          required:
            - code
            - docs
            - message
            - requestId
      required:
        - error
    ErrInternalServerError:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              enum:
                - INTERNAL_SERVER_ERROR
              description: A machine readable error code.
              example: INTERNAL_SERVER_ERROR
            docs:
              type: string
              description: >-
                A link to our documentation with more details about this error
                code
              example: https://docs.exercisedb.dev/errors/code/INTERNAL_SERVER_ERROR
            message:
              type: string
              description: A human readable explanation of what went wrong
            requestId:
              type: string
              description: Please always include the requestId in your error report
              example: req_12345
          required:
            - code
            - docs
            - message
            - requestId
      required:
        - error
  securitySchemes:
    RapidAPIKey:
      type: apiKey
      in: header
      name: X-RapidAPI-Key
      description: Enter your RapidAPI key in the X-RapidAPI-Key header.

````