There are really two issues I'm mentioning here, but they are closely related.
1. The docstrings for many methods in client_methods.py suggest there are parameters that don't actually exist on those methods
This was already mentioned in this issue for a different method, but it looks like it was never investigated.
I'm not really sure why a snippet was needed. It's pretty obvious when looking at the code that the docstring for the query_companies method suggests there are several available parameters (filter, top, skip, orderBy), but the method actually makes no use of them. They aren't even defined in the method signature.
def query_companies(self, include=None):
See query_companies
See query_customers
See query_certificates
I won't go through and check every method, but it looks like almost all of the query_xyz methods don't actually implement all of the parameters listed in the docstrings.
2. The include parameter doesn't seem to function properly in its current state
(I've only tested this on the query_customers method, but I'm guessing the behavior is likely the same for other methods.)
I initially tried to solve the issue above by checking to see if perhaps the include parameter was meant to be a dictionary of all of the other parameters. I can see in these methods where the include parameter is passed to requests.get, so I thought maybe that was the issue.
return requests.get('{}/api/v2/companies/{}/customers'.format(self.base_url, companyId),
auth=self.auth, headers=self.client_header, params=include,
timeout=self.timeout_limit if self.timeout_limit else 1200)
It turns out that isn't the problem, but I did discover that the include parameter doesn't really seem to work. When I try to include attributes in my query like so I don't receive the attributes.
response = client.query_customers(1000, include="attributes")
{'alternateId': hidden',
'attnName': '',
'city': 'hidden',
'companyId': 1234,
'contactName': '',
'country': 'US',
'createdDate': '2026-07-21T18:23:09.590243',
'customerCode': '1234',
'emailAddress': 'hidden',
'faxNumber': '1234',
'id': 1,
'isBill': True,
'isShip': False,
'line1': 'hidden',
'line2': '',
'modifiedDate': '2026-07-21T18:23:09.590243',
'name': 'hidden',
'phoneNumber': '1234',
'postalCode': '1234',
'region': 'XX',
'taxpayerIdNumber': ''}
If I go in and patch the requests.get call in my virtual environment to this and remove the parameter from the query_customers method, I do end up getting the customer attributes back from the api.
return requests.get('{}/api/v2/companies/{}/customers?$include=attributes'.format(self.base_url, companyId),
auth=self.auth, headers=self.client_header, params=include,
timeout=self.timeout_limit if self.timeout_limit else 1200)
response = client.query_customers(1000)
{'alternateId': 'hidden',
'attnName': '',
'attributes': [],
'city': 'hidden',
'companyId': 1234,
'contactName': '',
'country': 'US',
'createdDate': '2026-07-21T18:23:09.590243',
'customerCode': '1234',
'emailAddress': 'hidden',
'faxNumber': '1234',
'id': 1,
'isBill': True,
'isShip': False,
'line1': 'hidden',
'line2': '',
'modifiedDate': '2026-07-21T18:23:09.590243',
'name': 'hidden',
'phoneNumber': '1234',
'postalCode': '1234',
'region': 'XX',
'taxpayerIdNumber': ''}
There are really two issues I'm mentioning here, but they are closely related.
1. The docstrings for many methods in client_methods.py suggest there are parameters that don't actually exist on those methods
This was already mentioned in this issue for a different method, but it looks like it was never investigated.
I'm not really sure why a snippet was needed. It's pretty obvious when looking at the code that the docstring for the
query_companiesmethod suggests there are several available parameters (filter, top, skip, orderBy), but the method actually makes no use of them. They aren't even defined in the method signature.See query_companies
See query_customers
See query_certificates
I won't go through and check every method, but it looks like almost all of the
query_xyzmethods don't actually implement all of the parameters listed in the docstrings.2. The include parameter doesn't seem to function properly in its current state
(I've only tested this on the
query_customersmethod, but I'm guessing the behavior is likely the same for other methods.)I initially tried to solve the issue above by checking to see if perhaps the include parameter was meant to be a dictionary of all of the other parameters. I can see in these methods where the include parameter is passed to
requests.get, so I thought maybe that was the issue.It turns out that isn't the problem, but I did discover that the include parameter doesn't really seem to work. When I try to include attributes in my query like so I don't receive the attributes.
{'alternateId': hidden', 'attnName': '', 'city': 'hidden', 'companyId': 1234, 'contactName': '', 'country': 'US', 'createdDate': '2026-07-21T18:23:09.590243', 'customerCode': '1234', 'emailAddress': 'hidden', 'faxNumber': '1234', 'id': 1, 'isBill': True, 'isShip': False, 'line1': 'hidden', 'line2': '', 'modifiedDate': '2026-07-21T18:23:09.590243', 'name': 'hidden', 'phoneNumber': '1234', 'postalCode': '1234', 'region': 'XX', 'taxpayerIdNumber': ''}If I go in and patch the
requests.getcall in my virtual environment to this and remove the parameter from thequery_customersmethod, I do end up getting the customer attributes back from the api.{'alternateId': 'hidden', 'attnName': '', 'attributes': [], 'city': 'hidden', 'companyId': 1234, 'contactName': '', 'country': 'US', 'createdDate': '2026-07-21T18:23:09.590243', 'customerCode': '1234', 'emailAddress': 'hidden', 'faxNumber': '1234', 'id': 1, 'isBill': True, 'isShip': False, 'line1': 'hidden', 'line2': '', 'modifiedDate': '2026-07-21T18:23:09.590243', 'name': 'hidden', 'phoneNumber': '1234', 'postalCode': '1234', 'region': 'XX', 'taxpayerIdNumber': ''}