-
Notifications
You must be signed in to change notification settings - Fork 28
LoveLive! School Idol API
If you're a developer and you would like to get the cards of the game in a convenient format, we provide a public REST API to get the cards, events, idols, and more!
We'd love to talk to you! If you're creating or you plan to create something that uses our API, contact us so we can help you, give you feedback, ideas, and even promote it when you're ready.
If you would like to get more data that is not available in the current API, contact us and we will see what we can do for you ;)
If you would like to contribute, see the contribute page.
Note that since we provide this service for free, unfortunately, we cannot 100% guarantee its uptime. However, we believe our architecture is reliable enough to be used in a production environment.
It returns JSON objects that you can easily parse and use in your own tools or services, using any programming language or library. It enables CORS, so you can use it in Javascript as well.
The guaranteed JSON fields are marked with ✅. You can consider that any other field might be null. The site is purposely very permissive in that matter, since we might not have all the information or users might not want to fill everything. We recommend you to make sure that your service works no matter what's missing.
Paginated endpoints give you the total number of elements in count
. If you want to know the total number of pages, you can just divide it by the page size, which is 10 by default and can be specified with the page_size
parameter.
When you use the ordering
parameter, you can specify multiple ordering fields using commas: ?ordering=rarity,attribute
, and you can reverse the order using -
: ?ordering=-rarity
. Most endpoints allow to order by any field. Some endpoints also allow you to randomize the results with ?ordering=random
.
-
String
may contain unicode characters, such as Japanese characters but not only. -
URL
are strings that always start withhttp://
-
Date
may be formatted differently, see each field and parameter individually. -
Boolean values in JSON are represented using
true
andfalse
, but boolean values given as parameters in your requests are expected to beTrue
orFalse
. -
Localized string
will return different strings depending on the HTTP headerAccept-Language
. The list of accepted languages is here. Default language isen
.
- On Twitter: @schoolidolapi
- Mailing list: schoolidolapi@googlegroups.com
Both get the exact same updates every time something changes on the API. I reply to replies/DMs/emails on both.
If you use the API, please follow one of them to make sure your service doesn't break when we change something.
If you want to follow every single thing about the development behind the API and School Idol Tomodachi, you can also follow the GitHub repository to see all the commits. I also keep the bug tracker updated with the upcoming features and bugs.
See also: API Changelog
-
Add slashes
/
at the end of all your API calls to avoid a redirection every time -
Don't ask to expand data if you don't need it, it makes everything much slower
-
Don't ask for a big
page_size
hoping you'll get all you need. Big pages take a lot of time to generate and the server just kinds of stops to generate your page which makes the site very slow for everybody else. Instead, get pages one at a time and try to find a number of elements per page that suits your needs. In general, a good number of elements is 1.5 x what you can see in one view of your application. For instance, if most users see 10 cards when they load the list, ask for 15 every time. -
If you have to get a very long long list of elements and then manually search through it in your code, you're doing it wrong. We provide lots of filters, so use them! If you need to filter/search through something very specific and can't find how to do it, contact me, I might update the API for you.
-
In general, if you have to do a
for
or awhile
in which you get data from the API (except for pagination), you're doing it wrong. There's probably a way to get the data you need without spamming with queries (and you'll just get kicked out at some point). Example:- If you do something like:
- get all the owned cards in the API
- for each owned card, get the card in the API
- You should do something like: get all the owned cards with the parameter
expand_card
- If you do something like:
-
If there's anything you're not sure about, or if you just want to know if everything is fine before publishing your code, talk to me! I'll always take the time to help.
- How to add an account to your profile?
- What's the difference between the deck, the album and the present box?
- How to add cards?
- How to edit a card?
- How to delete a card?
- Why my cards are not automatically imported?
- What if I play multiple versions of the game?
- How to add your location on the map?
- How to recover your password or username?
- How to delete an account?
- How to recover your comments on your profile page when you changed your username?
- How to change your avatar?
- How to check that you entered all your cards?
- How to get a verified account?
- Can someone steal my game account using the information on my profile page?
- I saved my transfer code on School Idol Tomodachi but I can't find it anymore?
- Can I delete my entire profile?
- What should I do if I see an activity that I don't like?
- How to post an activity?
- How to add a picture to your activity?
- Markdown
- How to recover my lost account?
- How to get promo cards?
- How to generate a transfer code?
- How to enter a transfer code?
- How to take screenshots?
- How to install Japanese apps?
- How to contact KLab?
- Do you speak another language? Translate the website
- Are you a graphic designer or an artist? Submit your artwork
- Extra time to spare? Join the staff team! (Community Managers, Moderators, Verifications, Japanese speakers, Database maintainers, and more)
- Want to help us pay for the servers that host the site? Donate