Use the Community API to query tags

Screen Shot 2017-08-01 at 4.50.03 PM.png

Let's talk about Tags

There are over 16k tags on the Community. You can view the most popular tags here.

To query posts by tags we can use the public Community API v2. The examples below only work for public posts, not posts in private boards. These are anonymous requests and can access data available to users who are not signed into the Community.

Using the API

Here is the foundation of our API request:

https://community.atlassian.com/api/2.0/search?q=

Next, we're going to use a special query language to find our content.

LiQL, a SQL-like query language. Use a LiQL statement to define search criteria for any complex query.

Okay, then.. let's make a LiQL query!

https://community.atlassian.com/api/2.0/search?q= SELECT * FROM messages

> View this response

This gets us a pile of JSON that is a list of unsorted messages and it is capped at 25 (more on that later).

More complex queries

Let's add some more parameters here to search by tags

WHERE tags.text = 'jira service desk'

WHERE tags.text IN ('jira service desk', 'jsd', 'jira-service-desk')

Let's limit these messages to Questions:

AND conversation.style='qanda'

Maybe we want only topic messages that have no replies

AND depth = 0 AND replies.count(*) = 0

Here we go:

https://community.atlassian.com/api/2.0/search?q=SELECT * FROM messages WHERE tags.text IN ('sourcetree') AND conversation.style='qanda' AND replies.count(*) = 0 AND depth = 0

> View this response

Can I sort by date? Sounds useful to me.

ORDER BY post_time DESC

Getting closer.. why are there are 25 messages? That's the default query limit. Let's increase it.

LIMIT 1000

Looking good. Let's put that all together...

https://community.atlassian.com/api/2.0/search?q=SELECT * FROM messages WHERE tags.text IN ('sourcetree') AND conversation.style='qanda' AND replies.count(*) = 0 AND depth = 0 ORDER BY post_time DESC LIMIT 1000

> View this response

It looks a bit ugly. Your computer shouldn't care! Okay, you're right. You can use a browser extension or another tool.. but we can make it look better in the browser without all that. Add this to the URL.

&api.pretty_print=true

Nice work!

Bringing it all together

That query we just created is the same one that powers this page:

https://community.atlassian.com/t5/tag/sourcetree/tg-p?style=qanda&sort=recent&unanswered=true

But, hopefully you will find the JSON data useful. Remember, unlike the link above, you can combine multiple tags into a single query. That's all for now folks.

Add your comments below with specific questions or concerns.

 

>> Updates based on comments

Query large sets of messages

To query over large sets of results you add the following to the very end of your query:

OFFSET 1000

The OFFSET value must be divisible by the LIMIT value

Limit the query response

Select only the parts of the message you need instead of the wildcard *

SELECT view_href, subject, body FROM ...

 

Keep the questions coming!

 

9 comments

Handy stuff, thanks.

Is there a way to page a large set of results. Guessing at a limit of 1000 seems a bit arbitrary. And can we get a link to the LiQL docs please.

@Steven Behnke I wanted to make sure you saw this also!

Tyler Tadej Atlassian Team Aug 01, 2017

@Matt Doar [ServiceRocket], great questions. For large sets of results you could use this:

OFFSET 1000

 That would get the 2nd page of results.

The docs are here and you'll need to register for an account: https://community.lithium.com/t5/Developer-Documentation/bd-p/dev-doc-portal?section=commv2

In the meantime, if you have specific questions I can try and answer them in another post or in this reply thread.

Steven Behnke Community Champion Aug 01, 2017

:o

My mind is blown. I have no idea what to do with this yet... But thanks! My mind is a spinning!

Thanks Tyler, we've been using this for a little while now, pulling related posts into our JIRA instance so we can work like regular support requests.

 

Greatly appreciated.

Like 1 person likes this

@Daniel Wester is doing some amazing stuff with this too -- hopefully we can talk him into writing an article about it. :) 

Daniel Wester Community Champion Sep 02, 2017

Wanted to drop this out there in case there are people that aren't on the Atlassian Developer Community. https://community.developer.atlassian.com/t/atlassian-community-integration-with-jsd/8153

Fadoua Boualem Community Champion Jun 06, 2018

Thanks @Monique van den Berg for sharing the link! Very useful.

Comment

Log in or Sign up to comment
Community showcase
Published Oct 31, 2018 in Feedback & Announcements

November monthly challenge badge is now live!

Ready for another challenge? This month we're challenging you to share your knowledge and answer questions. We're calling it Knowvember! (And by we, I mean me. You can blame me.) To earn this ...

373 views 6 11
Read article

Atlassian User Groups

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

Find a group

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

Find my local user group

Unfortunately there are no AUG chapters near you at the moment.

Start an AUG

You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs

Groups near you