## Get Rows `client.campaigns.getRows(stringid, CampaignGetRowsParamsquery, RequestOptionsoptions?): CampaignGetRowsResponse` **get** `/campaigns/{id}/rows` Retrieve a paginated list of rows (contacts) for a given campaign. Supports filtering by text query, call statuses, and call result. ### Parameters - `id: string` - `query: CampaignGetRowsParams` - `page: number` - `page_size: number` - `query?: string` - `result?: "IVR" | "voicemail" | "human" | 4 more` - `"IVR"` - `"voicemail"` - `"human"` - `"unknown"` - `"ios-screening-filter"` - `"all"` - `"none"` - `statuses?: string` ### Returns - `CampaignGetRowsResponse` - `page: number` - `page_size: number` - `rows: Array` - `id: string` - `input_data: Record` - `phone_number: string` - `row_index: number` - `call?: Call` This represent a call "order" that was requested by the user. A call order can be resolved over multiple call attempts spanning up to a few days. - `id: string` The ID of the call. - `assistant: Assistant | null` - `id: string` - `background_sound: "audio/office.ogg" | null` The background sound to play during the call. Useful to give the impression that your AI agent is in an office. - `"audio/office.ogg"` - `calendly: Calendly | null` - `connection_id: string` The connection ID representing the link between your Calendly account and Revox. - `event_type_id: string` The event type ID representing the event type to schedule. (eg: https://api.calendly.com/event_types/b2330295-2a91-4a1d-bb73-99e7707663d5) - `call_retry_config: CallRetryConfig | null` Configuration for call retry behavior including time windows, delays, and max iterations. If not provided, defaults will be used. - `calling_windows: Array` - `calling_window_end_time: string` End time for the calling window in the recipient's timezone (or timezone_override if provided). Format: 'HH:mm' (24-hour) or 'H:mma' (12-hour). Examples: '17:00', '6pm'. Default: '18:00'. - `calling_window_start_time: string` Start time for the calling window in the recipient's timezone (or timezone_override if provided). Format: 'HH:mm' (24-hour) or 'H:mma' (12-hour). Examples: '09:00', '10am'. Default: '10:00'. - `retry_delay_seconds: number` Delay between retry attempts in seconds. Default: 7200 (2 hours). - `max_retry_attempts: number` Maximum number of call retry attempts. Default: 3. - `timezone?: string | null` Optional IANA timezone identifier to override the automatic timezone detection from phone number. If not provided, timezone is determined from the recipient's phone number country code. Examples: 'America/New_York', 'Europe/Paris'. - `created_at: unknown` - `end_of_call_sentence: string | null` - `first_sentence: string | null` - `first_sentence_delay_ms: number` Delay in milliseconds before speaking the first sentence. Default: 400. - `first_sentence_mode: "generated" | "static" | "none"` - `"generated"` - `"static"` - `"none"` - `ivr_navigation_enabled: boolean` Enable IVR navigation tools. When enabled, the assistant can send DTMF tones and skip turns to navigate phone menus. - `llm_model: UnionMember0 | UnionMember1` - `UnionMember0` - `name: "gpt-4.1" | "ministral-3-8b-instruct"` - `"gpt-4.1"` - `"ministral-3-8b-instruct"` - `type: "dedicated-instance"` - `"dedicated-instance"` - `UnionMember1` - `openrouter_model_id: string` The model ID to use from OpenRouter. eg: openai/gpt-4.1 - `openrouter_provider: string` The provider to use from OpenRouter. eg: nebius, openai, azure, etc. - `type: "openrouter"` Use a model from OpenRouter. - `"openrouter"` - `max_call_duration_secs: number` The maximum duration of the call in seconds. This is the maximum time the call will be allowed to run. - `name: string` - `organization_id: string` - `prompt: string` - `structured_output_config: Array | null` The structured output config to use for the call. This is used to extract the data from the call (like email, name, company name, etc.). - `name: string` - `required: boolean` - `type: "string" | "number" | "boolean" | 3 more` - `"string"` - `"number"` - `"boolean"` - `"enum"` - `"date"` - `"datetime"` - `description?: string` - `enum_options?: Array` - `transfer_phone_number: string | null` Phone number to transfer calls to when users request to speak to a human agent. - `updated_at: unknown` - `voice: Voice | null` - `id: string` The ID of the voice. - `provider: "cartesia" | "elevenlabs"` The provider of the voice. - `"cartesia"` - `"elevenlabs"` - `speed?: number` The speed of the voice. Range depends on provider: Cartesia 0.6–1.5, ElevenLabs 0.7–1.2. Default is 1.0. - `voicemail_message: string | null` If set, when voicemail is detected the agent will speak this message then hang up; if null, hang up immediately. - `webhook_url: string | null` The webhook URL to call when the call is completed. - `faq_items?: Array` - `answer: string` - `question: string` - `id?: string` - `needs_human_answer?: boolean` - `source?: "human" | "ai"` - `"human"` - `"ai"` - `pending_faq_count?: number` - `call_attempts: Array` All call attempts for this call order, ordered by most recent first. - `id: string` The ID of the call attempt. - `answered_at: unknown` The time the call was answered. - `dial_error: "number_non_attributed" | "too_many_calls" | "busy" | 5 more | null` The SIP error that occurred. - `"number_non_attributed"` - `"too_many_calls"` - `"busy"` - `"temporarily_unavailable"` - `"no_answer"` - `"no_international_permission"` - `"precondition_failed"` - `"non_classified_error"` - `ended_at: unknown` The time the call ended. - `phone_number: string` The phone number that was called. Formatted in E.164 format. Example: +1234567890 - `recording_url: string | null` The URL of the audio recording of the call. - `result: "IVR" | "voicemail" | "human" | 2 more | null` - `"IVR"` - `"voicemail"` - `"human"` - `"unknown"` - `"ios-screening-filter"` - `started_at: unknown` The time the call started. - `status: "queued" | "ringing" | "ongoing" | 2 more` The status of the call attempt. - `"queued"` - `"ringing"` - `"ongoing"` - `"completed"` - `"error"` - `end_reason?: string | null` Reason for ending the call when ended_by is 'agent'. E.g. 'tool_end_call', 'voicemail', 'transfer', 'ivr_no_navigate'. - `ended_by?: "agent" | "user" | "system" | null` Who ended the call: 'agent' (AI agent), 'user' (caller/callee hung up), or 'system' (e.g. max duration limit). - `"agent"` - `"user"` - `"system"` - `structured_output?: Record | null` The data extracted from the call, using the structured output config from the parent call object. - `transcript?: Array | null` The transcript of the call. - `content: string` - `role: "user" | "assistant" | "tool"` - `"user"` - `"assistant"` - `"tool"` - `tool_arguments?: Record | string` - `Record` - `string` - `tool_is_error?: boolean` - `tool_name?: string` - `call_retry_config: CallRetryConfig | null` Configuration for call retry behavior including time windows, delays, and max iterations. If not provided, defaults will be used. - `calling_windows: Array` - `calling_window_end_time: string` End time for the calling window in the recipient's timezone (or timezone_override if provided). Format: 'HH:mm' (24-hour) or 'H:mma' (12-hour). Examples: '17:00', '6pm'. Default: '18:00'. - `calling_window_start_time: string` Start time for the calling window in the recipient's timezone (or timezone_override if provided). Format: 'HH:mm' (24-hour) or 'H:mma' (12-hour). Examples: '09:00', '10am'. Default: '10:00'. - `retry_delay_seconds: number` Delay between retry attempts in seconds. Default: 7200 (2 hours). - `max_retry_attempts: number` Maximum number of call retry attempts. Default: 3. - `timezone?: string | null` Optional IANA timezone identifier to override the automatic timezone detection from phone number. If not provided, timezone is determined from the recipient's phone number country code. Examples: 'America/New_York', 'Europe/Paris'. - `calls_count: number` The number of call attempts made. - `campaign: Campaign | null` - `id: string` - `name: string` - `created_at: unknown` The time the call order was created. - `direction: "inbound" | "outbound"` Whether the call is inbound or outbound. - `"inbound"` - `"outbound"` - `first_sentence_delay_ms: number` Delay in milliseconds before speaking the first sentence. Default: 400. - `from_phone_number: string` The phone number that made the call. Formatted in E.164 format. Example: +1234567890 - `is_cancelled: boolean` DEPRECATED: Whether the call has been cancelled. This is derived from `status`. Use `status` instead. - `is_completed: boolean` DEPRECATED: Whether the call has completed. This is derived from `status`. Use `status` instead. - `last_call_attempt: LastCallAttempt | null` This represent a single call attempt. A call attempt is a single call made to the phone number. - `id: string` The ID of the call attempt. - `answered_at: unknown` The time the call was answered. - `dial_error: "number_non_attributed" | "too_many_calls" | "busy" | 5 more | null` The SIP error that occurred. - `"number_non_attributed"` - `"too_many_calls"` - `"busy"` - `"temporarily_unavailable"` - `"no_answer"` - `"no_international_permission"` - `"precondition_failed"` - `"non_classified_error"` - `ended_at: unknown` The time the call ended. - `phone_number: string` The phone number that was called. Formatted in E.164 format. Example: +1234567890 - `recording_url: string | null` The URL of the audio recording of the call. - `result: "IVR" | "voicemail" | "human" | 2 more | null` - `"IVR"` - `"voicemail"` - `"human"` - `"unknown"` - `"ios-screening-filter"` - `started_at: unknown` The time the call started. - `status: "queued" | "ringing" | "ongoing" | 2 more` The status of the call attempt. - `"queued"` - `"ringing"` - `"ongoing"` - `"completed"` - `"error"` - `end_reason?: string | null` Reason for ending the call when ended_by is 'agent'. E.g. 'tool_end_call', 'voicemail', 'transfer', 'ivr_no_navigate'. - `ended_by?: "agent" | "user" | "system" | null` Who ended the call: 'agent' (AI agent), 'user' (caller/callee hung up), or 'system' (e.g. max duration limit). - `"agent"` - `"user"` - `"system"` - `structured_output?: Record | null` The data extracted from the call, using the structured output config from the parent call object. - `transcript?: Array | null` The transcript of the call. - `content: string` - `role: "user" | "assistant" | "tool"` - `"user"` - `"assistant"` - `"tool"` - `tool_arguments?: Record | string` - `Record` - `string` - `tool_is_error?: boolean` - `tool_name?: string` - `llm_model: UnionMember0 | UnionMember1` - `UnionMember0` - `name: "gpt-4.1" | "ministral-3-8b-instruct"` - `"gpt-4.1"` - `"ministral-3-8b-instruct"` - `type: "dedicated-instance"` - `"dedicated-instance"` - `UnionMember1` - `openrouter_model_id: string` The model ID to use from OpenRouter. eg: openai/gpt-4.1 - `openrouter_provider: string` The provider to use from OpenRouter. eg: nebius, openai, azure, etc. - `type: "openrouter"` Use a model from OpenRouter. - `"openrouter"` - `metadata: Record | null` Metadata stored with the call. - `organization_id: string` The ID of the organization that owns the call. - `scheduled_at: unknown` The time the call order is scheduled to start. - `status: "initializing" | "queued_for_calling" | "calling" | 4 more` The status of the call. - `"initializing"` - `"queued_for_calling"` - `"calling"` - `"scheduled"` - `"completed"` - `"cancelled"` - `"errored"` - `to_phone_number: string` The phone number that received the call. Formatted in E.164 format. Example: +1234567890 - `total: number` ### Example ```typescript import Revox from '@revoxai/sdk'; const client = new Revox({ apiKey: process.env['REVOX_API_KEY'], // This is the default and can be omitted }); const response = await client.campaigns.getRows('id', { page: 0, page_size: 0 }); console.log(response.page); ```