IP Library Granted Patent US 12,401,694
Granted Patent B1
US 12,401,694 · App. 18/731,679 · Granted Aug 26, 2025

Method and system for modifying and validating API requests

Inventors: Sayed Asad Ali (Mountain View, CA); Andrew Curtis (San Mateo, CA); Marco Sanvido (Belmont, CA); Timothy L. Hinrichs (Los Altos, CA); Teemu Koponen (San Francisco, CA)
Assignee: STYRA, INC.
H04L63/20H04L63/08H04L63/123
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,401,694
App. No.
18/731,679
Granted
Aug 26, 2025
Kind
B1
Abstract

Some embodiments of the invention provide a method of modifying and validating API requests received at an API server. At a mutating admission controller of the API server, the method intercepts an API request received at the API server. The method invokes a mutating webhook to query a policy agent that includes a set of policies for modifying API requests. When the policy agent determines that the API request requires modifications based on an identified policy, the method performs the modifications and forwards the modified API request for validation by the API server. After validating the API request, the method intercepts the API request at a validating admission controller and invokes a validating webhook to query the policy agent to determine whether the API request is valid. When the policy agent determines that the API request is valid, the method forwards the API request to be admitted to a database.

Claims (28)

1. A method for processing API (application programming interface) requests received for an API server, the method comprising:

identifying an API request sent to the API server;

determining whether the API request requires modifications based on at least one pre-specified policy;

upon determination that the API request requires modifications based on the pre-specified policy, modifying the API request according to the pre-specified policy; and

forwarding the API request to the API server to process.

2. The method of claim 1 , wherein determining whether the API request requires modifications comprises invoking a mutating webhook to query a policy agent.

3. The method of claim 2 , wherein the policy agent comprises a set of policies for modifying API requests received for the API server.

4. The method of claim 2 , wherein the policy agent identifies the pre-specified policy and determines that the API request requires modifications based on the pre-specified policy.

5. The method of claim 2 , wherein modifying the API request according to the pre-specified policy comprises (i) receiving a patch to be applied to the API request from the mutating webhook and (ii) applying the patch to the API request, wherein the patch comprises the modifications.

6. The method of claim 1 further comprising determining whether the API request is valid based on at least one additional pre-specified policy.

7. The method of claim 6 , wherein determining whether the API request is valid comprises invoking a validating webhook to query a policy agent.

8. The method of claim 7 , wherein the policy agent comprises a set of policies for validating API requests received for the API server.

9. The method of claim 8 , wherein the set of policies comprises custom default validation policies.

10. The method of claim 1 , wherein if the API request does not require modifications based on the pre-specified policy, the API request is forwarded to the API server to process without modifying the API request.

11. A non-transitory machine readable medium storing a program for execution by a set of processing units, the program for processing API (application programming interface) requests received for an API server, the program comprising sets of instructions for:

identifying an API request sent to the API server;

determining whether the API request requires modifications based on at least one pre-specified policy;

upon determination that the API request requires modifications based on the pre-specified policy, modifying the API request according to the pre-specified policy; and

forwarding the API request to the API server to process.

12. The non-transitory machine readable medium of claim 11 , wherein the set of instructions for determining whether the API request requires modifications comprises a set of instructions for invoking a mutating webhook to query a policy agent.

13. The non-transitory machine readable medium of claim 12 , wherein the policy agent comprises a set of policies for modifying API requests received for the API server.

14. The non-transitory machine readable medium of claim 12 , wherein the policy agent identifies the pre-specified policy and determines that the API request requires modifications based on the pre-specified policy.

15. The non-transitory machine readable medium of claim 12 , wherein the set of instructions for modifying the API request according to the pre-specified policy comprises a set of instructions for (i) receiving a patch to be applied to the API request from the mutating webhook and (ii) applying the patch to the API request, wherein the patch comprises the modifications.

16. The non-transitory machine readable medium of claim 11 , wherein the program further comprises a set of instructions for determining whether the API request is valid based on at least one additional pre-specified policy.

17. The non-transitory machine readable medium of claim 16 , wherein the set of instructions for determining whether the API request is valid comprises a set of instructions for invoking a validating webhook to query a policy agent.

18. The non-transitory machine readable medium of claim 17 , wherein the policy agent comprises a set of policies for validating API requests received for the API server.

19. The non-transitory machine readable medium of claim 18 , wherein the set of policies comprises custom default validation policies.

20. The non-transitory machine readable medium of claim 11 , wherein the program further comprises a set of instructions for, upon determination that the API request does not require modifications based on the pre-specified policy, forwarding the API request to the API server to process without modifying the API request.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 5, 2025
From: STYRA, INC.
To: APPLE INC.
Reel/Frame 072818/0489 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 19, 2025
From: STYRA, INC.
To: APPLE INC.
Reel/Frame 072522/0568 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 14, 2025
From: HINRICHS, TIMOTHY L.; KOPONEN, TEEMU; ALI, SAYED ASAD; CURTIS, ANDREW; SANVIDO, MARCO
To: STYRA, INC.
Reel/Frame 072024/0298 →
Continuity (2)
Continuation 17239316 · Apr 23, 2021
Provisional Application 63056522 · Jul 24, 2020
References Cited (120)
US 5974549A · Golan · 1999 [cited by applicant]
US 6985953B1 · Sandhu et al. · 2006 [cited by applicant]
US 7096367B2 · Garg et al. · 2006 [cited by applicant]
US 7124192B2 · High, Jr. et al. · 2006 [cited by applicant]
US 7752661B2 · Hemsath et al. · 2010 [cited by applicant]
US 7913300B1 · Flank et al. · 2011 [cited by applicant]
US 8266694B1 · Roy · 2012 [cited by applicant]
US 8613070B1 · Borzycki et al. · 2013 [cited by applicant]
US 8683560B1 · Brooker et al. · 2014 [cited by applicant]
US 8782744B1 · Fuller et al. · 2014 [cited by applicant]
US 8789138B2 · Reierson et al. · 2014 [cited by applicant]
US 9397990B1 · Taly et al. · 2016 [cited by applicant]
US 9530020B2 · Brandwine et al. · 2016 [cited by applicant]
US 9578004B2 · Greenspan et al. · 2017 [cited by applicant]
US 9648040B1 · Morkel et al. · 2017 [cited by applicant]
US 10122757B1 · Kruse et al. · 2018 [cited by applicant]
US 10127393B2 · Ferraiolo et al. · 2018 [cited by applicant]
US 10182129B1 · Peterson et al. · 2019 [cited by applicant]
US 10257184B1 · Mehta et al. · 2019 [cited by applicant]
US 10353726B2 · Duan · 2019 [cited by applicant]
US 10454975B1 · Sharifi Mehr · 2019 [cited by applicant]
US 10469314B2 · Ennis, Jr. et al. · 2019 [cited by applicant]
US 10574699B1 · Baer et al. · 2020 [cited by applicant]
US 10592302B1 · Hinrichs et al. · 2020 [cited by applicant]
US 10592683B1 · Lim et al. · 2020 [cited by applicant]
US 10698733B1 · Lee et al. · 2020 [cited by applicant]
US 10715514B1 · Threlkeld · 2020 [cited by applicant]
US 10719373B1 · Koponen et al. · 2020 [cited by applicant]
US 10740470B2 · Ionescu et al. · 2020 [cited by applicant]
US 10789220B2 · Mayer et al. · 2020 [cited by applicant]
US 10984133B1 · Hinrichs et al. · 2021 [cited by applicant]
US 10986131B1 · Kruse et al. · 2021 [cited by applicant]
US 10990702B1 · Hinrichs et al. · 2021 [cited by applicant]
US 11023292B1 · Hinrichs et al. · 2021 [cited by applicant]
US 11080410B1 · Sandall et al. · 2021 [cited by applicant]
US 11108827B2 · Beckman et al. · 2021 [cited by applicant]
US 11108828B1 · Curtis et al. · 2021 [cited by applicant]
US 11170099B1 · Sandall et al. · 2021 [cited by applicant]
US 11228573B1 · Rangasamy et al. · 2022 [cited by applicant]
US 11245728B1 · Curtis et al. · 2022 [cited by applicant]
US 11258824B1 · Hinrichs et al. · 2022 [cited by applicant]
US 11327815B1 · Koponen et al. · 2022 [cited by applicant]
US 11347806B2 · Tal et al. · 2022 [cited by applicant]
US 11425126B1 · Horal et al. · 2022 [cited by applicant]
US 11470121B1 · Curtis et al. · 2022 [cited by applicant]
US 11477238B1 · Curtis et al. · 2022 [cited by applicant]
US 11477239B1 · Curtis et al. · 2022 [cited by applicant]
US 11494518B1 · Curtis et al. · 2022 [cited by applicant]
US 11496517B1 · Hinrichs et al. · 2022 [cited by applicant]
US 11502992B1 · Koponen et al. · 2022 [cited by applicant]
US 11509658B1 · Kulkarni · 2022 [cited by applicant]
US 11513778B1 · Graves et al. · 2022 [cited by applicant]
US 11516253B1 · Van Deman et al. · 2022 [cited by applicant]
US 11520579B1 · Narkar et al. · 2022 [cited by applicant]
US 11582235B1 · Koponen et al. · 2023 [cited by applicant]
US 11593525B1 · Sandall et al. · 2023 [cited by applicant]
US 11604684B1 · Hinrichs et al. · 2023 [cited by applicant]
US 11681568B1 · Hinrichs et al. · 2023 [cited by applicant]
US 11847241B1 · Cahill et al. · 2023 [cited by applicant]
US 12003543B1 · Ali et al. · 2024 [cited by applicant]
US 12021832B1 · Koponen et al. · 2024 [cited by applicant]
US 12107866B2 · Hinrichs et al. · 2024 [cited by applicant]
US 12118102B1 · Sandall et al. · 2024 [cited by applicant]
US 20040083367A1 · Garg et al. · 2004 [cited by applicant]
US 20050114674A1 · Carley · 2005 [cited by applicant]
US 20070156670A1 · Lim · 2007 [cited by applicant]
US 20080184336A1 · Sarukkai et al. · 2008 [cited by applicant]
US 20090063665A1 · Bagepalli et al. · 2009 [cited by applicant]
US 20090077618A1 · Pearce et al. · 2009 [cited by applicant]
US 20090281996A1 · Liu et al. · 2009 [cited by applicant]
US 20100333079A1 · Sverdlov et al. · 2010 [cited by applicant]
US 20110113484A1 · Zeuthen · 2011 [cited by applicant]
US 20120030354A1 · Razzaq et al. · 2012 [cited by applicant]
US 20120066756A1 · Vysogorets et al. · 2012 [cited by applicant]
US 20120311672A1 · Connor et al. · 2012 [cited by applicant]
US 20120331539A1 · Matsugashita · 2012 [cited by applicant]
US 20130226970A1 · Weber et al. · 2013 [cited by applicant]
US 20140032691A1 · Barton et al. · 2014 [cited by applicant]
US 20140032759A1 · Barton et al. · 2014 [cited by applicant]
US 20140033267A1 · Aciicmez · 2014 [cited by applicant]
US 20140237594A1 · Thakadu et al. · 2014 [cited by applicant]
US 20150089575A1 · Vepa et al. · 2015 [cited by applicant]
US 20150213449A1 · Morrison et al. · 2015 [cited by applicant]
US 20150244724A1 · Xu et al. · 2015 [cited by applicant]
US 20160034900A1 · Nelsen et al. · 2016 [cited by applicant]
US 20160057107A1 · Call et al. · 2016 [cited by applicant]
US 20160188898A1 · Karinta et al. · 2016 [cited by applicant]
US 20170024428A1 · Patiejunas et al. · 2017 [cited by applicant]
US 20170111336A1 · Davis et al. · 2017 [cited by applicant]
US 20170161120A1 · Sasaki et al. · 2017 [cited by applicant]
US 20170220370A1 · Klompje et al. · 2017 [cited by applicant]
US 20170237729A1 · Uppalapati · 2017 [cited by applicant]
US 20170302655A1 · Sondhi et al. · 2017 [cited by applicant]
US 20170346807A1 · Blasi · 2017 [cited by applicant]
US 20170364702A1 · Goldfarb et al. · 2017 [cited by applicant]
US 20180067790A1 · Chheda et al. · 2018 [cited by applicant]
US 20180082053A1 · Brown et al. · 2018 [cited by applicant]
US 20180109538A1 · Kumar et al. · 2018 [cited by applicant]
US 20180309746A1 · Blasi · 2018 [cited by applicant]
US 20190007418A1 · Cook et al. · 2019 [cited by applicant]
US 20190007443A1 · Cook et al. · 2019 [cited by applicant]
US 20190080103A1 · Hadzic et al. · 2019 [cited by applicant]
US 20190190959A1 · Yuan · 2019 [cited by applicant]
US 20190230130A1 · Beckman et al. · 2019 [cited by applicant]
US 20190245862A1 · Kruse et al. · 2019 [cited by applicant]
US 20190273746A1 · Coffing · 2019 [cited by applicant]
US 20190386973A1 · Patwardhan et al. · 2019 [cited by applicant]
US 20200007580A1 · Liderman et al. · 2020 [cited by applicant]
US 20210029029A1 · Mehmedagic et al. · 2021 [cited by applicant]
US 20210240550A1 · Hinrichs et al. · 2021 [cited by applicant]
US 20210248017A1 · Hinrichs et al. · 2021 [cited by applicant]
US 20210365571A1 · Sandall et al. · 2021 [cited by applicant]
US 20220269549A1 · Koponen et al. · 2022 [cited by applicant]
Author Unknown, “API Best Practices Managing the API Lifecycle: Design, Delivery, and Everything in Between,” Dec. 2016, 37 pages, Apigee, retrieved from https://pages.apigee.com/rs/351-WXY-166/images/API-Best-Practices… [cited by applicant]
Costa, Jeff, “Improve API Performance with Caching,” API Gateway, May 31, 2018, 18 pages, Akamai Developer, retrieved from https://developer.akamai.com/blog/2018/05/31/improve-api-performance-caching. [cited by applicant]
Moffett, Jonathan D., et al., “Policy Hierarchies for Distributed Systems Management,” IEEE Journal on Selected Areas in Communications, Dec. 1993, 11 pages, vol. 11, IEEE, USA. [cited by applicant]
Non-Published commonly Owned U.S. Appl. No. 16/050,119, filed Jul. 31, 2018, 55 pages, Styra, Inc. [cited by applicant]
Non-Published commonly Owned U.S. Appl. No. 18/120,810, filed Mar. 13, 2023, 63 pages, Styra, Inc. [cited by applicant]
Non-Published Commonly Owned U.S. Appl. No. 18/369,471, filed Sep. 18, 2023, 74 pages, Styra, Inc. [cited by applicant]
Win, Thu Yein, et al., “Virtualization Security Combining Mandatory Access Control and Virtual Machine Introspection,” 2014 IEEE/ACM 7th International Conference on Utility and Cloud Computing, Dec. 8-11, 2014, 6 pages,… [cited by applicant]