# Conversations ## List conversations - [GET /calls](https://docs.converz.co/openapi/conversations/getcalls.md): This endpoint returns conversations as JSON rows, e.g., [{"call_id":1,"rep_id":"kees500"},{"call_id":2,"rep_id":"cas501"},{"call_id":3,"rep_id":"kris502"}] This is the default format for retrieving conversation-level data and attributes. ## Update one or more conversations by call_id. - [POST /calls](https://docs.converz.co/openapi/conversations/updatecalls.md): Update attributes on one or more conversations. Input format can be columnar, e.g., {"call_id":[1,2],"campaign":["A","B"]}, or row-wise, e.g., [{"call_id":1,"campaign":"A"},{"call_id":2,"campaign":"B"}]. Note: if a variable is supplied for only some rows, the value will be set to null for other rows, e.g., [{"call_id":1,"campaign":"A"},{"call_id":2,"subcampaign":"B1"}] will set conversation 1's subcampaign to null and conversation 2's campaign to null. A safe way to avoid bugs like this is to always use the columnar format, e.g., {"call_id":[1,2],"campaign":["A","B"]} doesn't set any values to null, or {"call_id":[1,2],"campaign":["A",null],"subcampaign":[null,"B1"]} only sets the subcampaign for conversation 2 and the campaign for conversation 1. Max rows per request: 100000.