# \[10.0.0 - version 52\] GESI - Google Sheets ESI Add-On - Now an EVE Online Partner!

**URL:** <https://forums.eveonline.com/t/10-0-0-version-52-gesi-google-sheets-esi-add-on-now-an-eve-online-partner/13406>\
**Category:** Third Party Developers\
**Tags:** esi, tool\
**Created:** [August 3, 2017, 10:59pm UTC](https://forums.eveonline.com/t/10-0-0-version-52-gesi-google-sheets-esi-add-on-now-an-eve-online-partner/13406 "2017-08-03T22:59:11Z")\
**Posts on this page:** 18\
**Page:** 15

<div class="post-metadata">

**Author:** ![Blacksmoke16](https://sea1.discourse-cdn.com/eveonline/user_avatar/forums.eveonline.com/blacksmoke16/32/376589_2.png) [@Blacksmoke16](https://forums.eveonline.com/u/Blacksmoke16)\
**Post date:** [March 27, 2022, 12:14am UTC](https://forums.eveonline.com/t/10-0-0-version-52-gesi-google-sheets-esi-add-on-now-an-eve-online-partner/13406/290 "2022-03-27T00:14:13Z")

</div>

**9.0.0 aka version 42** March 26, 2022

Version `9.0.0` deprecates the concept of Sheet Storage in favor of a custom properties store implementation. GESI now supports ~1,400 authenticated characters out of the box. This update also makes GESI 100% compliant with the possible refresh token rotation cut over in the future as outlined [here](https://developers.eveonline.com/blog/article/sso-endpoint-deprecations-2). Previously sheet storage would _NOT_ have handled that correctly.

## Changes

- **(breaking)** Changed how authentication data is stored (again)

- **(breaking)** Function arguments are now validated to be of the proper type.

- NPM dependencies have been bumped to address some security vulnerabilities

Since the logic related to auth has changed, you will need to reauthorize your characters. **Be sure to reset your sheet beforehand as well**. From within your sheet `Extensions => GESI => Reset`.

Due to [this issue](https://github.com/ccpgames/sso-issues/issues/63), if you experience `Your Login session has expired` when trying to authorize a character, see [this](https://github.com/Blacksmoke16/GESI/tree/9.0.0#your-login-session-has-expired) FAQ item.

---

<div class="post-metadata">

**Author:** ![Blacksmoke16](https://sea1.discourse-cdn.com/eveonline/user_avatar/forums.eveonline.com/blacksmoke16/32/376589_2.png) [@Blacksmoke16](https://forums.eveonline.com/u/Blacksmoke16)\
**Post date:** [March 30, 2022, 11:08pm UTC](https://forums.eveonline.com/t/10-0-0-version-52-gesi-google-sheets-esi-add-on-now-an-eve-online-partner/13406/291 "2022-03-30T23:08:29Z")

</div>

**9.1.0 aka version 43** March 30, 2022

* * *

## Additions

- GESI now has a good amount of proper unit test coverage on its core logic
- Validates the `aud` JWT claim is the required value

## Fixes

- Properly handle falsey arguments to optional parameters
  - Handles the context of like `=corporations_corporation_wallets_division_transactions(2,,"Blacksmoke16")` throwing an error saying `from_id` should be a number but got string

---

<div class="post-metadata">

**Author:** ![Blacksmoke16](https://sea1.discourse-cdn.com/eveonline/user_avatar/forums.eveonline.com/blacksmoke16/32/376589_2.png) [@Blacksmoke16](https://forums.eveonline.com/u/Blacksmoke16)\
**Post date:** [April 1, 2022, 4:44pm UTC](https://forums.eveonline.com/t/10-0-0-version-52-gesi-google-sheets-esi-add-on-now-an-eve-online-partner/13406/292 "2022-04-01T16:44:50Z")

</div>

**9.1.1 aka version 44** April 1, 2022

* * *

## Fixes

- Do not exclude comments when pushing to GAS
  - Restores the `@customfunction` and `jsdoc` comments to each function

---

<div class="post-metadata">

**Author:** ![Blacksmoke16](https://sea1.discourse-cdn.com/eveonline/user_avatar/forums.eveonline.com/blacksmoke16/32/376589_2.png) [@Blacksmoke16](https://forums.eveonline.com/u/Blacksmoke16)\
**Post date:** [July 14, 2022, 2:22am UTC](https://forums.eveonline.com/t/10-0-0-version-52-gesi-google-sheets-esi-add-on-now-an-eve-online-partner/13406/293 "2022-07-14T02:22:19Z")

</div>

**9.2.0 aka version 48** July 13, 2022

* * *

## ESI Updates

- Remove `eve_search` function use `characters_character_search` instead
  - See: [esi-issues/changelog.md at master · esi/esi-issues · GitHub](https://github.com/esi/esi-issues/blob/master/changelog.md#2022-07-12)

---

<div class="post-metadata">

**Author:** ![Calmar\_Arundel](https://sea1.discourse-cdn.com/eveonline/user_avatar/forums.eveonline.com/calmar_arundel/32/375888_2.png) [@Calmar\_Arundel](https://forums.eveonline.com/u/Calmar_Arundel)\
**Post date:** [July 23, 2022, 9:13pm UTC](https://forums.eveonline.com/t/10-0-0-version-52-gesi-google-sheets-esi-add-on-now-an-eve-online-partner/13406/294 "2022-07-23T21:13:33Z")

</div>

Some of us were using eve\_search as a general search function for data that is not related to a character.  
In this case, you cannot use characters\_character\_search in its place.  
This highlighted my ignorance of all the functions included in ESI.  
If any of your sheets are still broken by this update, I suggest searching for a function that starts with the word “universe” for something that will replicate your functionality. Be aware that the function parameters probably will differ.

---

<div class="post-metadata">

**Author:** ![Blacksmoke16](https://sea1.discourse-cdn.com/eveonline/user_avatar/forums.eveonline.com/blacksmoke16/32/376589_2.png) [@Blacksmoke16](https://forums.eveonline.com/u/Blacksmoke16)\
**Post date:** [July 23, 2022, 9:20pm UTC](https://forums.eveonline.com/t/10-0-0-version-52-gesi-google-sheets-esi-add-on-now-an-eve-online-partner/13406/295 "2022-07-23T21:20:47Z")

</div>

To be clear `characters_character_search` is the same as `eve_search`, but just authenticated. It actually allows you to search for _more_ things than you could before. Given GESI required you to have at least 1 character authenticated anyway, the migration should be pretty straightforward.

Also going to link [The ESI API is a shared resource, do not abuse it - EVE: Developers](https://developers.eveonline.com/blog/article/the-esi-api-is-a-shared-resource-do-not-abuse-it) here as it’s still applicable.

---

<div class="post-metadata">

**Author:** ![Calmar\_Arundel](https://sea1.discourse-cdn.com/eveonline/user_avatar/forums.eveonline.com/calmar_arundel/32/375888_2.png) [@Calmar\_Arundel](https://forums.eveonline.com/u/Calmar_Arundel)\
**Post date:** [July 23, 2022, 10:07pm UTC](https://forums.eveonline.com/t/10-0-0-version-52-gesi-google-sheets-esi-add-on-now-an-eve-online-partner/13406/296 "2022-07-23T22:07:42Z")

</div>

Point taken. After failing to make it work, I gave up and tried something else.  
I have a lot of respect for you and your work, and appreciate your quick reply.

The link to the blog makes me worry that I my sheets might be grabbing too much data.  
I am using markets\_region\_orders and markets\_region\_history to get sales info for each item that I want to sell in a given area. The function parameters limit what is returned to a single item in a single region. Then I use google’s SQL to return the one number I want. But, on a 50 item sell list, that amounts to 50 tables. I am assuming that all that data is still downloaded even though the query pares it down to one number per table.  
Is this problem? I have searched through all my sheets and I believe that everywhere else I am only requesting a very small amount of data, I only request it in one place, and do the calculations in the sheets.

---

<div class="post-metadata">

**Author:** ![Blacksmoke16](https://sea1.discourse-cdn.com/eveonline/user_avatar/forums.eveonline.com/blacksmoke16/32/376589_2.png) [@Blacksmoke16](https://forums.eveonline.com/u/Blacksmoke16)\
**Post date:** [July 24, 2022, 1:21am UTC](https://forums.eveonline.com/t/10-0-0-version-52-gesi-google-sheets-esi-add-on-now-an-eve-online-partner/13406/297 "2022-07-24T01:21:34Z")

</div>

No, you’re doing things correctly. The blog is specific to the search endpoint. I.e. using it to discover things you don’t already have. E.g. search for `a`, then `ab`, then `abc` and so on.

The only issue you may run into doing what you’re doing is Google Sheet’s HTTP request limit of 25k/day. What you could do is write a custom function that handles returning the data you want, but only fetching/parsing the order data once. But if it’s working fast enough for you and you aren’t having any problems, probably not worth it.

---

<div class="post-metadata">

**Author:** ![Jaiken](https://sea1.discourse-cdn.com/eveonline/user_avatar/forums.eveonline.com/jaiken/32/341456_2.png) [@Jaiken](https://forums.eveonline.com/u/Jaiken)\
**Post date:** [November 8, 2022, 3:02am UTC](https://forums.eveonline.com/t/10-0-0-version-52-gesi-google-sheets-esi-add-on-now-an-eve-online-partner/13406/298 "2022-11-08T03:02:53Z")

</div>

I’m trying to use GESI to pull market data from a private station in null sec. I have access to the station and do market work there but it doesn’t belong to my corp. I am getting a Market Access Denied error when using markets\_structures\_structure. Is there a workaround or is this impossible.

---

<div class="post-metadata">

**Author:** ![Blacksmoke16](https://sea1.discourse-cdn.com/eveonline/user_avatar/forums.eveonline.com/blacksmoke16/32/376589_2.png) [@Blacksmoke16](https://forums.eveonline.com/u/Blacksmoke16)\
**Post date:** [November 8, 2022, 3:52pm UTC](https://forums.eveonline.com/t/10-0-0-version-52-gesi-google-sheets-esi-add-on-now-an-eve-online-partner/13406/299 "2022-11-08T15:52:45Z")

</div>

> [@Jaiken](#):
>
> I have access to the station

By access, do you mean you are able to dock there? That’s a requirement to access its orders via the API.

---

<div class="post-metadata">

**Author:** ![Jaiken](https://sea1.discourse-cdn.com/eveonline/user_avatar/forums.eveonline.com/jaiken/32/341456_2.png) [@Jaiken](https://forums.eveonline.com/u/Jaiken)\
**Post date:** [November 9, 2022, 12:48am UTC](https://forums.eveonline.com/t/10-0-0-version-52-gesi-google-sheets-esi-add-on-now-an-eve-online-partner/13406/300 "2022-11-09T00:48:04Z")

</div>

Yes, I can dock there and use the market.

---

<div class="post-metadata">

**Author:** ![Blacksmoke16](https://sea1.discourse-cdn.com/eveonline/user_avatar/forums.eveonline.com/blacksmoke16/32/376589_2.png) [@Blacksmoke16](https://forums.eveonline.com/u/Blacksmoke16)\
**Post date:** [November 9, 2022, 1:01am UTC](https://forums.eveonline.com/t/10-0-0-version-52-gesi-google-sheets-esi-add-on-now-an-eve-online-partner/13406/301 "2022-11-09T01:01:35Z")

</div>

And are you sure you’re using the right ID? And the right character? And station I assume you mean a structure, not an NPC corp station or something?

---

<div class="post-metadata">

**Author:** ![Jaiken](https://sea1.discourse-cdn.com/eveonline/user_avatar/forums.eveonline.com/jaiken/32/341456_2.png) [@Jaiken](https://forums.eveonline.com/u/Jaiken)\
**Post date:** [November 9, 2022, 1:35am UTC](https://forums.eveonline.com/t/10-0-0-version-52-gesi-google-sheets-esi-add-on-now-an-eve-online-partner/13406/302 "2022-11-09T01:35:24Z")

</div>

Well I’m glad you asked that. Turns out I had a few issues. I did not have the right station id. It is an alliance owned structure. And I did not have quotes around my name in the function. Now it works fine.

It did lead me to another thought though. That function doesn’t seem to have an option to search for a single type\_id. I’m trying to collect a short list of item prices that I can link to other sheets. With a long list like this it seems to me that the order of the list is likely to change as items come in and drop out of the market. How could I either search for a specific item in this station? Or failing that, how can I be sure that I’m getting the right data from this long list if the order is likely to change in the future?

I am by no means adept at spreadsheets so I’m sorry if this is easily found or answered elsewhere. I wouldn’t even know what to search for. I’ve tried using markets\_region\_orders but it won’t pull from alliance stations.

---

<div class="post-metadata">

**Author:** ![Blacksmoke16](https://sea1.discourse-cdn.com/eveonline/user_avatar/forums.eveonline.com/blacksmoke16/32/376589_2.png) [@Blacksmoke16](https://forums.eveonline.com/u/Blacksmoke16)\
**Post date:** [November 9, 2022, 3:25am UTC](https://forums.eveonline.com/t/10-0-0-version-52-gesi-google-sheets-esi-add-on-now-an-eve-online-partner/13406/303 "2022-11-09T03:25:59Z")

</div>

> [@Jaiken](#):
>
> That function doesn’t seem to have an option to search for a single type\_id.

Correct. ESI doesn’t provide a way to do that so you’ll need to parse all the data and filter down to the type(s) you want. Given the list is for a specific structure, if you wanted the lowest sell value I think you could use [MINIFS - Google Docs Editors Help](https://support.google.com/docs/answer/7014063) to find the lowest price given non sell orders and your desired type ID. Something like `=MINIFS(G2:G, I2:I, 8419,B2:B,false)`. Could then have another sheet where you have the type names/IDs you care about, use this function to grab the related prices for that type, then can `VLOOKUP` the price from there where needed.

---

<div class="post-metadata">

**Author:** ![Calmar\_Arundel](https://sea1.discourse-cdn.com/eveonline/user_avatar/forums.eveonline.com/calmar_arundel/32/375888_2.png) [@Calmar\_Arundel](https://forums.eveonline.com/u/Calmar_Arundel)\
**Post date:** [November 22, 2022, 9:28pm UTC](https://forums.eveonline.com/t/10-0-0-version-52-gesi-google-sheets-esi-add-on-now-an-eve-online-partner/13406/304 "2022-11-22T21:28:27Z")

</div>

Does anyone have any idea why all my function calls using markets\_region\_history( ) stopped working a few weeks ago? I get a “Timeout contacting tranquility” error for all of them.

---

<div class="post-metadata">

**Author:** ![Blacksmoke16](https://sea1.discourse-cdn.com/eveonline/user_avatar/forums.eveonline.com/blacksmoke16/32/376589_2.png) [@Blacksmoke16](https://forums.eveonline.com/u/Blacksmoke16)\
**Post date:** [November 22, 2022, 9:59pm UTC](https://forums.eveonline.com/t/10-0-0-version-52-gesi-google-sheets-esi-add-on-now-an-eve-online-partner/13406/305 "2022-11-22T21:59:27Z")

</div>

See [ESI Market History Endpoint Down? - #10 by Pychick](https://forums.eveonline.com/t/esi-market-history-endpoint-down/384192/10) and [Requests to /markets/{region\_id}/history/ fail · Issue #1338 · esi/esi-issues · GitHub](https://github.com/esi/esi-issues/issues/1338).

tl;dr Not a GESI issue.

---

<div class="post-metadata">

**Author:** ![Blacksmoke16](https://sea1.discourse-cdn.com/eveonline/user_avatar/forums.eveonline.com/blacksmoke16/32/376589_2.png) [@Blacksmoke16](https://forums.eveonline.com/u/Blacksmoke16)\
**Post date:** [September 22, 2023, 1:31pm UTC](https://forums.eveonline.com/t/10-0-0-version-52-gesi-google-sheets-esi-add-on-now-an-eve-online-partner/13406/306 "2023-09-22T13:31:42Z")

</div>

**9.2.1 aka version 50** September 22, 2023

* * *

## Fixes

- Handle new `aud` JWT token claim format as per [fix: access token `aud` claim docs by mateuszkrasucki · Pull Request #77 · esi/esi-docs · GitHub](https://github.com/esi/esi-docs/pull/77)
- Add `fuzzworks.co.uk` to `urlFetchWhitelist`

---

<div class="post-metadata">

**Author:** ![Blacksmoke16](https://sea1.discourse-cdn.com/eveonline/user_avatar/forums.eveonline.com/blacksmoke16/32/376589_2.png) [@Blacksmoke16](https://forums.eveonline.com/u/Blacksmoke16)\
**Post date:** [February 12, 2025, 1:49am UTC](https://forums.eveonline.com/t/10-0-0-version-52-gesi-google-sheets-esi-add-on-now-an-eve-online-partner/13406/307 "2025-02-12T01:49:32Z")

</div>

**10.0.0 aka version 52** Feb 11, 2025

* * *

## ESI Updates

- Remove bookmark related scopes/functions
  - See: [esi-issues/changelog.md at master · esi/esi-issues · GitHub](https://github.com/esi/esi-issues/blob/master/changelog.md#2025-02-10)

[Previous page](https://forums.eveonline.com/t/10-0-0-version-52-gesi-google-sheets-esi-add-on-now-an-eve-online-partner/13406.md?page=14)
