> Fetch clean Markdown by appending `.md` to any page URL under https://signalwire.com/docs or requesting it with the HTTP header `Accept: text/markdown`. The root index at https://signalwire.com/docs/llms.txt lists the available documentation indexes. # RecordAction > Action handle for an active recording operation. [call-record]: /docs/server-sdks/reference/python/relay/call/record [base-action-interface]: /docs/server-sdks/reference/python/relay/actions [stop]: /docs/server-sdks/reference/python/relay/actions/record-action/stop [pause]: /docs/server-sdks/reference/python/relay/actions/record-action/pause [resume]: /docs/server-sdks/reference/python/relay/actions/record-action/resume Returned from [`call.record()`][call-record]. Tracks an active recording operation. Terminal states: `finished`, `no_input`. Inherits all properties and methods from the [base Action interface][base-action-interface] (`control_id`, `is_done`, `completed`, `result`, `wait()`). ## **Properties** No additional properties beyond the [base Action interface][base-action-interface]. ## **Methods** #### [stop](/docs/server-sdks/reference/python/relay/actions/record-action/stop) Stop recording immediately. #### [pause](/docs/server-sdks/reference/python/relay/actions/record-action/pause) Pause an active recording. #### [resume](/docs/server-sdks/reference/python/relay/actions/record-action/resume) Resume a paused recording. ## **Example** ```python {12} from signalwire.relay import RelayClient client = RelayClient( project="your-project-id", token="your-api-token", contexts=["default"], ) @client.on_call async def handle_call(call): await call.answer() action = await call.record(audio={"direction": "both", "format": "wav"}) # Pause during sensitive information await action.pause() # ... sensitive exchange ... await action.resume() # Wait for the recording to complete event = await action.wait() print(f"Recording URL: {event.params.get('record', {}).get('url')}") client.run() ``` > Action handle for an active recording operation. ## Docs - [pause](https://signalwire.com/docs/server-sdks/reference/python/relay/actions/record-action/pause.md): Pause an active recording. - [resume](https://signalwire.com/docs/server-sdks/reference/python/relay/actions/record-action/resume.md): Resume a paused recording. - [stop](https://signalwire.com/docs/server-sdks/reference/python/relay/actions/record-action/stop.md): Stop recording immediately.