Considering this sentence from the documentation you linked to:
The list of contracts that were introduced by the workflow with workflow_id
While the Ledger API does not guarantee this, in practice this means that each individual response message contains the number of CreatedEvents of a transaction, that were still active at the time of the request. So the maximum number of contracts in this list is the same as the number of contracts created in a transaction, that havenβt been archived yet.
Update: Keep in mind that the specific Ledger API implementation is also free to send one CreatedEvent per GetActiveContractsResponse. The comment above is about the upper bound of the list.
No, the workflowID can be used to associate multiple transactions to the same business workflow. This is a user/application provided field in the Commands message.