IP Library Granted Patent US 12,645,514
Granted Patent B2
US 12,645,514 · App. 17/305,944 · Granted Jun 2, 2026

API manager

Inventors: Kyle Bolton (Cambridge, MA); Jacob Edward Oullette (San Francisco, CA); Wayne Chang (San Francisco, CA); Sam A. Neubardt (Sommerville, MA)
Assignee: Google LLC
G06F9/546G06F8/30
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,645,514
App. No.
17/305,944
Granted
Jun 2, 2026
Kind
B2
Abstract

A method for managing application programming interface (API) keys associated with third-party software development kits (SDKs). The method includes: receiving, from an application developer machine, a plurality of notifications identifying a plurality of third-party SDKs selected for installment in a mobile application under development; sending a plurality of API key provisioning requests to a plurality of third-party service providers including a plurality of third-party APIs corresponding to the plurality of third-party SDKs; receiving a plurality of API keys for the mobile application under development from the plurality of third-party service providers; and storing the plurality of API keys.

Claims (50)

1 . A computer-implemented method when executed by data processing hardware causes the data processing hardware to perform operations comprising:

receiving, at an application programming interface (API) manager, an API call from an application for a mobile device, the API call associated with a conditional key and directed to a third party API of a third party service provider;

determining, by the API manager, that a respective condition of the conditional key authorizes the API manager to submit the API call to the third party API of the third party service provider on behalf of the application of the mobile device;

after determining that the respective condition of the conditional key authorizes the API manager to submit the API call to the third party API of the third party service provider on behalf of the application of the mobile device, determining that the API call does not comprise an API key specifically provisioned by the third party service provider for the application of the mobile device, the API key necessary for communication between the mobile device and the third party service provider;

in response to determining that the API call does not comprise an API key specifically provisioned by the third party service provider for the application of the mobile device:

retrieving, from the API manager, the API key specifically provisioned by the third party service provider for the application of the mobile device; and

modifying, by the API manager, the API call by inserting the API key specifically provisioned by the third party service provider for the application of the mobile device into the API call; and

communicating, by the API manager, the modified API call to the third party API of the third party service provider.

2 . The method of claim 1 , wherein determining, by the API manager, that the respective condition of the conditional key authorizes the API manager to submit the API call to the third party API comprises determining that the API call does not exceed a permissible number of API calls designated for a user of the application for the mobile device.

3 . The method of claim 1 , wherein the operations further comprise:

receiving, at the API manager, a second API call from the application of the mobile device, the second API call associated with a second conditional key and directed to the third party API of the third party service provider;

determining, by the API manager, that a respective second condition of the second conditional key fails to authorize the API manager to submit the API call to the third party API of the third party service provider on behalf of the application of the mobile device; and

after determining that the respective second condition of the second conditional key fails to authorize the API manager to submit the API call to the third party API, rejecting, by the API manager, the API call from the application for the mobile device.

4 . The method of claim 3 , wherein the operations further comprise, after determining that the respective second condition of the second conditional key fails to authorize the API manager to submit the API call to the third party API of the third party service provider on behalf of the application of the mobile device, requesting, by the API manager, that a new conditional key is provisioned for the application for the mobile device.

5 . The method of claim 1 , wherein the respective condition comprises a required format for communicating with the third party API.

6 . The method of claim 1 , wherein the respective condition comprises an access right designated by the third party service provider.

7 . The method of claim 1 , wherein the operations further comprise, after determining that the respective condition of the conditional key authorizes the API manager to submit the API call to the third party API and prior to communicating, by the API manager, the API call to the third party API, replacing, by the API manager, the conditional key with the API key specifically provisioned by the third party service provider for the application of the mobile device.

8 . The method of claim 1 , wherein the application for the mobile device comprises:

a software development kit of the third party service provider; and

code including the conditional key.

9 . The method of claim 8 , wherein the code of the application for the mobile device was modified during application development of the application to include the conditional key.

10 . The method of claim 1 , wherein the application for the mobile device is configured with a direct connection to the third party service provider that bypasses the API manager.

11 . The method of claim 1 , wherein the conditional key corresponds to an authentication token configured to enable the application of the mobile device to communicate a respective API call to the third party API of the third party service provider.

12 . The method of claim 11 , wherein the authentication token is stored at the API manager while the application for the mobile device fails to include the authentication token.

13 . A system comprising:

data processing hardware; and

memory hardware in communication with the data processing hardware, the memory hardware storing instructions that when executed on the data processing hardware cause the data processing hardware to perform operations comprising:

receiving, at an application programming interface (API) manager, an API call from an application for a mobile device, the API call associated with a conditional key and directed to a third party API of a third party service provider;

determining, by the API manager, that a respective condition of the conditional key authorizes the API manager to submit the API call to the third party API of the third party service provider on behalf of the application of the mobile device;

after determining that the respective condition of the conditional key authorizes the API manager to submit the API call to the third party API of the third party service provider on behalf of the application of the mobile device, determining that the API call does not comprise an API key specifically provisioned by the third party service provider for the application of the mobile device, the API key necessary for communication between the mobile device and the third party service provider;

in response to determining that the API call does not comprise an API key specifically provisioned by the third party service provider for the application of the mobile device:

retrieving, from the API manager, the API key specifically provisioned by the third party service provider for the application of the mobile device; and

modifying, by the API manager, the API call by inserting the API key specifically provisioned by the third party service provider for the application of the mobile device into the API call; and

communicating, by the API manager, the modified API call to the third party API of the third party service provider.

14 . The system of claim 13 , wherein determining, by the API manager, that the respective condition of the conditional key authorizes the API manager to submit the API call to the third party API comprises determining that the API call does not exceed a permissible number of API calls designated for a user of the application for the mobile device.

15 . The system of claim 13 , wherein the operations further comprise:

receiving, at the API manager, a second API call from the application of the mobile device, the second API call associated with a second conditional key and directed to the third party API of the third party service provider;

determining, by the API manager, that a respective second condition of the second conditional key fails to authorize the API manager to submit the API call to the third party API of the third party service provider on behalf of the application of the mobile device; and

after determining that the respective second condition of the second conditional key fails to authorize the API manager to submit the API call to the third party API, rejecting, by the API manager, the API call from the application for the mobile device.

16 . The system of claim 15 , wherein the operations further comprise, after determining that the respective second condition of the second conditional key fails to authorize the API manager to submit the API call to the third party API of the third party service provider on behalf of the application of the mobile device, requesting, by the API manager, that a new conditional key is provisioned for the application for the mobile device.

17 . The system of claim 13 , wherein the respective condition comprises a required format for communicating with the third party API.

18 . The system of claim 13 , wherein the respective condition comprises an access right designated by the third party service provider.

19 . The system of claim 13 , wherein the operations further comprise, after determining that the respective condition of the conditional key authorizes the API manager to submit the API call to the third party API and prior to communicating, by the API manager, the API call to the third party API, replacing, by the API manager, the conditional key with the API key specifically provisioned by the third party service provider for the application of the mobile device.

20 . The system of claim 13 , wherein the application for the mobile device comprises:

a software development kit of the third party service provider; and

code including the conditional key.

21 . The system of claim 20 , wherein the code of the application for the mobile device was modified during application development of the application to include the conditional key.

22 . The system of claim 13 , wherein the application for the mobile device is configured with a direct connection to the third party service provider that bypasses the API manager.

23 . The system of claim 13 , wherein the conditional key corresponds to an authentication token configured to enable the application of the mobile device to communicate a respective API call to the third party API of the third party service provider.

24 . The system of claim 23 , wherein the authentication token is stored at the API manager while the application for the mobile device fails to include the authentication token.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 20, 2024
From: BOLTON, KYLE; OUELLETTE, JACOB EDWARD; CHANG, WAYNE; NEUBARDT, SAM
To: TWITTER, INC.
Reel/Frame 066497/0551 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 20, 2024
From: TWITTER, INC.; CRASHLYTICS, INC.
To: GOOGLE, INC.
Reel/Frame 066497/0664 →
CHANGE OF NAME Recorded Feb 20, 2024
From: GOOGLE, INC.
To: GOOGLE LLC
Reel/Frame 066632/0747 →
Continuity (5)
Continuation 16810411 · Mar 5, 2020
Continuation 15596751 · May 16, 2017
Continuation 15177251 · Jun 8, 2016
Provisional Application 62172649 · Jun 8, 2015
Related Publication 20210342203A1 · Nov 4, 2021
References Cited (29)
US 8161173B1 · Mishra · 2012 [cited by examiner]
US 8595806B1 · Gabrielson · 2013 [cited by applicant]
US 8793359B1 · Fiebig et al. · 2014 [cited by applicant]
US 8892691B2 · Pantos · 2014 [cited by examiner]
US 20030236827A1 · Patel et al. · 2003 [cited by applicant]
US 20050193093A1 · Mathew et al. · 2005 [cited by applicant]
US 20080209451A1 · Michels et al. · 2008 [cited by applicant]
US 20110004916A1 · Schiffman et al. · 2011 [cited by applicant]
US 20110219267A1 · Migliasso et al. · 2011 [cited by applicant]
US 20110225074A1 · Khosravy · 2011 [cited by examiner]
US 20110307959A1 · Singh et al. · 2011 [cited by applicant]
US 20120084791A1 · Benedek et al. · 2012 [cited by applicant]
US 20120180021A1 · Byrd et al. · 2012 [cited by applicant]
US 20120180022A1 · Hopkins · 2012 [cited by applicant]
US 20120246463A1 · Shea et al. · 2012 [cited by applicant]
US 20130018948A1 · Douillet et al. · 2013 [cited by applicant]
US 20130042314A1 · Kelley · 2013 [cited by examiner]
US 20130110726A1 · Pereira · 2013 [cited by applicant]
US 20130275560A1 · Bestmann et al. · 2013 [cited by applicant]
US 20140033273A1 · Rathbun · 2014 [cited by applicant]
US 20140280913A1 · Karren et al. · 2014 [cited by applicant]
US 20140281548A1 · Boyer · 2014 [cited by examiner]
US 20140317637A1 · Gadotti · 2014 [cited by applicant]
US 20150019443A1 · Sheets · 2015 [cited by examiner]
US 20150347749A1 · Kiehtreiber et al. · 2015 [cited by applicant]
US 20150348015A1 · Ren · 2015 [cited by examiner]
US 20160092344A1 · Bally et al. · 2016 [cited by applicant]
US 20160112262A1 · Johnson et al. · 2016 [cited by applicant]
US 20160188386A1 · Lisi · 2016 [cited by examiner]