Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

It's not the same without you

Join the community to find out what other Atlassian users are discussing, debating and creating.

Atlassian Community Hero Image Collage

Pagination not working when using search API with text searches

We are using search API of confluence cloud(https://developer.atlassian.com/cloud/confluence/advanced-searching-using-cql/).

 

We are performing text searches with the above API.

 

Example of our query is below:

https://mydomain/wiki/rest/api/search?limit=2&start=1&cql=type=page and space='TS' and title='test'

We have already have 7 records matching when we use only limit=10, one first call limit=2&start=0, I am getting 2 records but when I use limit=2&start=1 or limit=2&start=2 or 'start' more than 0, I am getting empty array in results of the API. Ideally we should get the paginated records in the results of the API, but from API we are not getting proper response.

 

Does Anybody faced the similar issue or had a solution for the above problem?

 

Thanks.

WMIO

2 answers

EDIT: sorry, I'm using Confluence SERVER search API.  I'll leave this post here in case other server devs end up here.  Pagination of the search API is hard to use and broken in some cases:

 

 

I'm using the search REST API and the "next" link in the results from my first call doesn't work.  It returns HTTP 400 Bad Request, saying that the "CQL query parameter is required but was empty".

I think it is odd that the search API (first request, no pagination params specified) works if an "=" that is contained in the value of the cql param is not URL encoded (like /rest/api/content/search?cql=macro=multiexcerpt). 

It also works if the "=" IS URL encoded (like /rest/api/content/search?cql=macro%3Dmultiexcerpt) which I would expect.  Why would the API allow unencoded cql parameter values?  That is so odd and feels like it is never going to work.

 

UPDATE:

This works for me (SERVER API).  I worked around any oddness in the API for parsing the cql parameter value by always encoding it and specifying it separate from the parameters for pagination:

1st request:

curl --user username:password -G "https://my.domain.net/rest/api/content/search" --data-urlencode "cql=macro=multiexcerpt"

2nd request:

curl --user username:password -G "https://my.domain.net/rest/api/content/search?start=25&limit=25" --data-urlencode "cql=macro=multiexcerpt"

 

We're running into a similar issue where https://our-subdomain.atlassian.net/wiki/rest/api/search?cql=label=ourlabel&limit=10&start=10&expand=content.metadata.labels,content.history.lastUpdated

returns the same value regardless of what start is set to. We have 72 results listed, but we can't access them for some reason by changing start.

Suggest an answer

Log in or Sign up to answer
DEPLOYMENT TYPE
CLOUD
PRODUCT PLAN
FREE
PERMISSIONS LEVEL
Site Admin
TAGS
Community showcase
Published in Confluence

Confluence Mythbusters: Does Atlassian even use Confluence?

Hi, Confluence collaborators! As part of #Confluence-Collaboratory month, we’ve created a very special Mythsbusters segment, where we're dive into an interesting myth and uncover the truth behind i...

1,746 views 8 32
Read article

Community Events

Connect with like-minded Atlassian users at free events near you!

Find an event

Connect with like-minded Atlassian users at free events near you!

Unfortunately there are no Community Events near you at the moment.

Host an event

You're one step closer to meeting fellow Atlassian users at your local event. Learn more about Community Events

Events near you