Ghost audio card with a Sume track: mp3, wav or ogg from desktop

Ghost's audio card takes .mp3, .wav and .ogg uploaded from the desktop editor, up to 1 GB by plan. Download the Sume artifact, then upload the file.

4 min readSume
All posts

Ghost's audio card accepts .mp3, .wav and .ogg files that you upload in the editor from a desktop; Ghost's help page gives a limit of up to 1 GB, depending on the plan. A Sume Music Router track, usually audio/mpeg, fits that list. The workflow is download first, then upload; the card, as documented, is an upload control and not a link field.

What Ghost documents

Ghost's cards page describes the audio card in a few lines.

Ghost audio card facts (Ghost Help, read 2026-10-05)
TopicGhost documents
Accepted files.mp3, .wav, .ogg
UploadFrom the desktop, in the editor
SizeUp to 1 GB, depending on the plan

Download the artifact

Read the audio URL from the job result: result.artifacts[] has an entry of type audio, and the file is on media.sume.com. Fetch it with a tool that follows redirects and saves to disk, then drag the file into the card. The job costs a fixed $0.125, whether you keep the take or not, so listen before you publish.

job="$1"   # a finished Sume job id
url=$(curl -fsS "https://api.sume.com/v1/jobs/$job/result" \
  -H "Authorization: Bearer $SUME_API_KEY" \
  | jq -r '[.result.artifacts[]? | select(.type=="audio")][0].url')
[ -n "$url" ] && [ "$url" != null ] || { echo "no audio artifact" >&2; exit 1; }
curl -fsSL "$url" -o "track-$job.mp3"
ls -l "track-$job.mp3"

Check the file before you upload

The saved file name above ends in .mp3 because Sume's docs describe the router audio as usually audio/mpeg; confirm with file track-$job.mp3 and rename if the type is different. Ghost accepts the three extensions it lists, so a mismatch between name and content is the thing to avoid.

Limits

The help page describes a manual upload, not an API for the card. If you publish through the Admin API and need audio, test it first, because that route is not covered by the page I read. Also keep in mind that a music track you publish should have a record of how it was made; store the job id and the engine name (job.request.routed_model) with the post.

Before you ship

For a podcast style episode, the same download-and-upload step works for a spoken file, but this post is about the music bed only. If the post already has a text intro, place the audio card where the reader should press play, and add one sentence that tells them the music was generated.

  • Download the track from the artifact URL first.
  • Upload in the editor from a desktop browser.
  • Check your plan's size limit on the Ghost help page.
  • Keep the Sume job id in the post's internal notes.

Sources

Related posts

More in Integrations

All Integrations posts

Written by Sume