Pagination With No Explanation

Anyone care to explain pagination for Advanced Trade?

The documentation provided is quite lacking:

https://docs.cloud.coinbase.com/advanced-trade-api/reference/retailbrokerageapi_getaccounts

When I send an accounts request I receive the first 49 records (49 is the default as stated in the docs).

https://api.coinbase.com/api/v3/brokerage/accounts

'has_next': True, 'cursor': '9736304d', 'size': 49

However when I request the next cursor as stated in the docs I receive a 401 - Unauthorized response. Funny.

https://api.coinbase.com/api/v3/brokerage/accounts?cursor=9736304d

The request above gives me a 401 response with the same authentication that worked in the previous request.

It’s cute that there’s multiple explanations of pagination scattered throughout the various documentations for Coinbase Cloud services but I really just want a straightforward explanation where I don’t have to beg for clarity.

Commerce API

Pro API

How is this acceptable for a deployable product? Coinbase is shutting down Pro without complete support for Advanced Trade? I truly feel like I’m being ignored here and there are plenty of other posts throughout these forums with the same sentiment.

I just hope I don’t get a default bot response from the moderators and then have to wait 2 weeks for a response to documentation that should have existed months ago.

I’m frustrated.

2 Likes

Hi @tripster202! We apologize for any inconvenience that this may have caused you and we understand your frustration about the unclear explanation of pagination in the Advanced Trade API documentation. Rest assured that we will do the best that we can to help you on this, but to further investigate your concern, we will need the following information:

  • Please provide a screenshot of the steps you made when you experienced this behavior

Moreover, we have logged your concern about the vagueness of the description of pagination in the Advanced Trade API documentation as feedback with our internal teams so we can continue improving our user experience. Most new features and improvements to our products and its documentation come directly from feedback like yours, so it’s very valuable to us. While we can’t offer any specific timeline for adding features, we are constantly working to build products our customers will love.

If you want to stay up to date on the latest from Coinbase Cloud, you can also bookmark the following webpage and subscribe to email updates at the bottom of the page: https://www.coinbase.com/cloud/discover

We will await your response and once you send us the information requested above, we’ll work to quickly address this issue.

We appreciate your patience and understanding on this.

When you sign the message are you signing with the cursor param in the url? If you are, try it without. You should only sign parameters that go in the body of a request, not the url.

So sign it with this:

/api/v3/brokerage/accounts

Do not sign it with this:

/api/v3/brokerage/accounts?cursor=9736304d

Or you will get unauthorized.

3 Likes

@jmicko You are correct. Solved.

This is very odd behavior considering that I am coming from the Coinbase Pro API.

Python Example

I was re-reading the docs at the link above and I found this line of code in the example to prove you correct.

message = timestamp + request.method + request.path_url.split('?')[0] + str(request.body or '')

The request URL is split on the ? character indicating that only the base of the URL is used for authentication and not at all the paramaters. Coinbase Pro API did not care if parameters were included.

I should have read more about this in the guides. I had tunnel vision on pagination.

Request Path

The Advanced Trade requestPath should only include the path of the API endpoint in the string for hashing. It should not include the base URL (protocol and domain) nor any query parameters. By contrast, the Sign In requestPath does include query parameters.

Some requests include query parameters, some do not. I appreciate your expertise.

1 Like