# API Use Query for Botanical Predictor

**URL:** <https://forum.inaturalist.org/t/api-use-query-for-botanical-predictor/76686>\
**Category:** General\
**Tags:** question, api, projects\
**Created:** [March 16, 2026, 11:34am UTC](https://forum.inaturalist.org/t/api-use-query-for-botanical-predictor/76686 "2026-03-16T11:34:19Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![alunsalt](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.inaturalist.org/alunsalt/32/70396_2.png) [@alunsalt](https://forum.inaturalist.org/u/alunsalt)\
**Post date:** [March 16, 2026, 11:34am UTC](https://forum.inaturalist.org/t/api-use-query-for-botanical-predictor/76686/1 "2026-03-16T11:34:19Z")

</div>

Hello everyone,

This might seem like a RTFM question, but I’d like to make sure that what I’m doing is ok, before I publicise it.

I’ve made a page on my site that takes a location and tells you what plants have been seen locally in the past couple of weeks. What it also does is query the past six years for observations in the next two weeks for plants that get photographed around this time of year _but haven’t been recorded this year yet_ on iNaturalist, so you can see what might be visible next time you’re out and about.

This requires multiple API calls, one for this year and one each for the six previous years, so I space out the API calls making the search slower but not ridiculously so.

I also check to see if the type photo for a species has a compatible licence or not. If it’s all rights reserved or ND, then the script looks for the top-rated photo with a compatible licence. This takes extra API calls, and these are spaced out too.

Is this compliant with the API? I’ve had to put it live at [https://www.botany.one/hot-botany/](https://www.botany.one/hot-botany/) so anyone interested can see what it’s doing (I couldn’t get a more limited preview link to work).

I think the thing that’s puzzling me is the line “The API is intended to support application development, not data scraping.“ I’m pulling in some data to do this, but it has to be live data to have any use.

I’m also working on a similar Welsh-language site. As that works across more taxa, I was planning query to the API once a week and store the results as a weekly cache. This is giving me a prompt to add Welsh names to the site where they’re missing.

Happy to hear comments and advice. The code is JavaScript, so ‘view source’ will reveal it, if anyone wants to copy or adapt it.

---

<div class="post-metadata">

**Author:** ![pisum](https://avatars.discourse-cdn.com/v4/letter/p/91b2a8/32.png) [@pisum](https://forum.inaturalist.org/u/pisum)\
**Post date:** [March 16, 2026, 11:55pm UTC](https://forum.inaturalist.org/t/api-use-query-for-botanical-predictor/76686/2 "2026-03-16T23:55:23Z")

</div>

> [@alunsalt](#):
>
> I think the thing that’s puzzling me is the line “The API is intended to support application development, not data scraping.“ I’m pulling in some data to do this, but it has to be live data to have any use.

i think the point here is that they don’t want folks using the API to download millions of observations or to download the entire taxonomy, since those would take many thousands, tens of thousands, or more requests to accomplish.

you’re downloading aggregated observation count by species, and you’re only getting one page per year. so i don’t think you’re doing something that’s outside of the intended use of the API. i wouldn’t even bother trying to cache this sort of data on my own server.

---

<div class="post-metadata">

**Author:** ![twainwright](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.inaturalist.org/twainwright/32/304_2.png) [@twainwright](https://forum.inaturalist.org/u/twainwright)\
**Post date:** [March 17, 2026, 6:55am UTC](https://forum.inaturalist.org/t/api-use-query-for-botanical-predictor/76686/3 "2026-03-17T06:55:59Z")

</div>

This looks like a fun tool! As long as your delay between queries is at least 1 second, it sounds like you are complying with the [API Recommended Practices](https://www.inaturalist.org/pages/api+recommended+practices). However, if your tool becomes popular so that more than one person is using it at a time (i.e. in parallel) then it will likely exceed the 1 query per second recommendation, and may run into the 10 000 queries per day limit. Since it’s javascript and being run in-browser, these limits should apply separately to each user, but it could still wind up being a load on the iNat servers – I would guess minor compared to the direct traffic on iNat.

---

<div class="post-metadata">

**Author:** ![alunsalt](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.inaturalist.org/alunsalt/32/70396_2.png) [@alunsalt](https://forum.inaturalist.org/u/alunsalt)\
**Post date:** [March 17, 2026, 9:55am UTC](https://forum.inaturalist.org/t/api-use-query-for-botanical-predictor/76686/4 "2026-03-17T09:55:43Z")

</div>

Thanks for the responses. I’ll look at slowing it down a fraction. To be honest, I’m expecting half the visitors to the page in any month to be me, but there’s the potential to be a problem if it does prove popular.

---

<div class="post-metadata">

**Author:** ![pisum](https://avatars.discourse-cdn.com/v4/letter/p/91b2a8/32.png) [@pisum](https://forum.inaturalist.org/u/pisum)\
**Post date:** [March 17, 2026, 8:26pm UTC](https://forum.inaturalist.org/t/api-use-query-for-botanical-predictor/76686/5 "2026-03-17T20:26:55Z")

</div>

> [@twainwright](#):
>
> However, if your tool becomes popular so that more than one person is using it at a time (i.e. in parallel) then it will likely exceed the 1 query per second recommendation

I believe this is generally tracked at the client level, since the clients are making the requests. so if we’re both running the same thing, you get 1 request per second, and I get a separate 1 request per second. the only way additional users _might_ become problematic is if they’re sharing the same connection somehow or if alunsalt’s website’s server is making the requests on behalf of the site’s users, which I don’t think is the case.

I generally wouldn’t worry too much about a third party website driving up additional traffic to iNaturalist via API. this particular site is already doing things as efficiently as possible probably, and I can’t image that many users using it to drive up traffic significantly, even if it is a useful tool.

---

<div class="post-metadata">

**Author:** ![norwichtim](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.inaturalist.org/norwichtim/32/16996_2.png) [@norwichtim](https://forum.inaturalist.org/u/norwichtim)\
**Post date:** [March 17, 2026, 8:45pm UTC](https://forum.inaturalist.org/t/api-use-query-for-botanical-predictor/76686/6 "2026-03-17T20:45:06Z")

</div>

Welcome Alun! It is good to see you here. I tried the app, that’s going to be another helpful tool for us to use.

---

<div class="post-metadata">

**Author:** ![susanne-kasimir](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.inaturalist.org/susanne-kasimir/32/34021_2.png) [@susanne-kasimir](https://forum.inaturalist.org/u/susanne-kasimir)\
**Post date:** [March 17, 2026, 9:49pm UTC](https://forum.inaturalist.org/t/api-use-query-for-botanical-predictor/76686/7 "2026-03-17T21:49:00Z")

</div>

This is a fun tool! But I tried it for my hometown Antequera (Spain) and it seems not to count everything. For example I have two observations of Cynoglossum cheirifolium this year in March and it says it hasn’t been observed yet.

I had hoped the link “view on iNaturalist” brings me to the mentioned observations, but it only goes to the taxon page.

---

<div class="post-metadata">

**Author:** ![jwidness](https://avatars.discourse-cdn.com/v4/letter/j/9d8465/32.png) [@jwidness](https://forum.inaturalist.org/u/jwidness)\
**Post date:** [March 17, 2026, 10:31pm UTC](https://forum.inaturalist.org/t/api-use-query-for-botanical-predictor/76686/8 "2026-03-17T22:31:58Z")

</div>

A few comments –

- While you aren’t required to include attribution for CC0 photos (see [https://forum.inaturalist.org/t/cc0-observations-could-should-be-also-credited-in-taxon-view/58325](https://forum.inaturalist.org/t/cc0-observations-could-should-be-also-credited-in-taxon-view/58325)), I think you’ve unintentionally made your attribution cleaner remove them entirely, e.g.  

- For the taxa you call a second time because the default photo has a restrictive license, you can get all of them in one call, e.g. [https://api.inaturalist.org/v1/taxa/51884,163682,51741](https://api.inaturalist.org/v1/taxa/51884,163682,51741)

- If you want to reduce unnecessary data transfer, you can move to API v2 and specify only the fields you’re going to use for the response.

- I think I would preferentially select native iNat photos (attached to observations) over flickr photos, e.g. I saw [https://www.inaturalist.org/photos/10618](https://www.inaturalist.org/photos/10618) selected for P. vulgaris when you could instead choose [https://www.inaturalist.org/photos/3146632](https://www.inaturalist.org/photos/3146632).

---

<div class="post-metadata">

**Author:** ![jwidness](https://avatars.discourse-cdn.com/v4/letter/j/9d8465/32.png) [@jwidness](https://forum.inaturalist.org/u/jwidness)\
**Post date:** [March 17, 2026, 10:43pm UTC](https://forum.inaturalist.org/t/api-use-query-for-botanical-predictor/76686/9 "2026-03-17T22:43:31Z")

</div>

> [@susanne-kasimir](#):
>
> I have two observations of Cynoglossum cheirifolium this year in March and it says it hasn’t been observed yet

The issue is that the predicted species list is built by subtracting this year’s top 10 species (default is 10 species, can also choose 20 or 30) from the historic species list. So if C. cheirifolium is the 12th top species for this year and you’re using the default of 10 top species, then the page thinks that it’s unseen for this year. If you make the radius small enough and/or expand to 20 or 30 species, you can get C. cheirifolium to appear in this year’s seen list instead of the predicted list.

Probably the page should expand the definition of “seen this year” beyond the top 10/20/30 species.

---

<div class="post-metadata">

**Author:** ![alunsalt](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.inaturalist.org/alunsalt/32/70396_2.png) [@alunsalt](https://forum.inaturalist.org/u/alunsalt)\
**Post date:** [March 19, 2026, 2:10pm UTC](https://forum.inaturalist.org/t/api-use-query-for-botanical-predictor/76686/10 "2026-03-19T14:10:02Z")

</div>

Thanks to everyone for the comments.

I’ve made some updates, there’s now three lists.

Being photographed now  
The top N species observed at the location

Targets to look for  
These are things in the top 200 observations that aren’t in the top N, sorted by historical observations for the next X weeks. These should be things that are out now, but in their earliest phases of display.

Predicted  
These are species in the top 200 in historical data without observations this year.

If a species has observations, it will link to a search page with the relevant location and search radius, following Susanne’s suggestion.

I’ve batched searches where possible. There are some taxa like _Scilla forbesii_ where all the suggested photos are copyright, despite there being CC licenced images on site. These have to be pulled separately, but they should be rare.

I’ve also fixed the CC 0 crediting error. I’d seen it in the Welsh page, but hadn’t fixed it for the English site. I’ve also excluded ND licenced images, to make sure I’m not breaking that licence.

Thanks to everyone for their comments, it’s now a lot better than it was.

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex016/uploads/inaturalist/original/2X/7/7831452cf7f0d653ff1ffd34176334b7ef1b6a17.png) [@system](https://forum.inaturalist.org/u/system)\
**Post date:** [May 18, 2026, 2:10pm UTC](https://forum.inaturalist.org/t/api-use-query-for-botanical-predictor/76686/11 "2026-05-18T14:10:57Z")

</div>

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.
