LingintLingint developer docs

Quickstart

The script below runs both endpoints end-to-end. Pick a language tab, paste in your API key, and point AUDIO_FILE at a local file.

#!/usr/bin/env bash
set -euo pipefail

# 1. Set your API key
KEY="lk_..."
BASE="https://sandbox.lingint.ai/api/v1/third-party/note-taker"
AUDIO_FILE="meeting.mp3"

# 2. Submit audio for transcription
#    speakers provides known names + optional gender hint
echo "Submitting audio..."
TASK_ID=$(curl -s "$BASE/audio2dialog" \
  -H "X-API-Key: $KEY" \
  -F "audio=@$AUDIO_FILE" \
  -F 'speakers=[{"name":"Alice","gender":"female"},{"name":"Bob","gender":"male"}]' \
  | jq -r '.data.task_id')
echo "audio2dialog task_id: $TASK_ID"

# 3. Poll until completed, then download dialog.json from result.dialog_url
DELAY=2
while true; do
  RESP=$(curl -s "$BASE/audio2dialog/$TASK_ID" -H "X-API-Key: $KEY")
  STATUS=$(echo "$RESP" | jq -r '.data.status')
  PROGRESS=$(echo "$RESP" | jq -r '.data.progress // "–"')
  echo "  status=$STATUS  progress=$PROGRESS"
  if [ "$STATUS" = "completed" ]; then
    DIALOG_URL=$(echo "$RESP" | jq -r '.data.result.dialog_url')
    curl -s -L "$DIALOG_URL" -o dialog.json
    echo "Dialog saved to dialog.json"
    break
  elif [ "$STATUS" = "failed" ]; then
    echo "Task failed: $(echo "$RESP" | jq -r '.data.error.message')"
    exit 1
  fi
  sleep $DELAY
  DELAY=$(( DELAY < 15 ? DELAY * 2 : 15 ))
done

# 4. (Optional) Inspect dialog.json. Map speaker IDs (speaker_1, speaker_2, ...)
#    to real names + optional gender hint via speakerMap below.

# 5. Submit dialog for note generation (binary upload of dialog.json)
echo "Submitting dialog for meeting note..."
NOTE_TASK_ID=$(curl -s "$BASE/dialog2meeting" \
  -H "X-API-Key: $KEY" \
  -F "dialog=@dialog.json;type=application/json" \
  -F 'speakerMap=[{"speaker_id":"speaker_1","name":"Alice","gender":"female"},{"speaker_id":"speaker_2","name":"Bob","gender":"male"}]' \
  | jq -r '.data.task_id')
echo "dialog2meeting task_id: $NOTE_TASK_ID"

# 6. Poll until completed, then download the DOCX
DELAY=2
while true; do
  RESP=$(curl -s "$BASE/dialog2meeting/$NOTE_TASK_ID" -H "X-API-Key: $KEY")
  STATUS=$(echo "$RESP" | jq -r '.data.status')
  echo "  status=$STATUS"
  if [ "$STATUS" = "completed" ]; then
    DOCX_URL=$(echo "$RESP" | jq -r '.data.result.docx_url')
    curl -s -L "$DOCX_URL" -o meeting_note.docx
    echo "DOCX downloaded to meeting_note.docx"
    echo "$RESP" | jq -r '.data.result.markdown' > meeting_note.md
    echo "Markdown saved to meeting_note.md"
    break
  elif [ "$STATUS" = "failed" ]; then
    echo "Task failed: $(echo "$RESP" | jq -r '.data.error.message')"
    exit 1
  fi
  sleep $DELAY
  DELAY=$(( DELAY < 15 ? DELAY * 2 : 15 ))
done

echo "Done."

For details on each step, see the individual endpoint pages: POST /audio2dialog, POST /dialog2meeting, and Polling task status.