API REFERENCE

POST /api/content/packs/assets

On this page
POST/api/content/packs/assets

Release rollout pending; discover current host capabilities before execution. Upload explicitly selected audio or reference artwork to owned private storage; return a temporary locator.

Authentication

x-api-key in header

bearerAuth bearer

Request

cURL
curl --request POST \
  --url 'https://api.recoupable.dev/api/content/packs/assets' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
  "organization_id": "YOUR_ID",
  "filename": "string",
  "content_type": "audio/mpeg",
  "mode": "inline",
  "base64": "string",
  "source_url": "string",
  "storage_key": "string",
  "file": {
    "download_url": "string",
    "file_id": "string"
  }
}'

Try it

Fill in the fields, send the request from your browser, and read the live response. The curl below updates as you type.

Kept in this browser tab only and cleared when it closes.

cURL for this request
curl --request POST \
  --url 'https://recoup-api.vercel.app/api/content/packs/assets' \
  --header 'Content-Type: application/json' \
  --data '{
  "organization_id": "YOUR_ID",
  "filename": "string",
  "content_type": "audio/mpeg",
  "mode": "inline",
  "base64": "string",
  "source_url": "string",
  "storage_key": "string",
  "file": {
    "download_url": "string",
    "file_id": "string"
  }
}'

Request body required

application/json

organization_idstring

format: uuid · pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$

filenamestring

minLength: 1 · maxLength: 160 · pattern: ^[A-Za-z0-9._ -]+$

content_typestring · enum

Values: "audio/mpeg", "audio/wav", "audio/x-wav", "audio/flac", "audio/mp4", "image/png", "image/jpeg", "image/webp"

modestring · enum

Values: "inline", "signed_url", "finalize"

Default: "inline"

base64string

minLength: 4 · maxLength: 4000000

source_urlstring

format: uri · maxLength: 4000

storage_keystring

minLength: 1 · maxLength: 400

fileobject
Properties for file
download_urlstringrequired

format: uri · maxLength: 4000

file_idstringrequired

minLength: 1 · maxLength: 2000

mime_typestring

maxLength: 200

file_namestring

maxLength: 300

Responses

200Current owned result; running is not completed.

application/json

storage_keystring
urlstring
content_typestring
bytesinteger
expires_atstring
signed_upload_urlstring
upload_tokenstring
expires_in_secondsinteger
maximum_bytesinteger
next_actionstring
400Invalid input.

application/json

statusstringrequired
errorstringrequired
billingUrlstring

format: uri

401Authentication required.

application/json

statusstringrequired
errorstringrequired
billingUrlstring

format: uri

402Insufficient credits; use returned billingUrl.

application/json

statusstringrequired
errorstringrequired
billingUrlstring

format: uri

403Workspace access denied.

application/json

statusstringrequired
errorstringrequired
billingUrlstring

format: uri

404Owned resource not found.

application/json

statusstringrequired
errorstringrequired
billingUrlstring

format: uri

409Stale quote/revision, unresolved submission, budget/state conflict or required execution capability unavailable.

application/json

statusstringrequired
errorstringrequired
billingUrlstring

format: uri

Full specification

Download the OpenAPI file for complete schemas, constraints, and examples.

Download content.json
View operation source
json
{
  "operationId": "uploadReleasePackAsset",
  "description": "Release rollout pending; discover current host capabilities before execution. Upload explicitly selected audio or reference artwork to owned private storage; return a temporary locator.",
  "security": [
    {
      "apiKeyAuth": []
    },
    {
      "bearerAuth": []
    }
  ],
  "responses": {
    "200": {
      "description": "Current owned result; running is not completed.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ReleasePackUploadResponse"
          }
        }
      }
    },
    "400": {
      "description": "Invalid input.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ReleasePackError"
          }
        }
      }
    },
    "401": {
      "description": "Authentication required.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ReleasePackError"
          }
        }
      }
    },
    "402": {
      "description": "Insufficient credits; use returned billingUrl.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ReleasePackError"
          }
        }
      }
    },
    "403": {
      "description": "Workspace access denied.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ReleasePackError"
          }
        }
      }
    },
    "404": {
      "description": "Owned resource not found.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ReleasePackError"
          }
        }
      }
    },
    "409": {
      "description": "Stale quote/revision, unresolved submission, budget/state conflict or required execution capability unavailable.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ReleasePackError"
          }
        }
      }
    }
  },
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/UploadReleasePackAssetRequest"
        }
      }
    }
  },
  "x-recoup-availability": "pending"
}

Get started with Recoup.