API Documentation

Welcome

Welcome to the Raisetalk universe, a platform designed to transform your interactions into actionable insights. Our API, available at https://api.raisetalk.com, allows you to easily integrate our features into your existing tools in order to:

  • Reliably transcribe audio calls to text.
  • Analyze conversations to extract valuable insights.
  • Automate processes and improve your teams' efficiency.

This documentation will guide you step by step through the use of our REST endpoints.

Authentication

The Raisetalk API uses a Bearer token-based authentication system to secure access to its endpoints.

Initial Login

Use your email and password to authenticate via the /login endpoint. Once the login is validated, a unique Bearer token will be returned.

Sample Request

POST {{host}}/login

{
  "password": "myC0mplicatedpass_ord",
  "email": "john.doe@company.com"
}

Sample Success Response

Code http 200

{
  "result": "success",
  "accessToken": "5c06ec916af844faac30c822055d1f77b3abgb3f259477330750ce570f851324",
  "expiration": "2024-12-01 00:00:00+00:00",
  "user": {
    (some information about you)
  },
  "rights": [
	  (list of your rights)
  ]
}

Sample Error Response

Code http 403

{
  "result": "error",
  "message": "Unexpected error #798a34a1",
  "error": {
    "user": {
      "rule": "Unexpected error #35b505bf"
    }
  }
}

Using the Bearer Token

The obtained token must be included in the Authorization header of all subsequent requests to access protected endpoints.

Header format:

Authorization: Bearer {{ your_token }}

Important Notes

  • Bearer tokens have a limited validity period (see the expiration field in the login response).
  • Before your token expires, use the /refreshToken endpoint to generate a new one.
  • Make sure you never share your token with third parties.
  • In case of an authentication issue, a response with a 403 Forbidden status will be returned. Check your credentials or the validity of your token.

Token Refresh

When your token is approaching its expiration date, you need to refresh it.

Sample Request

POST {{host}}/refreshToken

Sample Success Response

Code http 200

{
  "result": "success",
  "accessToken": "b63066930a0b2a2e75194f8c1d1cb6a5bcPe04fb526da5035b0ad5d4f1b89dc4",
  "expiration": "2024-12-01 00:00:00+00:00"
}

Sample Error Response Code http 403

{
  "result": "error",
  "message": "Unexpected error #2d34957c",
  "error": "Invalid access token"
}

Timezone

Raisetalk uses IANA timezone identifiers (TZDB, see Wikipedia), also known as "tz database names", which are the recognized standard for timezone management in most modern systems.

These identifiers can be provided via the X-Timezone header.

These identifiers take the form:

  • Continent/City (examples: Europe/Paris, America/New_York, Asia/Tokyo)
  • Or aliases such as UTC, GMT, etc.

Valid Examples

ExampleDescription
Europe/ParisParis timezone (CET/CEST)
America/New_YorkUS East Coast timezone
Asia/TokyoJapan timezone
UTC or GMTCoordinated Universal Time

Invalid Examples

ExampleWhy to avoid?
+02:00Time offset, not a TZDB name
ParisInvalid without the Europe/ prefix
CET or ESTAmbiguous and not recommended

Fallback

If an incorrect timezone is provided, or no timezone is set, then calls are considered as GMT.


Conversations

Send a Conversation for Analysis

Conversations to be analyzed are sent to Raisetalk via a multipart/form-data form and include

  • the file to send
  • the conversation context information, called "Labels"

Minimal Sample Request

POST /upload/create

Form data:

  • file: the file to upload
  • language: the language used in the conversation, among: fr, en, es, de, it, pt, nl, hi, ja, zh, fi, ko, pl, ru, tr, uk, vi
  • model_id: the identifier of the analysis grid to use. Refer to the list of grids in the Raisetalk interface.
  • analysis_region: region where data should be processed, among: eu, us
  • transcription_model: the Speech to Text transcription model to use

    See the list of transcription models.

  • summaries_model: the LLM model to use for summary generation, sentiments and attitudes.

    See the list of analysis models.

  • questions_model: the LLM model to use for criteria analysis.

    See the list of analysis models.

  • callback: the optional callback URL where Raisetalk should send the processing results
  • anonymization: array of Personally Identifiable Information (PII) to attempt to anonymize, among the following values: account_number, banking_information, blood_type, credit_card_cvv, credit_card_expiration, credit_card_number, date, date_of_birth, drivers_license, drug, email_address, event, gender_sexuality, healthcare_number, injury, ip_address, language, location, medical_condition, medical_process, money_amount, nationality, number_sequence, occupation, organization, passport_number, password, person_age, person_name, phone_number, political_affiliation, religion, url, us_social_security_number, username, vehicle_id.
  • speakers: defines the role of conversation participants. Value among: salesperson_prospect, advisor_customer

Analysis in a Different Language

When using compatible Speech to Text transcription models, you can require the analysis to be provided in a target language, via the analysis_language parameter which accepts the following values: fr, en, en_US, en_AU, en_UK, es, de, it, pt, nl, hi, ja, zh, fi, ko, pl, ru, tr, uk, vi.

Transcription Translation

When using compatible transcription models, you can require the transcription to be provided in a target language, via the transcription_language parameter which accepts the following values: fr, en, en_US, en_AU, en_UK, es, de, it, pt, nl, hi, ja, zh, fi, ko, pl, ru, tr, uk, vi.

Sample Success Response

Code http 200

{
  "result": "success",
  "upload": {
    "id": 215,
    "analysis_region": "eu",
    "model_id": 41,
    "transcription_model": "best",
    "summaries_model": "gemini-2.0-flash-001",
    "questions_model": "gemini-2.0-flash-001",
    "originalFilename": "sample_audio_recording.mp3",
    "storedFilename": "6e200fd8102fe6b3.mp3",
    "mediaType": "audio/mp3",
    "size": 8800586,
    "length": 1057.3474166666667,
    "speakers": "salesperson_prospect",
    "language": "fr",
    "analysis_language":"en",
    "transcription_language":"es"
    "callback": null
  },
  "setAttributes": [],
  "uptodateAttributes": [],
  "attachedUser": "User not set.",
  "anonymization": [
    "email_address",
    "ip_address",
    "person_age"
  ],
}

Sample Error Response

Code http 403

{
  "result": "error",
  "message": "Unexpected error #2d34957c",
  "error": "Invalid access token"
}
{
  "result": "error",
  "message": "Unexpected error #36cb15b4",
  "error": {
    "body": "You must provide minimum information about your upload."
  }
}
{
  "result": "error",
  "message": "Unexpected error #36cb15b4",
  "error": {
    "summaries_model": "Models allow in `us` region are: anthropic/claude-3-5-sonnet, anthropic/claude-3-haiku"
  }
}

Transcription Models

Read our article on transcription models: https://www.raisetalk.com/en/blog/raisetalk-speech-to-text-models-for-conversational-analysis

Analysis Models

Blog article coming soon.