falaai-api 1.21.51 → 1.21.54

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +4 -3
  3. data/docs/AnalysisApi.md +2 -2
  4. data/docs/DiagnosticParticipant.md +1 -1
  5. data/docs/DiagnosticRequest.md +2 -2
  6. data/docs/DiagnosticResponse.md +3 -1
  7. data/docs/Participant.md +1 -1
  8. data/docs/ParticipantDiagnostic.md +1 -1
  9. data/docs/RiskAuditRequest.md +3 -5
  10. data/docs/SpeechApi.md +3 -3
  11. data/docs/WhatsappApi.md +4 -2
  12. data/docs/WhatsappMeta.md +5 -3
  13. data/docs/WhatsappUsage.md +11 -1
  14. data/docs/index.html +28 -27
  15. data/lib/falaai-api/api/analysis_api.rb +1 -1
  16. data/lib/falaai-api/api/email_alerts_api.rb +1 -1
  17. data/lib/falaai-api/api/health_api.rb +1 -1
  18. data/lib/falaai-api/api/speech_api.rb +5 -5
  19. data/lib/falaai-api/api/usage_api.rb +1 -1
  20. data/lib/falaai-api/api/version_api.rb +1 -1
  21. data/lib/falaai-api/api/webhooks_api.rb +1 -1
  22. data/lib/falaai-api/api/whatsapp_api.rb +7 -4
  23. data/lib/falaai-api/api_client.rb +1 -1
  24. data/lib/falaai-api/api_error.rb +1 -1
  25. data/lib/falaai-api/api_model_base.rb +1 -1
  26. data/lib/falaai-api/configuration.rb +1 -1
  27. data/lib/falaai-api/models/audio_event.rb +1 -1
  28. data/lib/falaai-api/models/audio_input_meta.rb +1 -1
  29. data/lib/falaai-api/models/create_email_alert_request.rb +1 -1
  30. data/lib/falaai-api/models/create_webhook_request.rb +1 -1
  31. data/lib/falaai-api/models/diagnostic_analysis_map.rb +1 -1
  32. data/lib/falaai-api/models/diagnostic_audio_event.rb +1 -1
  33. data/lib/falaai-api/models/diagnostic_categorical_analysis.rb +1 -1
  34. data/lib/falaai-api/models/diagnostic_participant.rb +2 -9
  35. data/lib/falaai-api/models/diagnostic_request.rb +5 -12
  36. data/lib/falaai-api/models/diagnostic_response.rb +15 -5
  37. data/lib/falaai-api/models/diagnostic_text_analysis.rb +1 -1
  38. data/lib/falaai-api/models/diagnostic_usage.rb +1 -1
  39. data/lib/falaai-api/models/email_alert_item.rb +1 -1
  40. data/lib/falaai-api/models/email_alert_list_response.rb +1 -1
  41. data/lib/falaai-api/models/email_alert_message_response.rb +1 -1
  42. data/lib/falaai-api/models/email_event.rb +1 -1
  43. data/lib/falaai-api/models/health_response.rb +1 -1
  44. data/lib/falaai-api/models/http_validation_error.rb +1 -1
  45. data/lib/falaai-api/models/location_inner.rb +1 -1
  46. data/lib/falaai-api/models/message_response.rb +1 -1
  47. data/lib/falaai-api/models/participant.rb +2 -2
  48. data/lib/falaai-api/models/participant_diagnostic.rb +2 -19
  49. data/lib/falaai-api/models/risk_audit_analysis_v2.rb +1 -1
  50. data/lib/falaai-api/models/risk_audit_applied_action_v2.rb +1 -1
  51. data/lib/falaai-api/models/risk_audit_audio_event_model_v2.rb +1 -1
  52. data/lib/falaai-api/models/risk_audit_audit_decisions_v2.rb +1 -1
  53. data/lib/falaai-api/models/risk_audit_conversation_scores_v2.rb +1 -1
  54. data/lib/falaai-api/models/risk_audit_detection_item_v2.rb +1 -1
  55. data/lib/falaai-api/models/risk_audit_detections_v2.rb +1 -1
  56. data/lib/falaai-api/models/risk_audit_indexer_v2.rb +1 -1
  57. data/lib/falaai-api/models/risk_audit_meta_v2.rb +1 -1
  58. data/lib/falaai-api/models/risk_audit_participant_v2.rb +1 -1
  59. data/lib/falaai-api/models/risk_audit_participants_v2.rb +1 -1
  60. data/lib/falaai-api/models/risk_audit_request.rb +11 -37
  61. data/lib/falaai-api/models/risk_audit_scores_v2.rb +1 -1
  62. data/lib/falaai-api/models/risk_audit_scoring_explanation_v2.rb +1 -1
  63. data/lib/falaai-api/models/risk_audit_summary_v2.rb +1 -1
  64. data/lib/falaai-api/models/risk_audit_timeline_v2.rb +1 -1
  65. data/lib/falaai-api/models/risk_audit_usage_v2.rb +1 -1
  66. data/lib/falaai-api/models/risk_audit_v2.rb +1 -1
  67. data/lib/falaai-api/models/risk_audit_v2_response.rb +1 -1
  68. data/lib/falaai-api/models/risk_audit_verdict_v2.rb +1 -1
  69. data/lib/falaai-api/models/transcription_response.rb +1 -1
  70. data/lib/falaai-api/models/transcription_usage.rb +1 -1
  71. data/lib/falaai-api/models/update_email_alert_request.rb +1 -1
  72. data/lib/falaai-api/models/update_webhook_request.rb +1 -1
  73. data/lib/falaai-api/models/usage_by_key_item.rb +1 -1
  74. data/lib/falaai-api/models/usage_log_item.rb +1 -1
  75. data/lib/falaai-api/models/usage_log_response.rb +1 -1
  76. data/lib/falaai-api/models/validation_error.rb +1 -1
  77. data/lib/falaai-api/models/version_response.rb +1 -1
  78. data/lib/falaai-api/models/webhook_event.rb +1 -1
  79. data/lib/falaai-api/models/webhook_item.rb +1 -1
  80. data/lib/falaai-api/models/webhook_list_response.rb +1 -1
  81. data/lib/falaai-api/models/whatsapp_conversation.rb +1 -1
  82. data/lib/falaai-api/models/whatsapp_conversations_response.rb +1 -1
  83. data/lib/falaai-api/models/whatsapp_meta.rb +59 -32
  84. data/lib/falaai-api/models/whatsapp_speaker.rb +1 -1
  85. data/lib/falaai-api/models/whatsapp_usage.rb +138 -3
  86. data/lib/falaai-api/version.rb +2 -2
  87. data/lib/falaai-api.rb +1 -1
  88. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d83d046b979cd6c1d09c21c3c76a82ea6b0d17131e1018b972a7fea0a3a50f3e
4
- data.tar.gz: ba6256865b059b177181ce24f00cd857a2df99b0af69584fd8b4131b3a00d7df
3
+ metadata.gz: 2124fbb4e1ed6511a5749326aa954da95d70c298e244a5b80dc09c214b66f8d3
4
+ data.tar.gz: ea43b97e08f90260511970b2616066aef0433d0948a512a12e34c36bfa7ba0e2
5
5
  SHA512:
6
- metadata.gz: 74c598532ababe5e246b16f3e260886235f8b5e7f25df353b3d7cd2dc27ee392c90dbd8b1d0fac9ece144e7f04efa1209368c102c847e5008e476eecf1a8c8be
7
- data.tar.gz: d3590c7c1c2e1e20bb4157f73125daae0c297dff4d44b985f3fcb7df100f4233a3672e9e200e2f68592fa61b0cf804c2099bfeb2f7b3fc815221bf738aea537a
6
+ metadata.gz: 9c41a3551e9c471ff24cdfbd1849ff772af1ed55844834dfb22299d0a6f5f44e5bd7b16f2ac3595db8df0a02d7c62771c53fd0b02982351f883cec089dfe5808
7
+ data.tar.gz: c90657bb08a24f46ca3854bea50be4f6e1a05e60885c3afab871f51925fc238b2b98565456a43d11aa5e3d945081f217f704a9dc1d2696e8eed8b0494d303627
data/README.md CHANGED
@@ -123,6 +123,7 @@ FalaAI API is an **AI conversation-intelligence API** for analyzing customer-ser
123
123
  - **Contact center / Quality** - audit 100% of conversations instead of a sample.
124
124
  - **Compliance / Legal** - auditable evidence for audits and disputes.
125
125
  - **CX / Operations** - risk score, sentiment and reason per conversation.
126
+ - **Sales** - analyze sales calls and extract structured outcomes.
126
127
  - **BI / Data** - typed JSON ready for your database or analytics stack.
127
128
 
128
129
  ## Why FalaAI
@@ -131,7 +132,7 @@ FalaAI API is an **AI conversation-intelligence API** for analyzing customer-ser
131
132
  - **Auditable by design** - a compliance risk score with detections/violations and an HTML report you can hand to an auditor.
132
133
  - **Credits, not tokens** - you know exactly what each call costs (per second of audio, per character of text, per conversation). Monthly plans + non-expiring top-up packs.
133
134
  - **Zero-storage** - audio/text/results are processed and discarded; only usage/audit records remain. TLS in transit + at rest, per-account isolation (multitenancy), LGPD (you are the controller; Action Tec is the processor).
134
- - **3 native languages** (PT/EN/ES) · **start free** (no card).
135
+ - **Multilingual** — transcription in **31 languages**, diagnosis in **21 locales**, risk audit and HTML reports in **3** (PT/EN/ES) · **start free** (no card).
135
136
  - **B2B ready** - one Enterprise plan serves N clients, no per-user fee (ideal for ISVs).
136
137
 
137
138
  ## Integrations
@@ -202,7 +203,7 @@ end
202
203
  | Requirement | Version |
203
204
  |---|---|
204
205
  | Ruby | 2.7+ |
205
- | API | v1.21.51 |
206
+ | API | v1.21.54 |
206
207
 
207
208
  ## Documentation
208
209
 
@@ -215,7 +216,7 @@ end
215
216
 
216
217
  ## Versioning
217
218
 
218
- Semantic versioning; the SDK version tracks the API version (`1.21.51`). See [CHANGELOG.md](CHANGELOG.md) and [Releases](https://github.com/ActionTecBr/falaai-api-ruby/releases).
219
+ Semantic versioning; the SDK version tracks the API version (`1.21.54`). See [CHANGELOG.md](CHANGELOG.md) and [Releases](https://github.com/ActionTecBr/falaai-api-ruby/releases).
219
220
 
220
221
  ## Security
221
222
 
data/docs/AnalysisApi.md CHANGED
@@ -26,7 +26,7 @@ FalaAI.configure do |config|
26
26
  end
27
27
 
28
28
  api_instance = FalaAI::AnalysisApi.new
29
- diagnostic_request = FalaAI::DiagnosticRequest.new({language: 'language_example', duration_seconds: 3.56}) # DiagnosticRequest |
29
+ diagnostic_request = FalaAI::DiagnosticRequest.new({language: 'language_example'}) # DiagnosticRequest |
30
30
 
31
31
  begin
32
32
  # Analyze a call transcript — 5 parallel analyses
@@ -93,7 +93,7 @@ FalaAI.configure do |config|
93
93
  end
94
94
 
95
95
  api_instance = FalaAI::AnalysisApi.new
96
- risk_audit_request = FalaAI::RiskAuditRequest.new({duration_seconds: 3.56, language: 'language_example', response_language: 'response_language_example'}) # RiskAuditRequest |
96
+ risk_audit_request = FalaAI::RiskAuditRequest.new({dialog: 'dialog_example', duration_seconds: 3.56, language: 'language_example', response_language: 'response_language_example'}) # RiskAuditRequest |
97
97
 
98
98
  begin
99
99
  # Compliance Risk Audit — conversation compliance analysis
@@ -6,7 +6,7 @@
6
6
  | ---- | ---- | ----------- | ----- |
7
7
  | **interlocutor** | **String** | Exact speaker label from the dialog (e.g. 'Speaker 1') | |
8
8
  | **name** | **String** | Participant name (optional) | [optional] |
9
- | **role** | **String** | agent | client | bot | |
9
+ | **role** | **String** | agent | client | bot (optional — omit/empty when unknown) | [optional] |
10
10
 
11
11
  ## Example
12
12
 
@@ -10,8 +10,8 @@
10
10
  | **audio_events** | [**Array<DiagnosticAudioEvent>**](DiagnosticAudioEvent.md) | Detected audio events with timestamps (required when using dialog) | [optional] |
11
11
  | **language** | **String** | Transcript language. Required. Accepted: en-US, pt-BR, es-ES, es-MX, fr-FR, de-DE, it-IT, pt-PT, zh-CN, ja-JP, ko-KR, ar-SA, hi-IN, ru-RU, id-ID, tr-TR, nl-NL, pl-PL, vi-VN, th-TH, en-GB | |
12
12
  | **response_language** | **String** | Language for the analysis results (labels, categories, levels). Can differ from 'language' (input). If omitted, uses 'language'. Accepted: en-US, es-ES, es-MX, pt-BR, fr-FR, de-DE, it-IT, pt-PT, zh-CN, ja-JP, ko-KR, ar-SA, hi-IN, ru-RU, id-ID, tr-TR, nl-NL, pl-PL, vi-VN, th-TH, en-GB. | [optional] |
13
- | **duration_seconds** | **Float** | Total audio duration in seconds. Required. Max 3h (10800s). | |
14
- | **client_reference_id** | **String** | Optional client-supplied ID echoed verbatim in the response. Use to correlate/sync with your system. Accepted charset: [A-Za-z0-9._:-], max 128 chars. Not idempotency. | [optional] |
13
+ | **duration_seconds** | **Float** | Total audio duration in seconds. Optional when using only 'text' (ignored — not read/used). Required when using 'dialog' (must be >= last turn end). Max 3h (10800s). | [optional] |
14
+ | **client_reference_id** | **String** | Optional client-supplied ID echoed verbatim in the response. Use to correlate/sync with your system. Accepted charset: [A-Za-z0-9 _/:.-], max 60 chars. Not idempotency. | [optional] |
15
15
  | **call_direction** | **String** | Who originated the call. inbound=client called, outbound=company called. If omitted, the LLM infers from context. | [optional] |
16
16
  | **participants** | [**Array<DiagnosticParticipant>**](DiagnosticParticipant.md) | Explicit participant roles. If omitted, the LLM infers from the dialog. When provided, used as ground truth (no inference) and echoed in analysis.participants_identified. | [optional] |
17
17
 
@@ -10,6 +10,7 @@
10
10
  | **analysis** | [**DiagnosticAnalysisMap**](DiagnosticAnalysisMap.md) | The 6 conversation analyses (5 + participants) | |
11
11
  | **usage** | [**DiagnosticUsage**](DiagnosticUsage.md) | Usage and processing information | |
12
12
  | **client_reference_id** | **String** | Client-supplied ID echoed verbatim (if provided in request) | [optional] |
13
+ | **html_report** | **String** | Visual HTML report of the diagnosis (base64 gzip). Only present when 'dialog' is provided; null for text-only requests. | [optional] |
13
14
 
14
15
  ## Example
15
16
 
@@ -22,7 +23,8 @@ instance = FalaAI::DiagnosticResponse.new(
22
23
  object: null,
23
24
  analysis: null,
24
25
  usage: null,
25
- client_reference_id: null
26
+ client_reference_id: null,
27
+ html_report: null
26
28
  )
27
29
  ```
28
30
 
data/docs/Participant.md CHANGED
@@ -6,7 +6,7 @@
6
6
  | ---- | ---- | ----------- | ----- |
7
7
  | **interlocutor** | **String** | Exact identifier as used in dialog (e.g. 'Interlocutor 1', 'Antonio') | |
8
8
  | **name** | **String** | Participant name (humanizes report, does not affect logic) | [optional] |
9
- | **role** | **String** | Role: agent (human operator), client (customer), bot (IVR/AI) | |
9
+ | **role** | **String** | Role: agent (human operator), client (customer), bot (IVR/AI). Required for risk audit. | |
10
10
 
11
11
  ## Example
12
12
 
@@ -5,7 +5,7 @@
5
5
  | Name | Type | Description | Notes |
6
6
  | ---- | ---- | ----------- | ----- |
7
7
  | **interlocutor** | **String** | Exact speaker label from the dialog (e.g. 'Speaker 1') | |
8
- | **role** | **String** | Role: agent | client | bot | agent_requester | agent_custodian | |
8
+ | **role** | **String** | Role: agent | client | bot | agent_requester | agent_custodian (null when not informed/inferred) | [optional] |
9
9
  | **name** | **String** | Participant name if mentioned in the dialogue | [optional] |
10
10
  | **confidence** | **String** | high | medium | low | [optional] |
11
11
  | **evidence** | **String** | Exact verbatim quote supporting the role (no timestamps) | [optional] |
@@ -5,16 +5,15 @@
5
5
  | Name | Type | Description | Notes |
6
6
  | ---- | ---- | ----------- | ----- |
7
7
  | **model** | **String** | Analysis model. Always 'falaai-risk-audit-1' | [optional][default to 'falaai-risk-audit-1'] |
8
- | **text** | **String** | Plain transcript (fallback if dialog is empty). At least one of 'dialog' or 'text' required. Max 300,000 characters | [optional][default to ''] |
9
- | **dialog** | **String** | Diarized transcript with speaker turns. PRIMARY source. Speaker labels accepted (any case): 'Speaker N', 'Interlocutor N', 'Hablante N', 'Locutor N', 'Orador N' (space or underscore). Normalized internally to 'Speaker N' in the response. Max 300,000 characters | [optional][default to ''] |
8
+ | **dialog** | **String** | Diarized transcript with speaker turns. REQUIRED — risk audit only accepts diarized conversations; plain 'text' is not accepted. Speaker labels accepted (any case): 'Speaker N', 'Interlocutor N', 'Hablante N', 'Locutor N', 'Orador N' (space or underscore). Normalized internally to 'Speaker N' in the response. Max 300,000 characters | |
10
9
  | **audio_events** | [**Array<DiagnosticAudioEvent>**](DiagnosticAudioEvent.md) | Audio events with timestamps (correlated with turns when diarization is present) | [optional] |
11
- | **duration_seconds** | **Float** | Total audio duration in seconds. Required. Max 3h (10800s). | |
10
+ | **duration_seconds** | **Float** | Total audio duration in seconds. Required. Must be >= last turn end. Max 3h (10800s). | |
12
11
  | **language** | **String** | Language of the transcript being analyzed. Must match the dialog/text language. Accepted: pt-BR, en-US, es-ES. | |
13
12
  | **response_language** | **String** | Language for analysis results (labels, categories, levels, actions, HTML report). Can differ from 'language'. Accepted: pt-BR, en-US, es-ES. | |
14
13
  | **call_direction** | **String** | Who originated the call. inbound=client called, outbound=company called. If omitted, LLM infers from context. | [optional] |
15
14
  | **participants** | [**Array<Participant>**](Participant.md) | Explicit participant roles. If omitted, LLM infers from dialog (Lei 17). When provided, used as ground truth — no inference. | [optional] |
16
15
  | **response_format** | **String** | Response format version. Only 'v2' (structured EN-US blocks) is available today. | [optional][default to 'v2'] |
17
- | **client_reference_id** | **String** | Optional client-supplied ID echoed verbatim in the response. Use to correlate/sync with your system. Accepted charset: [A-Za-z0-9._:-], max 128 chars. Not idempotency. | [optional] |
16
+ | **client_reference_id** | **String** | Optional client-supplied ID echoed verbatim in the response. Use to correlate/sync with your system. Accepted charset: [A-Za-z0-9 _/:.-], max 60 chars. Not idempotency. | [optional] |
18
17
 
19
18
  ## Example
20
19
 
@@ -23,7 +22,6 @@ require 'falaai-api'
23
22
 
24
23
  instance = FalaAI::RiskAuditRequest.new(
25
24
  model: null,
26
- text: null,
27
25
  dialog: null,
28
26
  audio_events: null,
29
27
  duration_seconds: null,
data/docs/SpeechApi.md CHANGED
@@ -29,7 +29,7 @@ file = File.new('/path/to/some/file') # File |
29
29
  opts = {
30
30
  model: 'model_example', # String |
31
31
  language: 'language_example', # String |
32
- client_reference_id: 'client_reference_id_example' # String | Optional client-supplied ID echoed verbatim in the response. Use to correlate/sync with your system. Accepted charset: [A-Za-z0-9._:-]. Not idempotency.
32
+ client_reference_id: 'client_reference_id_example' # String | Optional client-supplied ID echoed verbatim in the response. Use to correlate/sync with your system. Accepted charset: [A-Za-z0-9 _/:.-], max 60 chars. Not idempotency.
33
33
  }
34
34
 
35
35
  begin
@@ -65,8 +65,8 @@ end
65
65
  | ---- | ---- | ----------- | ----- |
66
66
  | **file** | **File** | | |
67
67
  | **model** | **String** | | [optional][default to 'falaai-transcribe-1'] |
68
- | **language** | **String** | | [optional][default to 'pt'] |
69
- | **client_reference_id** | **String** | Optional client-supplied ID echoed verbatim in the response. Use to correlate/sync with your system. Accepted charset: [A-Za-z0-9._:-]. Not idempotency. | [optional] |
68
+ | **language** | **String** | | [optional] |
69
+ | **client_reference_id** | **String** | Optional client-supplied ID echoed verbatim in the response. Use to correlate/sync with your system. Accepted charset: [A-Za-z0-9 _/:.-], max 60 chars. Not idempotency. | [optional] |
70
70
 
71
71
  ### Return type
72
72
 
data/docs/WhatsappApi.md CHANGED
@@ -33,7 +33,8 @@ date_format = 'date_format_example' # String |
33
33
  opts = {
34
34
  gap_minutes: 8.14, # Float |
35
35
  min_messages: 56, # Integer |
36
- chars_per_minute: 8.14, # Float |
36
+ voice_note: true, # Boolean | Transcrever mensagens de voz/video gravadas na hora?
37
+ expression: true, # Boolean | Descrever expressoes visuais (figurinha/GIF/imagem)?
37
38
  client_reference_id: 'client_reference_id_example' # String |
38
39
  }
39
40
 
@@ -75,7 +76,8 @@ end
75
76
  | **date_format** | **String** | | |
76
77
  | **gap_minutes** | **Float** | | [optional][default to 720] |
77
78
  | **min_messages** | **Integer** | | [optional][default to 2] |
78
- | **chars_per_minute** | **Float** | | [optional][default to 800] |
79
+ | **voice_note** | **Boolean** | Transcrever mensagens de voz/video gravadas na hora? | [optional][default to true] |
80
+ | **expression** | **Boolean** | Descrever expressoes visuais (figurinha/GIF/imagem)? | [optional][default to true] |
79
81
  | **client_reference_id** | **String** | | [optional] |
80
82
 
81
83
  ### Return type
data/docs/WhatsappMeta.md CHANGED
@@ -13,13 +13,14 @@
13
13
  | **_end** | **String** | Window end (ISO) | |
14
14
  | **gap_minutes** | **Float** | Gap used to split conversations | |
15
15
  | **min_messages** | **Integer** | Minimum messages per conversation | |
16
- | **chars_per_minute** | **Float** | Chars per minute used to estimate duration | |
17
16
  | **turns** | **Integer** | Total parsed turns | |
18
17
  | **system_lines** | **Integer** | System lines ignored | |
19
18
  | **conversations_total** | **Integer** | Conversations before window filter | |
20
19
  | **conversations_in_window** | **Integer** | Conversations overlapping the window | |
21
20
  | **monologues_dropped** | **Integer** | Single-speaker conversations dropped | |
22
21
  | **conversations_selected** | **Integer** | Final conversations returned | |
22
+ | **voice_note** | **Boolean** | Voice/video medias were transcribed | |
23
+ | **expression** | **Boolean** | Visual expressions were described | |
23
24
 
24
25
  ## Example
25
26
 
@@ -36,13 +37,14 @@ instance = FalaAI::WhatsappMeta.new(
36
37
  _end: null,
37
38
  gap_minutes: null,
38
39
  min_messages: null,
39
- chars_per_minute: null,
40
40
  turns: null,
41
41
  system_lines: null,
42
42
  conversations_total: null,
43
43
  conversations_in_window: null,
44
44
  monologues_dropped: null,
45
- conversations_selected: null
45
+ conversations_selected: null,
46
+ voice_note: null,
47
+ expression: null
46
48
  )
47
49
  ```
48
50
 
@@ -6,7 +6,12 @@
6
6
  | ---- | ---- | ----------- | ----- |
7
7
  | **conversations** | **Integer** | Number of conversations returned | |
8
8
  | **characters** | **Integer** | Total characters across conversations | |
9
- | **credits_consumed** | **Integer** | Credits consumed (1 per conversation) | |
9
+ | **expressions** | **Integer** | Expression tokens across conversations (sticker/emoji/gif) | |
10
+ | **voice_notes** | **Integer** | Voice notes (PTT) resolved to text | |
11
+ | **conversation_credits** | **Integer** | Credits for conversations (2 each) | |
12
+ | **expression_credits** | **Float** | Credits for expressions (0.2 each) | |
13
+ | **audio_credits** | **Float** | Credits for audio duration (0.2 per second) | |
14
+ | **credits_consumed** | **Integer** | Total credits = ceil(conversation_credits + expression_credits + audio_credits) | |
10
15
  | **processing_ms** | **Integer** | Total processing time in milliseconds | |
11
16
 
12
17
  ## Example
@@ -17,6 +22,11 @@ require 'falaai-api'
17
22
  instance = FalaAI::WhatsappUsage.new(
18
23
  conversations: null,
19
24
  characters: null,
25
+ expressions: null,
26
+ voice_notes: null,
27
+ conversation_credits: null,
28
+ expression_credits: null,
29
+ audio_credits: null,
20
30
  credits_consumed: null,
21
31
  processing_ms: null
22
32
  )