Format transcript

    Transform a raw transcript into a structured document format such as meeting minutes, sales summaries, action items, subtitles, and more.

    Request Body

    ParameterTypeRequiredDescription
    modelvalsea-formatYesModel name. Always valsea-format.
    transcriptstringYesThe transcript to format.
    semantic_tagsarrayNoOptional context — local expressions and meanings to guide formatting. Default: [].
    semantic_tags[].tagstringNoSemantic tag category (e.g. price_objection).
    semantic_tags[].phrasestringNoThe local phrase the tag applies to.
    semantic_tags[].meaningstringNoPlain-English meaning of the phrase, used as context.
    output_typemeeting_minutes | sales_summary | service_log | subtitlesYesThe desired output document format.
    streambooleanNoEnable streaming response.

    Code Examples

    curl -X POST https://api.valsea.ai/v1/formatting \
      -H "Authorization: Bearer YOUR_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "model": "valsea-format",
        "transcript": "Your transcript text here...",
        "output_type": "meeting_minutes"
      }'
    

    Response

    The response shape depends on the requested output_type.

    meeting_minutes

    FieldTypeDescription
    typestringAlways meeting_minutes.
    summarystringBrief 1-2 sentence overview of the meeting.
    agenda_itemsarray of stringsAgenda topics covered.
    action_itemsarray of { description, owner?, deadline? }Action items, with optional owner and deadline.
    decisionsarray of stringsDecisions made during the meeting.
    key_discussionsarray of stringsKey discussion points.
    notesstringAdditional free-form notes.
    generated_atstringISO timestamp.

    sales_summary

    FieldTypeDescription
    typestringAlways sales_summary.
    customer_sentimentstringpositive | mixed | negative
    sentiment_reasoningstringWhy that sentiment was assigned.
    objectionsarray of { phrase, interpretation, suggested_response }Customer objections and how to respond.
    purchase_signalsarray of { phrase, interpretation }Detected buying signals.
    next_stepsarray of stringsRecommended next steps.
    key_quotesarray of stringsNotable customer quotes.
    deal_stagestringDiscovery | Qualification | Proposal | Negotiation | Closing
    generated_atstringISO timestamp.

    service_log

    FieldTypeDescription
    typestringAlways service_log.
    issue_categorystringTechnical | Billing | Account | Product | Other
    issue_summarystringSummary of the customer's issue.
    customer_frustration_levelstringlow | medium | high
    resolution_statusstringResolved | Pending | Escalated
    resolution_summarystringHow the issue was (or will be) resolved.
    root_causestringIdentified root cause.
    follow_up_requiredbooleanWhether follow-up is needed.
    follow_up_actionsarray of stringsRecommended follow-up actions.
    semantic_flagsarray of stringsNotable semantic flags from the conversation.
    generated_atstringISO timestamp.

    subtitles

    FieldTypeDescription
    typestringAlways creator_subtitles.
    srtstringSRT-formatted subtitle text.
    generated_atstringISO timestamp.

    Fallback: non-JSON AI output

    If the AI's output isn't valid JSON, the endpoint still returns 200, with:

    FieldTypeDescription
    typestringEchoes the requested output_type.
    raw_contentstringThe unparsed text returned by the AI.

    Errors

    StatusDescription
    400Invalid request — missing transcript, invalid output_type, or unsupported model
    401Missing or invalid API key
    402Insufficient credits
    429Rate limit exceeded
    500Format service not configured, or empty AI response
    502Upstream AI service error

    Was this page helpful?