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

# BatchGetMovies

> BatchGetMovies retrieves multiple movies by their unique identifiers.
 Returns a map of ID to result, where each result is either the movie or an error.



## OpenAPI

````yaml /api/anghami-sdk.openapi.yaml post /v1/video/movies:batchGet
openapi: 3.1.0
info:
  title: Anghami + OSN+ SDK
  description: >-
    Unified OpenAPI bundle covering all Anghami + OSN+ SDK services (music +
    video streaming).
  contact:
    name: Anghami Developer Platform
    email: developers@anghami.com
  version: 1.0.0
servers:
  - url: https://sdk.anghami.com
security: []
paths:
  /v1/video/movies:batchGet:
    post:
      tags:
        - VideoCatalogService
      summary: BatchGetMovies
      description: |-
        BatchGetMovies retrieves multiple movies by their unique identifiers.
         Returns a map of ID to result, where each result is either the movie or an error.
      operationId: BatchGetMovies
      parameters:
        - name: Authorization
          in: header
          description: >-
            OAuth 2.0 Bearer token for user-authenticated requests. Format:
            Bearer <access_token>. Optional if x-api-key is provided.
          required: false
          schema:
            type: string
            example: Bearer eyJhbGciOiJSUzI1NiIs...
        - name: x-api-key
          in: header
          description: >-
            API key for server-to-server access without user context. Optional
            if Authorization is provided.
          required: false
          schema:
            type: string
            example: ang_live_...
        - name: Accept-Language
          in: header
          description: >-
            Preferred locale for localized content (BCP 47). Determines which
            language variant is returned for LocalizedString fields.
          required: false
          schema:
            type: string
            example: ar
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/sdk_video_v1_BatchGetMoviesRequest'
        required: true
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/sdk_video_v1_BatchGetMoviesResponse'
        '400':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        default:
          description: Error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    sdk_video_v1_BatchGetMoviesRequest:
      type: object
      properties:
        movieIdList:
          type: array
          items:
            $ref: '#/components/schemas/sdk_shared_v1_MovieID'
          maxItems: 100
          minItems: 1
      description: >-
        BatchGetMoviesRequest is the request message for retrieving multiple
        movies by ID.
    sdk_video_v1_BatchGetMoviesResponse:
      type: object
      properties:
        results:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/sdk_video_v1_MovieResult'
          description: |-
            Map from requested movie ID to the result.
             Keys match the IDs from the request.
      description: |-
        BatchGetMoviesResponse contains the results for each requested movie ID.
         Each ID maps to either the movie entity or an error.
    ValidationError:
      type: object
      properties:
        violations:
          type: array
          items:
            $ref: '#/components/schemas/FieldViolation'
          description: List of validation violations
      required:
        - violations
      description: >-
        ValidationError is returned when request validation fails. It contains a
        list of field violations describing what went wrong.
    Error:
      type: object
      properties:
        message:
          type: string
          description: Error message (e.g., 'user not found', 'database connection failed')
      description: >-
        Error is returned when a handler encounters an error. It contains a
        simple error message that the developer can customize.
    sdk_shared_v1_MovieID:
      type: object
      properties:
        value:
          type: string
          description: The string value of the movie identifier.
      required:
        - value
      description: MovieID is a typed identifier for a movie.
    sdk_video_v1_MovieResult:
      type: object
      properties:
        movie:
          $ref: '#/components/schemas/sdk_video_v1_Movie'
        error:
          $ref: '#/components/schemas/sdk_shared_v1_BatchItemError'
      description: >-
        MovieResult represents the result of fetching a single movie in a batch
        request.
    FieldViolation:
      type: object
      properties:
        field:
          type: string
          description: >-
            The field path that failed validation (e.g., 'user.email' for nested
            fields). For header validation, this will be the header name (e.g.,
            'X-API-Key')
        description:
          type: string
          description: >-
            Human-readable description of the validation violation (e.g., 'must
            be a valid email address', 'required field missing')
      required:
        - field
        - description
      description: FieldViolation describes a single validation error for a specific field.
    sdk_video_v1_Movie:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/sdk_shared_v1_MovieID'
        title:
          $ref: '#/components/schemas/sdk_shared_v1_LocalizedString'
        description:
          $ref: '#/components/schemas/sdk_shared_v1_LocalizedString'
        genres:
          type: array
          items:
            type: string
            description: >-
              Genres associated with this movie (e.g., "Action", "Drama",
              "Comedy").
        durationMs:
          type: integer
          format: int32
          description: Duration of the movie in milliseconds.
        cast:
          type: array
          items:
            $ref: '#/components/schemas/sdk_video_v1_CastMember'
        director:
          $ref: '#/components/schemas/sdk_shared_v1_LocalizedString'
        rating:
          type: string
          enum:
            - CONTENT_RATING_UNSPECIFIED
            - CONTENT_RATING_G
            - CONTENT_RATING_PG
            - CONTENT_RATING_PG13
            - CONTENT_RATING_R
            - CONTENT_RATING_NC17
            - CONTENT_RATING_TV_Y
            - CONTENT_RATING_TV_G
            - CONTENT_RATING_TV_PG
            - CONTENT_RATING_TV_14
            - CONTENT_RATING_TV_MA
          description: >-
            ContentRating represents age-based and content-based ratings for
            video content.
             Includes both theatrical (MPAA) and television (TV Parental Guidelines) ratings.
        releaseYear:
          type: integer
          format: int32
          description: Year the movie was released.
        artwork:
          type: array
          items:
            $ref: '#/components/schemas/sdk_shared_v1_Image'
        trailerUrl:
          type: string
          description: |-
            URL to the movie's trailer video.
             May be empty if no trailer is available.
        studio:
          type: string
          description: Production studio that made this movie.
      description: Movie represents a standalone film in the video catalog.
    sdk_shared_v1_BatchItemError:
      type: object
      properties:
        code:
          type: string
          enum:
            - ERROR_CODE_UNSPECIFIED
            - ERROR_CODE_INVALID_REQUEST
            - ERROR_CODE_UNAUTHENTICATED
            - ERROR_CODE_PERMISSION_DENIED
            - ERROR_CODE_NOT_FOUND
            - ERROR_CODE_CONFLICT
            - ERROR_CODE_RATE_LIMITED
            - ERROR_CODE_INTERNAL
            - ERROR_CODE_UNAVAILABLE
          description: ErrorCode enumerates the standard error conditions in the SDK API.
        message:
          type: string
          description: >-
            Human-readable error message with additional details about the
            failure.
      description: >-
        BatchItemError describes why a specific item in a batch request could
        not be retrieved.
         Used in batch response maps where each ID maps to either the entity or an error.
         Common in BatchGetSongs, BatchGetAlbums, etc. where individual items may fail
         while others succeed.
    sdk_shared_v1_LocalizedString:
      type: object
      properties:
        value:
          type: string
          description: |-
            The text value resolved for the requested locale.
             The server selects this based on the Accept-Language header.
        originalValue:
          type: string
          description: |-
            The text value in its original language.
             For content originally in Arabic, this is the Arabic text.
             For content originally in English/Latin, this is the English text.
             May be identical to value when the requested locale matches the original.
      description: |-
        LocalizedString provides a text value in the requested locale along with
         the original-language value. The resolved value is determined server-side
         from the Accept-Language request header.

         Anghami's catalog is Arabic-first, meaning most content has both Arabic and
         Latin/transliterated titles. This message allows clients to display either
         representation as needed by the user interface.
    sdk_video_v1_CastMember:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/sdk_shared_v1_CastMemberID'
        name:
          $ref: '#/components/schemas/sdk_shared_v1_LocalizedString'
        role:
          type: string
          description: Character name or role description (e.g., "Dr. House", "Narrator").
        profileImageUrl:
          type: string
          description: |-
            URL to the cast member's profile image.
             May be empty if no image is available.
        isLead:
          type: boolean
          description: |-
            Whether this is a lead or main cast member.
             False for supporting cast and guest appearances.
      description: |-
        CastMember represents a person who appears in a show, movie, or episode.
         Used for both main cast and guest appearances.
    sdk_shared_v1_Image:
      type: object
      properties:
        url:
          type: string
          description: URL of the image.
        width:
          type: integer
          format: int32
          description: Width in pixels.
        height:
          type: integer
          format: int32
          description: Height in pixels.
      description: Image represents artwork or visual media at a specific size.
    sdk_shared_v1_CastMemberID:
      type: object
      properties:
        value:
          type: string
          description: The string value of the cast member identifier.
      required:
        - value
      description: CastMemberID is a typed identifier for a cast member.

````