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

# Suno Song Concat

> Use DeerAPI to call the Suno Song Concat endpoint with request details, response details, examples, and an OpenAPI playground.

## Overview

Use this endpoint to call the Suno Song Concat workflow through DeerAPI. The API reference on this page shows the request schema, response schema, authentication requirements, and runnable examples for the configured endpoint.

## Before you start

Use the DeerAPI base URL and pass your API Key in the `Authorization` header:

```text theme={null}
https://api.deerapi.com
```

```text theme={null}
Authorization: Bearer $DEERAPI_KEY
```

## Model selection

Choose a current model ID from the [live pricing page](https://api.deerapi.com/pricing). Model availability changes over time, so avoid copying a model ID from an old project without checking the live list first.

## Implementation notes

* Use the OpenAPI playground for the exact request fields accepted by this endpoint.
* Keep API Keys on the server side when you build production applications.
* Log the request ID from failed calls so support can investigate the request.
* Retry `429`, `500`, and `503` responses with exponential backoff.


## OpenAPI

````yaml /api/openapi/music/suno/post-song-concat.openapi.json POST /suno/submit/concat
openapi: 3.1.0
info:
  title: Song Concatenation API
  version: 1.0.0
servers:
  - url: https://api.deerapi.com
security:
  - bearerAuth: []
paths:
  /suno/submit/concat:
    post:
      summary: Song concatenation
      operationId: song_concatenation
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - clip_id
                - is_infill
              properties:
                clip_id:
                  type: string
                  description: >-
                    The `clip_id` returned from the extend task. This ID
                    identifies the extended music clip to concatenate.
                      - Must be a valid `clip_id` returned from a completed extend task
                      - Example: `"task_id_after_extension"`
                  default: example
                is_infill:
                  type: boolean
                  description: Whether this task is an infill operation.
                  default: true
              default:
                clip_id: example
                is_infill: true
            examples:
              Default:
                summary: Default
                value:
                  clip_id: task_id_after_extension
                  is_infill: false
            example:
              clip_id: task_id_after_extension
              is_infill: false
      responses:
        '200':
          description: New Request
          content:
            application/json:
              schema:
                type: object
                required:
                  - code
                  - message
                  - data
                properties:
                  code:
                    type: string
                    description: Business status code
                  message:
                    type: string
                    description: Message
                  data:
                    type: string
                    description: Response data
      x-codeSamples:
        - lang: Shell
          label: cURL
          source: |
            curl https://api.deerapi.com/suno/submit/concat \
              -H "Content-Type: application/json" \
              -H "Authorization: Bearer $DEERAPI_KEY" \
              -d '{
                "clip_id": "task_id_after_extension",
                "is_infill": false
              }'
        - lang: Python
          label: requests
          source: |
            import os
            import requests

            url = "https://api.deerapi.com/suno/submit/concat"
            headers = {
                "Authorization": "Bearer " + os.environ["DEERAPI_KEY"],
                "Content-Type": "application/json",
            }
            payload = {
              "clip_id": "task_id_after_extension",
              "is_infill": false
            }

            response = requests.post(url, headers=headers, json=payload)
            print(response.json())
        - lang: JavaScript
          label: fetch
          source: >
            const response = await
            fetch("https://api.deerapi.com/suno/submit/concat", {
              method: "POST",
              headers: {
                Authorization: `Bearer ${process.env.DEERAPI_KEY}`,
                "Content-Type": "application/json",
              },
              body: JSON.stringify({
                "clip_id": "task_id_after_extension",
                "is_infill": false
              }),
            });


            console.log(await response.json());
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Use a DeerAPI API Key as a Bearer token.

````