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

# work.validity.post

> Submit validity dates for a musical work.

export const PlanIndicator = ({children, plan = []}) => {
  const plans = {
    basic: {
      label: 'Basic',
      url: 'https://www.musixmatch.com/pro/api/pricing?utm_source=docs&utm_medium=web&utm_content=basic_button'
    },
    scale: {
      label: 'Grow',
      url: 'https://www.musixmatch.com/pro/api/pricing?utm_source=docs&utm_medium=web&utm_content=grow_button'
    },
    scaleNew: {
      label: 'Scale',
      url: 'https://www.musixmatch.com/pro/api/pricing?utm_source=docs&utm_medium=web&utm_content=scale_button'
    },
    enterprise: {
      label: 'Enterprise',
      url: 'https://www.musixmatch.com/pro/api/pricing?utm_source=docs&utm_medium=web&utm_content=enterprise_button'
    }
  };
  const icon = <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="#131313" viewBox="0 0 24 24">
      <path fillRule="evenodd" d="M13.804 3.773a.75.75 0 0 1 .911.543l1.012 4a.75.75 0 0 1-.003.382l-3.013 11a.75.75 0 0 1-1.448-.006l-2.908-11a.75.75 0 0 1-.007-.358l.909-4a.75.75 0 1 1 1.463.332l-.868 3.82 2.149 8.128 2.224-8.122-.964-3.808a.75.75 0 0 1 .543-.911Z" clipRule="evenodd" />
      <path fillRule="evenodd" d="M3.29 8.5a.75.75 0 0 1 .75-.75h16a.75.75 0 1 1 0 1.5h-16a.75.75 0 0 1-.75-.75Z" clipRule="evenodd" />
      <path fillRule="evenodd" d="M5.24 3.9a1 1 0 0 1 .8-.4h12a1 1 0 0 1 .8.4l3 4a1 1 0 0 1-.026 1.233l-9 11a1 1 0 0 1-1.548 0l-9-11A1 1 0 0 1 2.24 7.9l3-4Zm1.3 1.6L4.31 8.473l7.73 9.448 7.73-9.448L17.54 5.5h-11Z" clipRule="evenodd" />
    </svg>;
  const selectedPlans = Array.isArray(plan) ? plan : [plan];
  if (selectedPlans.length === 1 && selectedPlans[0] === 'basic') return null;
  const href = selectedPlans.length === 1 ? plans[selectedPlans[0]]?.url : 'https://www.musixmatch.com/pro/api/pricing';
  return <>
      <style>{`
        .plan-indicator-no-border {
          border: none !important;
          border-bottom: none !important;
          text-decoration: none !important;
          transition: background-color 0.2s ease;
        }
        .plan-indicator-no-border:hover {
          text-decoration: none !important;
          background-color: #E8E8E8 !important;
        }
      `}</style>
      <a href={href} title="See all Musixmatch API plans" target="_blank" className="plan-indicator-no-border inline-flex items-center gap-1 text-gray-800 px-2 py-1 rounded-lg" style={{
    backgroundColor: '#F4F4F4',
    fontSize: '14px',
    color: '#131313'
  }}>
        {icon}
        {selectedPlans.map((planKey, index) => <span key={planKey}>
            {plans[planKey]?.label}
            {index < selectedPlans.length - 1 && ', '}
          </span>)}
        {children} plan
      </a>
    </>;
};

<PlanIndicator plan={["enterprise"]} />

Use this api to submit validity end for a work.

You have to submit a payload with your **unique work identifier** used in the work ingestion phase, together with the **validity end**.

Please note that you are responsible for transmitting only trustworthy and verified data.


## OpenAPI

````yaml post /ws/1.1/work.validity.post
openapi: 3.0.3
info:
  title: Lyrics API
  description: >-
    These endpoints return metadata about songs and lyrics.  

    For full details, see the [API
    reference](https://docs.musixmatch.com/lyrics-api/introduction) for these
    endpoints.


    To authenticate your API requests and use the endpoints, you need to include
    your API key as a **query parameter** (`apikey`) in every call, like this:


    `GET /ws/1.1/track.get?apikey=YOUR_API_KEY`.


    In Postman, enter your API Key in the **Auth** tab, where it will be
    automatically appended to the request. **Best Practice:** Use **Postman
    Vault** to securely store your key; see the official [Postman
    documentation](https://learning.postman.com/docs/sending-requests/postman-vault/postman-vault-secrets/)
    for details.


    Always keep your API key secure and never share it publicly. If you believe
    your API key has been compromised, contact us immediately at
    `sales@musixmatch.com`.
  version: 1.0.0
  contact: {}
servers:
  - url: https://api.musixmatch.com
security:
  - apiKey: []
tags:
  - name: Matcher
    description: >-
      Match an external piece of information (like a title and artist) to a
      track in the Musixmatch catalog to retrieve its track ID, lyrics, or
      syncs.
  - name: Track
    description: >-
      Search for specific songs, and retrieve detailed information about a
      single track, including its lyrics, snippets, translations, and rich sync
      data.
  - name: Artist
    description: >-
      Search for artists, and retrieve detailed information about a specific
      artist, including their discography (albums).
  - name: Album
    description: >-
      Retrieve detailed information about a specific music album, including the
      list of tracks it contains.
  - name: Charts
    description: >-
      Retrieve top-ranking tracks and artists, typically based on country, as
      well as lists of available music genres.
  - name: Enterprise
    description: >-
      **For more details on the Enterprise integration refer to the** [official
      documentation.](https://docs.musixmatch.com/enterprise-integration/introduction)
paths:
  /ws/1.1/work.validity.post:
    post:
      tags:
        - Enterprise
      summary: work.validity.post
      description: Submit validity dates for a musical work.
      operationId: workValidityPost
      requestBody:
        content:
          application/json:
            examples:
              work.validity.post:
                value: |-
                  {
                      "data": {
                          "identifier": "00001100196005",  // Your Musical Work’s unique identifier used in the work ingestion phase
                          "validity_end": "2024-01-01"    // End of deal, in YYYY-MM-DD format.
                      }
                  }
            schema:
              type: object
              properties:
                data:
                  type: object
                  required:
                    - identifier
                  properties:
                    identifier:
                      type: string
                      minLength: 1
                      description: >-
                        Your Musical Work’s unique identifier used in the work
                        ingestion phase
                    validity_end:
                      type: string
                      description: 'End date of the deal. Format: YYYY-MM-DD (date).'
              description: The data schema for setting validity periods
      responses:
        '200':
          description: 200 OK / 400 Bad Request / 401 Unauthorized
          headers:
            Connection:
              schema:
                type: string
                example: keep-alive
            Content-Encoding:
              schema:
                type: string
                example: gzip
            Content-Length:
              schema:
                type: string
                example: '100'
            Date:
              schema:
                type: string
                example: Fri, 14 Feb 2025 08:19:21 GMT
            Vary:
              schema:
                type: string
                example: Accept-Encoding
            x-mxm-cache:
              schema:
                type: string
                example: no-cache
            x-mxm-header-execute-time:
              schema:
                type: string
                example: '0.087625980377197'
            x-mxm-header-status:
              schema:
                type: string
                example: '401'
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: object
                    properties:
                      body:
                        example: work updated
                        anyOf:
                          - type: string
                            example: work updated
                          - type: array
                            items: {}
                            example: []
                          - type: array
                            items: {}
                            example: []
                      header:
                        type: object
                        properties:
                          execute_time:
                            type: number
                            example: 0.41507601737976
                          hint:
                            type: string
                            example: >-
                              error in date recognition (admitted format:
                              YYYY-MM-DD)
                          status_code:
                            type: number
                            example: 200
              examples:
                200 OK:
                  value:
                    message:
                      body: work updated
                      header:
                        execute_time: 0.41507601737976
                        status_code: 200
                400 Bad Request:
                  value:
                    message:
                      body: []
                      header:
                        execute_time: 0.40488600730896
                        hint: >-
                          error in date recognition (admitted format:
                          YYYY-MM-DD)
                        status_code: 400
                401 Unauthorized:
                  value:
                    message:
                      body: []
                      header:
                        execute_time: 0.087625980377197
                        status_code: 401
components:
  securitySchemes:
    apiKey:
      type: apiKey
      name: apikey
      in: query

````