← ripurpose.ai

API Documentation

Integrate Voice DNA intelligence and content generation into your applications. Analyze creator voice patterns, generate platform-native content, and build on top of the RipurposeAI pipeline.

Quick start

Generate an API key in your account settings, then make your first request:

curl -X POST https://ripurpose.ai/api/v1/generate \
  -H "Authorization: Bearer rp_live_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://youtube.com/watch?v=VIDEO_ID"}'

Each API call consumes one credit from your account. API access requires a Premium plan.

Authentication

All API requests require a Bearer token in the Authorization header. Keys are created in your account settings and begin with rp_live_.

Header format
Authorization: Bearer rp_live_abc123...

API keys are hashed on our servers. If you lose a key, revoke it and create a new one. Each account can have up to 5 active keys.

Base URL

https://ripurpose.ai/api/v1

Endpoints

POST/api/v1/voice/analyze

Analyze Voice

Extract a creator's Voice DNA from a YouTube video. Returns a 12-dimensional voice fingerprint with per-dimension confidence scores.

Permission: voice:analyze
Request body
{
  "url": "https://youtube.com/watch?v=dQw4w9WgXcQ"
}
Response
{
  "voiceDna": {
    "version": "2.0",
    "dimensions": {
      "vocabularyLevel": { "value": "conversational", "confidence": 0.30 },
      "toneSignature": { "value": "enthusiastic", "confidence": 0.30 },
      "sentenceArchitecture": { "value": "short-punchy", "confidence": 0.30 },
      "personalityTraits": {
        "values": ["direct", "practical", "storytelling"],
        "frequencies": [1.0, 1.0, 1.0],
        "confidence": 0.30
      },
      "signaturePhrases": {
        "values": ["here's the thing", "think about it"],
        "frequencies": [1.0, 1.0],
        "confidence": 0.30
      }
    },
    "metadata": {
      "videosAnalyzed": 1,
      "aggregationMethod": "single-video"
    }
  },
  "videoInfo": {
    "title": "Video Title",
    "channel": "Channel Name",
    "duration": "12:34",
    "wordCount": 2847
  }
}
GET/api/v1/voice/:userId

Get Voice DNA

Retrieve the accumulated Voice DNA for a user. Aggregates voice profiles from all processed videos using exponential moving average weighting. Confidence increases with each video analyzed.

Permission: voice:read
Response
{
  "voiceDna": {
    "version": "2.0",
    "dimensions": {
      "vocabularyLevel": { "value": "conversational", "confidence": 0.82 },
      "toneSignature": { "value": "authoritative", "confidence": 0.82 },
      "personalityTraits": {
        "values": ["direct", "data-driven", "practical"],
        "frequencies": [0.87, 0.62, 0.45],
        "confidence": 0.82
      },
      "signaturePhrases": {
        "values": ["here's the thing", "let me break it down"],
        "frequencies": [0.87, 0.62],
        "confidence": 0.82
      }
    },
    "metadata": {
      "videosAnalyzed": 12,
      "aggregationMethod": "ema-weighted"
    }
  }
}
POST/api/v1/generate

Generate Content

Run the full RipurposeAI pipeline on a YouTube video. Extracts the video, comprehends the content, generates platform-native posts in the creator's voice, and scores the output for quality.

Permission: generate
Request body
{
  "url": "https://youtube.com/watch?v=dQw4w9WgXcQ",
  "platforms": ["twitter", "linkedin", "tiktok"],
  "language": "en"
}
Response
{
  "content": {
    "twitter": {
      "thread": [
        { "tweetNumber": 1, "content": "Hook tweet...", "characterCount": 187 },
        { "tweetNumber": 2, "content": "Key insight...", "characterCount": 241 }
      ],
      "threadLength": 6,
      "hookStrength": 0.85
    },
    "linkedin": {
      "post": "LinkedIn post content...",
      "wordCount": 218,
      "hookStrength": 0.82
    },
    "tiktok": {
      "script": "[HOOK] Opening line...\n\n[BODY] Key points...",
      "estimatedDuration": "52 seconds",
      "wordCount": 156,
      "hookStrength": 0.79
    }
  },
  "quality": {
    "overallScore": 0.84,
    "voiceFidelity": 0.87,
    "platformNativeness": 0.81,
    "contentAccuracy": 0.85,
    "flaggedIssues": []
  },
  "voiceDna": { "version": "2.0", "..." : "..." },
  "videoInfo": {
    "title": "Video Title",
    "channel": "Channel Name",
    "duration": "12:34"
  },
  "timing": {
    "extractMs": 2340,
    "comprehendMs": 3120,
    "createMs": 4580,
    "scoreMs": 12,
    "totalMs": 10052
  }
}

Understanding Voice DNA

Voice DNA is a 12-dimensional fingerprint of a creator's communication style. Each dimension includes a confidence score based on how many videos have been analyzed. As more videos are processed, confidence increases and the voice model becomes more precise through exponential moving average aggregation.

vocabularyLevel
toneSignature
sentenceArchitecture
personalityTraits
signaturePhrases
verbalTics
humorStyle
persuasionMode
openingPattern
closingPattern
emotionalRange
jargonDensity

Array dimensions (personalityTraits, signaturePhrases, verbalTics) include frequency data indicating how often each trait appears across analyzed videos.

Content quality scoring

Every generation includes an automated quality assessment. The pipeline runs post-generation analysis including AI-phrase detection, platform constraint validation, and voice fidelity measurement. Content with detected AI phrases is automatically cleaned before delivery.

voiceFidelityHow closely the output matches the creator's voice profile (35%)
platformNativenessAdherence to platform conventions (character limits, formatting, tone) (35%)
contentAccuracyFaithful representation of the source video content (30%)

Error codes

All errors return a consistent JSON format:

{ "error": { "message": "...", "code": "...", "status": 401 } }
StatusCodeDescription
401unauthorizedMissing or invalid API key
402no_creditsNo credits remaining on account
403forbiddenAPI key lacks required permission
422extraction_failedCould not extract transcript from video
429rate_limitedExceeded 100 requests per hour
500analysis_failedInternal processing error

Rate limits

API access is available on the Premium plan ($79/mo).

Rate limit: 100 requests per hour per API key.

Maximum 5 active API keys per account.

Each generate request consumes 1 credit from your account. Premium plans include unlimited credits.

Ready to integrate?

Get your API key and start generating voice-matched content in minutes.

View plansGo to settings