I'm trying to use the above api and when calling it with valid datetime objects, I get this - it seems something is wrong with the request formatting.
File "/Users/username/PycharmProjects/redacted/redacted-root-fs/opt/redacted/bin/redacted-agent.py", line 225, in get_communications_call_records_pstn_calls
pstn_calls_get = await graph_call_records.microsoft_graph_call_records_get_pstn_calls_with_from_date_time_with_to_date_time(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/username/PycharmProjects/redacted/.venv/lib/python3.12/site-packages/msgraph/generated/communications/call_records/microsoft_graph_call_records_get_pstn_calls_with_from_date_time_with_to_date_time/microsoft_graph_call_records_get_pstn_calls_with_from_date_time_with_to_date_time_request_builder.py", line 57, in get
return await self.request_adapter.send_async(request_info, GetPstnCallsWithFromDateTimeWithToDateTimeGetResponse, error_mapping)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/username/PycharmProjects/redacted/.venv/lib/python3.12/site-packages/kiota_http/httpx_request_adapter.py", line 193, in send_async
await self.throw_failed_responses(response, error_map, parent_span, parent_span)
File "/Users/username/PycharmProjects/redacted/.venv/lib/python3.12/site-packages/kiota_http/httpx_request_adapter.py", line 575, in throw_failed_responses
raise exc
msgraph.generated.models.o_data_errors.o_data_error.ODataError:
APIError
Code: 400
message: None
error: MainError(additional_data={}, code='BadRequest', details=None, inner_error=InnerError(additional_data={}, client_request_id='a2df585a-db1a-49f6-813f-a4590775a846', date=datetime.datetime(2025, 5, 28, 3, 32, 49), odata_type=None, request_id='bc5007c6-4ec4-4aac-ac01-1b7d4ea22acb'), message="The DateTimeOffset text '2025-05-28T03:22:47+00:00toDateTime=2025-05-28T03:32:47+00:00' should be in format 'yyyy-mm-ddThh:mm:ss('.'s+)?(zzzzzz)?' and each field value is within valid range.", target=None)
#!/usr/bin/env python3
import asyncio
from datetime import datetime, timedelta
from azure.identity import DefaultAzureCredential
from msgraph import GraphServiceClient
# https://learn.microsoft.com/en-us/graph/api/callrecords-callrecord-getpstncalls?view=graph-rest-1.0&tabs=http
async def get_communications_call_records_pstn_calls(graph_service, from_date_time, to_date_time):
graph_call_records = graph_service.communications.call_records
pstn_calls_get = await graph_call_records.microsoft_graph_call_records_get_pstn_calls_with_from_date_time_with_to_date_time(
from_date_time=from_date_time, to_date_time=to_date_time).get()
pstn_call_rows = []
while pstn_calls_get:
pstn_call_rows.extend(pstn_calls_get.value)
if pstn_calls_get.odata_next_link:
pstn_calls_get = await graph_call_records.with_url(pstn_calls_get.odata_next_link).get()
else:
pstn_calls_get = None
return pstn_call_rows
def main():
azure_credential = DefaultAzureCredential()
scopes = ['https://graph.microsoft.com/.default']
# noinspection PyTypeChecker
graph_service = GraphServiceClient(credentials=azure_credential, scopes=scopes)
to_date_time = datetime.now()
from_date_time = to_date_time - timedelta(minutes=10)
asyncio.run(get_communications_call_records_pstn_calls(graph_service, from_date_time, to_date_time))
if __name__ == "__main__":
main()
Describe the bug
I'm trying to use the above api and when calling it with valid datetime objects, I get this - it seems something is wrong with the request formatting.
Expected behavior
Should get call logs
How to reproduce
SDK Version
1.31.0
Latest version known to work for scenario above?
No response
Known Workarounds
No response
Debug output
No response
Configuration
Other information
No response