Prosecution Insights
Last updated: April 19, 2026
Application No. 18/488,136

SYSTEMS AND METHODS FOR ODATA API PERFORMANCE TESTING

Non-Final OA §102§103
Filed
Oct 17, 2023
Examiner
CHEN, ZHI
Art Unit
2196
Tech Center
2100 — Computer Architecture & Software
Assignee
SAP SE
OA Round
1 (Non-Final)
61%
Grant Probability
Moderate
1-2
OA Rounds
3y 3m
To Grant
99%
With Interview

Examiner Intelligence

Grants 61% of resolved cases
61%
Career Allow Rate
152 granted / 250 resolved
+5.8% vs TC avg
Strong +40% interview lift
Without
With
+40.5%
Interview Lift
resolved cases with interview
Typical timeline
3y 3m
Avg Prosecution
27 currently pending
Career history
277
Total Applications
across all art units

Statute-Specific Performance

§101
12.7%
-27.3% vs TC avg
§103
49.1%
+9.1% vs TC avg
§102
6.9%
-33.1% vs TC avg
§112
25.2%
-14.8% vs TC avg
Black line = Tech Center average estimate • Based on career data from 250 resolved cases

Office Action

§102 §103
DETAILED ACTION Notice of Pre-AIA or AIA Status The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA . This action is responsive to the communication filed 10/17/2023. Claims 1-20 are presented for examination. Examiner Notes Examiner cites particular columns, paragraphs, figures and line numbers in the references as applied to the claims below for the convenience of the applicant. Although the specified citations are representative of the teachings in the art and are applied to the specific limitations within the individual claim, other passages and figures may apply as well. It is respectfully requested that, in preparing responses, the applicant fully consider the references in entirely as potentially teaching all or part of the claimed invention, as well as the context of the passage as taught by the prior art or disclosed by the examiner. Specification The disclosure is objected to because of the following informalities: “The elapsed time for each leg ma be measured” at line 2 of [0050] should be: The elapsed time for each leg may be measured. Appropriate correction is required. Claim Objections Claims 1-20 are objected to because of the following informalities: “a target system” at line 9 of claim 1 should be: the target system “API information” at line 13 of claim 1 should be: the API information. Claims 2-12 are objected for failing to cure the deficiency from their respective parent claim by dependency. “the performance metrics, performance data and API information” at last 2nd line of claim 13 should be: the one or more performance metrics, the performance data and the API information Claims 13-17 are objected for failing to cure the deficiency from their respective parent claim by dependency. Claim 18 is objected under the same reason set forth in I and IV above. Claims 19-20 are objected for failing to cure the deficiency from their respective parent claim by dependency. Appropriate correction is required. Claim Rejections - 35 USC § 102 In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status. The following is a quotation of the appropriate paragraphs of 35 U.S.C. 102 that form the basis for the rejections under this section made in this Office action: A person shall be entitled to a patent unless – (a)(1) the claimed invention was patented, described in a printed publication, or in public use, on sale or otherwise available to the public before the effective filing date of the claimed invention. Claims 1-3 are rejected under 35 U.S.C. 102 (a) (1) as being anticipated by Mamidela (US 10936384 B1). Regarding to claim 1, Mamidela discloses: A system comprising (see Fig. 1, lines 42-61 of col. 2. Also see claim 8): an Application Programming Interface (API) source (see lines 61-67 of col. 3; “at 5210, API calls/entities based on OData are retrieved/extracted from a central catalog of APIs (e.g., an API Hub), and fetched, from a database”. Also see “a plurality of APIs stored in a database” from claim 8); a memory storing processor-executable program code; and a processing unit to execute the processor-executable program code to cause the system to (see claim 8; “A system comprising: a processor; and a memory in communication with the processor, the memory storing program instructions, the processor operative with the program instructions to perform the operations of”): receive an API from the API source (see lines 61-67 of col. 3; “at 5210, API calls/entities based on OData are retrieved/extracted from a central catalog of APIs (e.g., an API Hub), and fetched, from a database”); insert one or more parameters into an endpoint of the API (see lines 20-24 of col. 4; “at 5230, an input specifying a desired number of iterations (e.g., main runs) to perform each of the selected one or more API calls is provided”. Also see lines 59-61 of col. 4; “the graphical user interface may include an option to specify the target system for triggering the execution”); execute, for a plurality of iterations, the API on a target system (see lines 25-27 of col. 4; “performance testing for each of the selected one or more API calls is executed in a default target system for the specified number of iterations”); receive, from a target system, performance data based on each of the plurality of executions of the API and the inserted one or more parameters (see lines 25-32 of col. 4; “Performance information, including an average response time of the iterations, is recorded and may be retrieved from the target system at 5250”. Also see lines 56-58 of col. 4; “the average response time may include a processing time of a request (e.g., OData request), an end-to-end (E2E) response time, and an elapsed time”); receive API information based on the inserted one or more parameters and an execution of the API (see lines 25-32 of col. 4; “Performance information, including an average response time of the iterations, is recorded and may be retrieved from the target system at 5250”. Also see lines 28-34 of col. 3; “OData defines an abstract data model and a protocol which, together, enable any client to access data exposed by any data source via a Uniform Resource Indicator (URI). The data model provides a generic way to organize and describe data. A GET request may list details and URIs of the resources in a collection and retrieve a specific item in the collection”. Also see “No. of Items” column of the table shown by Fig. 6 and “No. of Items” indicated by column G of the table shown by Fig. 7. The performance information related to number of items is considered as claimed API information); and display the performance data and API information on a graphical user interface (see lines 25-32 of col. 4; “the performance information is displayed on the graphical user interface at 5260”. Also see the tables shown by Figs. 6-7). Regarding to Claim 2, the rejection of Claim 1 is incorporated and further Mamidela discloses: wherein the API is based on Open Data Protocol (OData) (see lines 9-14 of col. 2; “The disclosed embodiments relate to performance testing of application-programming interfaces (APIs), and more specifically, APIs that are based on OData (“OData APIs”)”). Regarding to Claim 3, the rejection of Claim 1 is incorporated and further Mamidela discloses: wherein execution of the API includes program code to cause the system to: transmit an API call from an initial point to the target system; and transmit an API response from the target system to the initial point (see lines 14-20 of col. 1, lines 50-61 of col. 2; “after a user logs into the API hub and selects an API of type OData (based on OData), the user can perform a GET request (e.g., a read operation). While a response may be provided” and “a client 110 may execute a Web Browser to request and receive a Web page (e.g., in HTML format) via HTTP or HTTPS, and may render and present the Web page according to known protocols. Target system 130 may comprise a test environment used to test the performance of an API”. The execution of the API in generally involved with transmit an API call from the initial point or client device to the target system that the API is executed and return API response back from the target system to the initial point or the client device). Claim Rejections - 35 USC § 103 The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action: A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102 of this title, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made. Claims 4-6 and 9-10 are rejected under 35 U.S.C. 103 as being unpatentable over Mamidela (US 10936384 B1) in view of Hakim et al. (US 20230421562 A1, hereafter Hakim). Regarding to Claim 4, the rejection of Claim 3 is incorporated, Mamidela does not discloses: wherein execution of the API includes transmission of the API across a plurality of legs. However, Hakim discloses: wherein execution of the API includes transmission of the API across a plurality of legs (see Fig. 1, 3C-3F, [0060]-[0069]; “the client device 110 may send, to the service provider system 102 and (in some instances) via the gateway device 140, a message including a request for access to the application 180 (e.g., the requested application/service referred to at step 302). The request may be an API request that complies with an API configured to interface with the requested application 180”, “at step 330, the gateway device 140 may receive the message including the API request along with the access token”, “the gateway device 140 may route the API request and/or corresponding message, via the application services device 150, to the appropriate API and/or application 180 … the applications services device 150 may receive the API request and the appropriate API and/or application 180 may be executed. The application 180 may generate a response to the API request. At step 346, the response may be routed, via the gateway device 140, for transmission to the client device 110. At step 348, the gateway device 140 may receive the response and route the response to the client device 110”. The operation flow path of the API described by [0060]-[0069] shows execution of the API includes transmission of the API across a plurality of legs between the initial point and the final API execution location). It would have been obvious to one with ordinary skill, in the art before the effective filing date of the claim invention, to modify the execution of the API from Mamidela by including the execution of API across multiple devices via at least a gateway device from Hakim, and thus the combination of Mamidela and Hakim would disclose the missing limitations from Mamidela, since it would provide a security mechanism that allows a gateway device to determine whether transmitted API request is associated with potential hardware activity or not (see [0063] from Mamidela; “The gateway device 140 may determine whether the API request may be associated with potential harmful activity in one or more ways. For instance, the gateway device 140 may determine whether the API request is associated with potential harmful activity based on comparing information associated with the API request to stored information associated with potential harmful activity”). Regarding to Claim 5, the rejection of Claim 4 is incorporated and further the combination of Mamidela and Hakim discloses: wherein each leg includes at least one intermediate point (see Fig. 1, 3C-3F, [0060]-[0069] from Hakim and the explanation of claim 4 above. At least the gateway device 140 and application services device 150 can be considered as the claimed intermediate points of the plurality of legs). Regarding to Claim 6, the rejection of Claim 5 is incorporated and further the combination of Mamidela and Hakim discloses: wherein the intermediate point comprises a gateway server and an application server (see Fig. 1, 3C-3F, [0060]-[0069] from Hakim and the explanation of claim 4 above. At least the gateway device 140 and application services device 150). Regarding to Claim 9, the rejection of Claim 4 is incorporated and further the combination of Mamidela and Hakim discloses: wherein the performance data includes an elapsed execution time for the API (see lines 25-32, 56-58 of col. 4 from Mamidela; “Performance information, including an average response time of the iterations” and “the average response time may include a processing time of a request (e.g., OData request), an end-to-end (E2E) response time, and an elapsed time”). Regarding to Claim 10, the rejection of Claim 9 is incorporated and further the combination of Mamidela and Hakim discloses: wherein the performance data includes an average over the plurality of iterations (see lines 25-32, 56-58 of col. 4 from Mamidela; “Performance information, including an average response time of the iterations” and “the average response time may include a processing time of a request (e.g., OData request), an end-to-end (E2E) response time, and an elapsed time”). Claim 7 is rejected under 35 U.S.C. 103 as being unpatentable over Mamidela (US 10936384 B1) in view of Hakim et al. (US 20230421562 A1, hereafter Hakim) and further in view of Kaiser et al. (US 12014395 B1, hereafter Kaiser). Regarding to Claim 7, the rejection of Claim 6 is incorporated and further the combination of Mamidela and Hakim discloses: wherein the application server is configured to: retrieve data and generate the API response including the retrieved data (see lines 28-34 of col. 3 from Mamidela and [0069] from Hakim; “OData defines … A GET request may list details and URIs of the resources in a collection and retrieve a specific item in the collection” and “the applications services device 150 may receive the API request and the appropriate API and/or application 180 may be executed. The application 180 may generate a response to the API request”. At the combination system the application of application server retrieves specific item and generate the API response including the retrieved item). The combination of Mamidela and Hakim does not disclose: the application server is configured to: access a database; retrieve data from the database. However, Kaiser discloses: the application server is configured to: access a database; retrieve data from the database; generate the API response including the retrieved data (see lines 3-36 of col. 18; “The offer API 146 receives 308 the request … The offer API 146 transmits 312 an API request to the database application 136 … The database application 136 retrieves 314 the offer recommendations from the deployed offer data set 138 for the user corresponding to the user identifier. For example, the database application 136 can retrieve the offer recommendations stored within the offer recommendation data structure for the user. The database application 136 can then transmit 316 a response to the API request to the offer API 146 … the database application 136 includes in the response to the API request the offer recommendation data structure”. Also see lines 40-42 of col. 4 and lines 12-36 of col. 10; “The API can retrieve the personalized offers from the database and provide the personalized offers to the delivery server” from and “The database server 130 operates a database for storage of offers generated by the offer recommendation server 110 … the database application 136 is configured to manage data stored at the database server 130, to receive and respond to requests for data, and to manage incoming data”. It is reasonable to consider the deployed offer data set 138 described at lines 3-36 as certain or part of database storing the requested data/item associated with the API). It would have been obvious to one with ordinary skill, in the art before the effective filing date of the claim invention, to modify data retrieving operation for the API from the combination of Mamidela and Hakim by including retrieving associated data from database in response to API request from Kaiser, and thus the combination of Mamidela, Hakim and Kaiser would disclose the missing limitations from the combination of Mamidela and Hakim, since a database is well-known data store concept to store data or information to allow retrieving the stored data or information. Claim 8 is rejected under 35 U.S.C. 103 as being unpatentable over Mamidela (US 10936384 B1) in view of Hakim et al. (US 20230421562 A1, hereafter Hakim) and further in view of Hudzia et al. (US 20130132560 A1, hereafter Hudzia). Regarding to Claim 8, the rejection of Claim 4 is incorporated, the combination of Mamidela and Hakim does not disclose: record, based on the one or more inserted parameter, an elapsed time for API transmission for each leg. However, Hudzia discloses: record an elapsed time for message transmission for each leg (see [0087]-[0090]; “the various messages may be transmitted between the node 702, 704 and the node 718, and each such intermediate node may, as described with respect to FIG. 1, incrementally add latency information to each transmitted message, as each such message traverses the node in question” and “update a message header of the message so as to include the previously-determined average transmission time between the nodes 706/714 as being representative of an actual transmission time that was experienced by the message in traversing from the node 706 to the node 714”. Also see [0009] and [0101]-[0104]; “extract latency information from the plurality of messages, the latency information characterizing a transmission duration experienced by each message in traveling from the one or more source nodes through the network” and “the update message 1204 includes a count field which has been incremented to one to reflect transmission of the message from the node 1110 to the node 1108, as well as a delay field which is updated to include the value 120 milliseconds representing the transmission delay experienced by the message during its transmission from the node 1110 to the node 1108”). It would have been obvious to one with ordinary skill, in the art before the effective filing date of the claim invention, to modify the transmission of the API related messages among different nodes during API execution from the combination of Mamidela and Hakim by including recording the transmission delay or latency information in each message transmitted during different nodes from Hudzia, and thus the combination of Mamidela, Hakim and Hudzia would disclose the missing limitations from the combination of Mamidela and Hakim (note: Hudzia alone may not disclose the feature of recording claimed elapsed time based on the one or more inserted parameter. However, Mamidela already discloses the transmission of the API is based on the inserted parameters, i.e., inserted/specified target system, and thus the elapsed time for API transmission for each leg at the combination system is recorded based on the inserted parameters), since it would provide “a particular timeframe, complex event processing techniques generally rely on complete, accurate, and timely transmission of events, e.g., within a computer network” (see [0006] from Hudzia). Claim 11 is rejected under 35 U.S.C. 103 as being unpatentable over Mamidela (US 10936384 B1) in view of Hakim et al. (US 20230421562 A1, hereafter Hakim) and further in view of Fletcher et al. (US 20170046127 A1, hereafter Fletcher). Regarding to Claim 11, the rejection of Claim 10 is incorporated, the combination of Mamidela and Hakim does not disclose: calculate one or more performance metrics based on the performance data and the API information. However, Fletcher discloses: calculate one or more performance metrics based on the performance data and the service information (see [0295]; “an aggregate KPI can be configured and calculated for a service to represent the overall health of a service … The aggregate KPI can be a value representative of the overall performance of the service based on the values for the individual KPIs … allow individual KPIs of a service to be weighted in terms of how important a particular KPI is to the service relative to the other KPIs in the service”. Also see [01612]; “various visualizations can be built on the described service-centric organization of event data and the KPI values generated and collected … The interface may prominently display a services health section with tiles for the aggregate KPI's indicating overall health for defined services, and a general KPI section with tiles for KPI's related to individual service aspects, for example. The tiles of each section may be colored and ordered according to factors such as the KPI state value, and may display KPI information in a variety of ways. The KPI tiles can be interactive so as to provide navigation to visualizations of more detailed KPI information”). It would have been obvious to one with ordinary skill, in the art before the effective filing date of the claim invention, to modify the performance test of the API from the combination of Mamidela and Hakim by including determining and displaying an overall performance of tested service from Fletcher, and thus the combination of Mamidela, Hakim and Fletcher would disclose the missing limitations from the combination of Mamidela and Hakim, since it would provide a high level of overall score for testing a service by considering different performance and factors (see [0295] from Fletcher). Claim 12 is rejected under 35 U.S.C. 103 as being unpatentable over Mamidela (US 10936384 B1) in view of Hakim et al. (US 20230421562 A1, hereafter Hakim) and Fletcher et al. (US 20170046127 A1, hereafter Fletcher) and further in view of Shrivastava et al. (US 20240330118 A1, hereafter Shrivastava) and Ahuja (US 20210406383 A1). Regarding to Claim 12, the rejection of Claim 11 is incorporated and further the combination of Mamidela, Hakim and Fletcher discloses: wherein the API information includes a number of items fetched from a database (see lines 28-34 of col. 3 from Mamidela; “OData defines an abstract data model and a protocol which, together, enable any client to access data exposed by any data source via a Uniform Resource Indicator (URI). The data model provides a generic way to organize and describe data. A GET request may list details and URIs of the resources in a collection and retrieve a specific item in the collection”. Also see “No. of Items” column of the table shown by Fig. 6 and “No. of Items” indicated by column G of the table shown by Fig. 7 from Mamidela). The combination of Mamidela, Hakim and Fletcher does not disclose: the API information further includes a total number of items in the database, and a service quality score. However, Shrivastava discloses: wherein the API information includes a total number of items in the database (see [0060]; “issue a GetRecoveryStats function call (API) to a data service managing the database to compute the storage stats (e.g., total bytes) of data storage consumed by each vdisk 235 of the data set. The replication manager 320 may then consolidate the total data storage bytes of all vdisks in the data set for the UVM 210 to determine how much data needs to be transferred (replicated) to the secondary site B”). It would have been obvious to one with ordinary skill, in the art before the effective filing date of the claim invention, to modify the API information from the combination of Mamidela, Hakim and Fletcher by including API information of total data amount of a database from Shrivastava, since it would provide a specific database statistic information to help performing further database management operation (see [0060] from Shrivastava). In addition, Ahuja discloses: wherein the API information includes a service quality score (see [0052] and [0058]; “determine the quality value 152-1 associated with the API 150 by calculating the weighted sum of the qualities associates with different portions of the source code of the API 150”. Also see [0042]-[0047]; “the quality associated with the API 150 may depend on a reliability of the source code of the API 150, where the reliability of the source code of the API 150 is represented by the probability that the task 124 will be performed using the API 150 without failure over a specific period of operation”, “the quality associated with the API 150 may depend on a maintainability of the source code of the API 150, where the maintainability of the source code of the API 150 is represented by how easily the API 150 can be maintained”, “ the quality associated with the API 150 may depend on a testability of the source code of the API 150, where the testability of the source code of the API 150 is represented by how easily potential defects or errors in the source code of the API 150 may be found by test cases and test points”, “the quality associated with the API 150 may depend on a portability of the source code of the API 150, where the portability of the source code of the API 150 is represented by whether the API 150 is platform-independent”, “the quality associated with the API 150 may depend on a reusability of the source code of the API 150. In one example, the reusability of the source code of the API 150 is represented by whether the classes, methods, function, and/or other portions of the source code of API 150 can be reused in developing other APIs 150 and/or web applications 140” and “the quality associated with the API 150 may depend on how much processing power it consumes to perform the particular task 124”). It would have been obvious to one with ordinary skill, in the art before the effective filing date of the claim invention, to modify the API information from the combination of Mamidela, Hakim, Fletcher and Shrivastava by including quality value of an API from Ahuja, and thus the combination of Mamidela, Hakim, Fletcher, Shrivastava and Ahuja would disclose the missing limitations from the combination of Mamidela, Hakim and Fletcher, since it would provide a mechanism to rate a given API at different levels including but not limited to reliability, maintainability, testability and reusability (see [0042]-[0047] from Ahuja). Claims 13 and 18 are rejected under 35 U.S.C. 103 as being unpatentable over Mamidela (US 10936384 B1) in view of Fletcher et al. (US 20170046127 A1, hereafter Fletcher). Regarding to Claim 13, Mamidela discloses: A computer-implemented method (see Fig. 1, lines 42-61 of col. 2. Also see claim 1) comprising: receiving an Application Programming Interface (API) from an API source (see lines 61-67 of col. 3; “at 5210, API calls/entities based on OData are retrieved/extracted from a central catalog of APIs (e.g., an API Hub), and fetched, from a database”. Also see “a plurality of APIs stored in a database” from claim 1), wherein the API is based on Open Data Protocol (OData) (see lines 9-14 of col. 2; “The disclosed embodiments relate to performance testing of application-programming interfaces (APIs), and more specifically, APIs that are based on OData (“OData APIs”)”); inserting one or more parameters into an endpoint of the API (see lines 20-24 of col. 4; “at 5230, an input specifying a desired number of iterations (e.g., main runs) to perform each of the selected one or more API calls is provided”. Also see lines 59-61 of col. 4; “the graphical user interface may include an option to specify the target system for triggering the execution”); executing, for a plurality of iterations, the API (see lines 25-27 of col. 4; “performance testing for each of the selected one or more API calls is executed in a default target system for the specified number of iterations”); receiving performance data from a target system based on the plurality of executions of the API and the inserted one or more parameters (see lines 25-32 of col. 4; “Performance information, including an average response time of the iterations, is recorded and may be retrieved from the target system at 5250”. Also see lines 56-58 of col. 4; “the average response time may include a processing time of a request (e.g., OData request), an end-to-end (E2E) response time, and an elapsed time”); receiving API information based on the inserted one or more parameters and an execution of the API (see lines 25-32 of col. 4; “Performance information, including an average response time of the iterations, is recorded and may be retrieved from the target system at 5250”. Also see lines 28-34 of col. 3; “OData defines an abstract data model and a protocol which, together, enable any client to access data exposed by any data source via a Uniform Resource Indicator (URI). The data model provides a generic way to organize and describe data. A GET request may list details and URIs of the resources in a collection and retrieve a specific item in the collection”. Also see “No. of Items” column of the table shown by Fig. 6 and “No. of Items” indicated by column G of the table shown by Fig. 7. The performance information related to number of items is considered as claimed API information); and displaying the performance metrics, performance data and API information on a graphical user interface (see lines 25-32 of col. 4; “the performance information is displayed on the graphical user interface at 5260”. Also see the tables shown by Figs. 6-7). Mamidela does not disclose: calculating one or more performance metrics based on the received performance data and the received API information; displaying the performance metrics on the graphical user interface. However, Fletcher discloses: calculating one or more performance metrics based on the performance data and the service information; displaying the performance metrics on the graphical user interface (see [0295]; “an aggregate KPI can be configured and calculated for a service to represent the overall health of a service … The aggregate KPI can be a value representative of the overall performance of the service based on the values for the individual KPIs … allow individual KPIs of a service to be weighted in terms of how important a particular KPI is to the service relative to the other KPIs in the service”. Also see [01612]; “various visualizations can be built on the described service-centric organization of event data and the KPI values generated and collected … The interface may prominently display a services health section with tiles for the aggregate KPI's indicating overall health for defined services, and a general KPI section with tiles for KPI's related to individual service aspects, for example. The tiles of each section may be colored and ordered according to factors such as the KPI state value, and may display KPI information in a variety of ways. The KPI tiles can be interactive so as to provide navigation to visualizations of more detailed KPI information”). It would have been obvious to one with ordinary skill, in the art before the effective filing date of the claim invention, to modify the performance test of the API from Mamidela by including determining and displaying an overall performance of tested service from Fletcher, and thus the combination of Mamidela and Fletcher would disclose the missing limitations from Mamidela, since it would provide a high level of overall score for testing a service by considering different performance and factors (see [0295] from Fletcher). Regarding to Claim 18, Mamidela discloses: A non-transitory computer readable medium having executable instructions stored therein to perform a method (see lines 66-8 of cols. 4-5 and claim 15), the method comprising: receiving an Application Programming Interface (API) from an API source (see lines 61-67 of col. 3; “at 5210, API calls/entities based on OData are retrieved/extracted from a central catalog of APIs (e.g., an API Hub), and fetched, from a database”. Also see “a plurality of APIs stored in a database” from claim 15), wherein the API is based on Open Data Protocol (OData) (see lines 9-14 of col. 2; “The disclosed embodiments relate to performance testing of application-programming interfaces (APIs), and more specifically, APIs that are based on OData (“OData APIs”)”); inserting one or more parameters into an endpoint of the API (see lines 20-24 of col. 4; “at 5230, an input specifying a desired number of iterations (e.g., main runs) to perform each of the selected one or more API calls is provided”. Also see lines 59-61 of col. 4; “the graphical user interface may include an option to specify the target system for triggering the execution”); executing, for a plurality of iterations, the API on a target system (see lines 25-27 of col. 4; “performance testing for each of the selected one or more API calls is executed in a default target system for the specified number of iterations”); receiving performance data from a target system based on the plurality of executions of the API and the inserted one or more parameters (see lines 25-32 of col. 4; “Performance information, including an average response time of the iterations, is recorded and may be retrieved from the target system at 5250”. Also see lines 56-58 of col. 4; “the average response time may include a processing time of a request (e.g., OData request), an end-to-end (E2E) response time, and an elapsed time”); receiving API information based on the inserted one or more parameters and an execution of the API (see lines 25-32 of col. 4; “Performance information, including an average response time of the iterations, is recorded and may be retrieved from the target system at 5250”. Also see lines 28-34 of col. 3; “OData defines an abstract data model and a protocol which, together, enable any client to access data exposed by any data source via a Uniform Resource Indicator (URI). The data model provides a generic way to organize and describe data. A GET request may list details and URIs of the resources in a collection and retrieve a specific item in the collection”. Also see “No. of Items” column of the table shown by Fig. 6 and “No. of Items” indicated by column G of the table shown by Fig. 7. The performance information related to number of items is considered as claimed API information); displaying performance data and API information on a graphical user interface (see lines 25-32 of col. 4; “the performance information is displayed on the graphical user interface at 5260”. Also see the tables shown by Figs. 6-7). Mamidela does not disclose: calculating one or more performance metrics based on the received performance data and the received API information; displaying the performance metrics on the graphical user interface. However, Fletcher discloses: calculating one or more performance metrics based on the performance data and the service information; displaying the performance metrics on the graphical user interface (see [0295]; “an aggregate KPI can be configured and calculated for a service to represent the overall health of a service … The aggregate KPI can be a value representative of the overall performance of the service based on the values for the individual KPIs … allow individual KPIs of a service to be weighted in terms of how important a particular KPI is to the service relative to the other KPIs in the service”. Also see [01612]; “various visualizations can be built on the described service-centric organization of event data and the KPI values generated and collected … The interface may prominently display a services health section with tiles for the aggregate KPI's indicating overall health for defined services, and a general KPI section with tiles for KPI's related to individual service aspects, for example. The tiles of each section may be colored and ordered according to factors such as the KPI state value, and may display KPI information in a variety of ways. The KPI tiles can be interactive so as to provide navigation to visualizations of more detailed KPI information”). It would have been obvious to one with ordinary skill, in the art before the effective filing date of the claim invention, to modify the performance test of the API from Mamidela by including determining and displaying an overall performance of tested service from Fletcher, and thus the combination of Mamidela and Fletcher would disclose the missing limitations from Mamidela, since it would provide a high level of overall score for testing a service by considering different performance and factors (see [0295] from Fletcher). Claims 14-16 and 19 are rejected under 35 U.S.C. 103 as being unpatentable over Mamidela (US 10936384 B1) in view of Fletcher et al. (US 20170046127 A1, hereafter Fletcher) and further in view of Hakim et al. (US 20230421562 A1, hereafter Hakim). Regarding to Claim 14, the rejection of Claim 13 is incorporated, the combination of Mamidela and Fletcher does not disclose: wherein execution of the API includes transmission of the API across a plurality of legs. However, Hakim discloses: wherein execution of the API includes transmission of the API across a plurality of legs (see Fig. 1, 3C-3F, [0060]-[0069]; “the client device 110 may send, to the service provider system 102 and (in some instances) via the gateway device 140, a message including a request for access to the application 180 (e.g., the requested application/service referred to at step 302). The request may be an API request that complies with an API configured to interface with the requested application 180”, “at step 330, the gateway device 140 may receive the message including the API request along with the access token”, “the gateway device 140 may route the API request and/or corresponding message, via the application services device 150, to the appropriate API and/or application 180 … the applications services device 150 may receive the API request and the appropriate API and/or application 180 may be executed. The application 180 may generate a response to the API request. At step 346, the response may be routed, via the gateway device 140, for transmission to the client device 110. At step 348, the gateway device 140 may receive the response and route the response to the client device 110”. The operation flow path of the API described by [0060]-[0069] shows execution of the API includes transmission of the API across a plurality of legs between the initial point and the final API execution location). It would have been obvious to one with ordinary skill, in the art before the effective filing date of the claim invention, to modify the execution of the API from combination of Mamidela and Fletcher by including the execution of API across multiple devices via at least a gateway device from Hakim, and thus the combination of Mamidela, Fletcher and Hakim would disclose the missing limitations from the combination of Mamidela and Fletcher, since it would provide a security mechanism that allows a gateway device to determine whether transmitted API request is associated with potential hardware activity or not (see [0063] from Mamidela; “The gateway device 140 may determine whether the API request may be associated with potential harmful activity in one or more ways. For instance, the gateway device 140 may determine whether the API request is associated with potential harmful activity based on comparing information associated with the API request to stored information associated with potential harmful activity”). Regarding to Claim 15, the rejection of Claim 14 is incorporated and further the combination of Mamidela, Fletcher and Hakim discloses: wherein each leg includes at least one intermediate point (see Fig. 1, 3C-3F, [0060]-[0069] from Hakim and the explanation of claim 14 above. At least the gateway device 140 and application services device 150 can be considered as the claimed intermediate points of the plurality of legs) Regarding to Claim 16, the rejection of Claim 15 is incorporated and further the combination of Mamidela, Fletcher and Hakim discloses: wherein the intermediate point comprises a gateway server and an application server (see Fig. 1, 3C-3F, [0060]-[0069] from Hakim and the explanation of claim 14 above. At least the gateway device 140 and application services device 150). Regarding to Claim 19, the rejection of Claim 18 is incorporated, the combination of Mamidela and Fletcher does not disclose: wherein execution of the API includes transmission of the API across a plurality of legs. However, Hakim discloses: wherein execution of the API includes transmission of the API across a plurality of legs (see Fig. 1, 3C-3F, [0060]-[0069]; “the client device 110 may send, to the service provider system 102 and (in some instances) via the gateway device 140, a message including a request for access to the application 180 (e.g., the requested application/service referred to at step 302). The request may be an API request that complies with an API configured to interface with the requested application 180”, “at step 330, the gateway device 140 may receive the message including the API request along with the access token”, “the gateway device 140 may route the API request and/or corresponding message, via the application services device 150, to the appropriate API and/or application 180 … the applications services device 150 may receive the API request and the appropriate API and/or application 180 may be executed. The application 180 may generate a response to the API request. At step 346, the response may be routed, via the gateway device 140, for transmission to the client device 110. At step 348, the gateway device 140 may receive the response and route the response to the client device 110”. The operation flow path of the API described by [0060]-[0069] shows execution of the API includes transmission of the API across a plurality of legs between the initial point and the final API execution location). It would have been obvious to one with ordinary skill, in the art before the effective filing date of the claim invention, to modify the execution of the API from combination of Mamidela and Fletcher by including the execution of API across multiple devices via at least a gateway device from Hakim, and thus the combination of Mamidela, Fletcher and Hakim would disclose the missing limitations from the combination of Mamidela and Fletcher, since it would provide a security mechanism that allows a gateway device to determine whether transmitted API request is associated with potential hardware activity or not (see [0063] from Mamidela; “The gateway device 140 may determine whether the API request may be associated with potential harmful activity in one or more ways. For instance, the gateway device 140 may determine whether the API request is associated with potential harmful activity based on comparing information associated with the API request to stored information associated with potential harmful activity”). Claims 17 and 20 are rejected under 35 U.S.C. 103 as being unpatentable over Mamidela (US 10936384 B1) in view of Fletcher et al. (US 20170046127 A1, hereafter Fletcher) and Hakim et al. (US 20230421562 A1, hereafter Hakim) and further in view of Hudzia et al. (US 20130132560 A1, hereafter Hudzia). Regarding to Claim 17, the rejection of Claim 14 is incorporated, the combination of Mamidela, Fletcher and Hakim does not disclose: recording, based on the one or more inserted parameters, a time taken for API transmission for each leg. However, Hudzia discloses: recording an elapsed time for message transmission for each leg (see [0087]-[0090]; “the various messages may be transmitted between the node 702, 704 and the node 718, and each such intermediate node may, as described with respect to FIG. 1, incrementally add latency information to each transmitted message, as each such message traverses the node in question” and “update a message header of the message so as to include the previously-determined average transmission time between the nodes 706/714 as being representative of an actual transmission time that was experienced by the message in traversing from the node 706 to the node 714”. Also see [0009] and [0101]-[0104]; “extract latency information from the plurality of messages, the latency information characterizing a transmission duration experienced by each message in traveling from the one or more source nodes through the network” and “the update message 1204 includes a count field which has been incremented to one to reflect transmission of the message from the node 1110 to the node 1108, as well as a delay field which is updated to include the value 120 milliseconds representing the transmission delay experienced by the message during its transmission from the node 1110 to the node 1108”). It would have been obvious to one with ordinary skill, in the art before the effective filing date of the claim invention, to modify the transmission of the API related messages among different nodes during API execution from the combination of Mamidela, Fletcher and Hakim by including recording the transmission delay or latency information in each message transmitted during different nodes from Hudzia, and thus the combination of Mamidela, Fletcher, Hakim and Hudzia would disclose the missing limitations from the combination of Mamidela, Fletcher and Hakim (note: Hudzia alone may not disclose the feature of recording claimed elapsed time based on the one or more inserted parameter. However, Mamidela already discloses the transmission of the API is based on the inserted parameters, i.e., inserted/specified target system, and thus the elapsed time for API transmission for each leg at the combination system is recorded based on the inserted parameters), since it would provide “a particular timeframe, complex event processing techniques generally rely on complete, accurate, and timely transmission of events, e.g., within a computer network” (see [0006] from Hudzia). Regarding to Claim 20, the rejection of Claim 19 is incorporated, the combination of Mamidela, Fletcher and Hakim does not disclose: recording, based on one or more inserted parameters, a time taken for API transmission for each leg. However, Hudzia discloses: recording an elapsed time for message transmission for each leg (see [0087]-[0090]; “the various messages may be transmitted between the node 702, 704 and the node 718, and each such intermediate node may, as described with respect to FIG. 1, incrementally add latency information to each transmitted message, as each such message traverses the node in question” and “update a message header of the message so as to include the previously-determined average transmission time between the nodes 706/714 as being representative of an actual transmission time that was experienced by the message in traversing from the node 706 to the node 714”. Also see [0009] and [0101]-[0104]; “extract latency information from the plurality of messages, the latency information characterizing a transmission duration experienced by each message in traveling from the one or more source nodes through the network” and “the update message 1204 includes a count field which has been incremented to one to reflect transmission of the message from the node 1110 to the node 1108, as well as a delay field which is updated to include the value 120 milliseconds representing the transmission delay experienced by the message during its transmission from the node 1110 to the node 1108”). It would have been obvious to one with ordinary skill, in the art before the effective filing date of the claim invention, to modify the transmission of the API related messages among different nodes during API execution from the combination of Mamidela, Fletcher and Hakim by including recording the transmission delay or latency information in each message transmitted during different nodes from Hudzia, and thus the combination of Mamidela, Fletcher, Hakim and Hudzia would disclose the missing limitations from the combination of Mamidela, Fletcher and Hakim (note: Hudzia alone may not disclose the feature of recording claimed elapsed time based on the one or more inserted parameter. However, Mamidela already discloses the transmission of the API is based on the inserted parameters, i.e., inserted/specified target system, and thus the elapsed time for API transmission for each leg at the combination system is recorded based on the inserted parameters), since it would provide “a particular timeframe, complex event processing techniques generally rely on complete, accurate, and timely transmission of events, e.g., within a computer network” (see [0006] from Hudzia). Conclusion The prior art made of record and not relied upon is considered pertinent to applicant's disclosure. Eicken et al. (US 20080069005 A1) discloses: a supplemental measurement is take to identify latency in transmitting information between nodes (see [0101]-[0102]). Tewari et al. (US 20200382399 A1) discloses: an API may be implemented that allows users to request a traceroute between virtual endpoints and return a report of all discovered virtual hops between the endpoints and associated latencies between the hops (see [0008]). Lim et al. (US 20240264927 A1) discloses: determining and displaying one or more performance metrics of tested API based on the performance data of the tested API and the API information (see [0084]-[0085]; “to determine the suitability of the product based on the centralized onboarding policy. In an example embodiment, the EOP module 310 can generate and present a GUI that allows the second user (e.g., a network operator) to present information about the evaluation of the onboarding test in step 407 to the first user”) Satish (US 7966278 B1) discloses: determining and displaying health-impact information based on different performance information and application information of the application to be tested (see claims 1-4). Chenguttuvan et al. (US 20200401505 A1) discloses: testing report data of an API include performance results of the tested API, execution status (success or failure), test execution statistics, and the like. The test execution statistics may include number of test cases executed, the number of test cases passed, the number of test cases failed, pass percentage of test cases, fail percentage of the test cases and the like. Further, the test report data (206) may include information for example total number of bugs, status of bugs (open, closed, responding), number of bugs in open status, resolved status and closed status and the like (see [0034]). Hulick, JR (US 20140237453 A1) discloses: determining and displaying a score value that indicating overall code quality of the application based on different performance information and application information (see [0051]). Usmani et al. (US 20060259629 A1) discloses: provide an analysis including visual displays of charts and graphs. Such analysis may include analyzing API performance with respect to executing the given test configuration, including analyzing, for example, data throughput vs. quality, dropped frames (video and/or audio), and processor usage (see [0087]). Wang et al. (US 20170220606 A1) discloses: an API to retrieve one or more portions of data from one database based on total amount of data contained at the database (see [0020]). Hamada et al. discloses: (US 20020057272 A1) discloses: obtaining total number of rows at database and a number of rows to be fetched from the database (see [0049]-[0050]; “the total number of rows of the target data to be displayed is obtained from RDBMS using an SQL statement such as “SELECT COUNT (DISTINCT column name) FROM table name”. The returned value is stored in a variable named “total”” and “the number of data rows that can be extracted (i.e. fetched) at one time “numFetches””). Any inquiry concerning this communication or earlier communications from the examiner should be directed to ZHI CHEN whose telephone number is (571)272-0805. The examiner can normally be reached on M-F from 9:30AM to 5:30PM. If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, April Y Blair can be reached on 571-270-1014. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300. Information regarding the status of an application may be obtained from Patent Center and the Private Patent Application Information Retrieval (PAIR) system. Status information for published applications may be obtained from Patent Center or Private PAIR. Status information for unpublished applications is available through Patent Center and Private PAIR to authorized users only. Should you have questions about access to the Private PAIR system, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) Form at https://www.uspto.gov/patents/uspto-automated- interview-request-air-form. /Zhi Chen/ Patent Examiner, AU2196 /APRIL Y BLAIR/Supervisory Patent Examiner, Art Unit 2196
Read full office action

Prosecution Timeline

Oct 17, 2023
Application Filed
Jan 28, 2026
Non-Final Rejection — §102, §103
Apr 10, 2026
Examiner Interview Summary
Apr 10, 2026
Applicant Interview (Telephonic)

Precedent Cases

Applications granted by this same examiner with similar technology

Patent 12596561
SYSTEM AND METHOD OF DYNAMICALLY ASSIGNING DEVICE TIERS BASED ON APPLICATION
2y 5m to grant Granted Apr 07, 2026
Patent 12596584
APPLICATION PROGRAMING INTERFACE TO INDICATE CONCURRENT WIRELESS CELL CAPABILITY
2y 5m to grant Granted Apr 07, 2026
Patent 12591461
ADAPTIVE SCHEDULING WITH DYNAMIC PARTITION-LOAD BALANCING FOR FAST PARTITION COMPILATION
2y 5m to grant Granted Mar 31, 2026
Patent 12585495
DISTRIBUTED COMPUTING PIPELINE PROCESSING
2y 5m to grant Granted Mar 24, 2026
Patent 12579012
FORWARD PROGRESS GUARANTEE USING SINGLE-LEVEL SYNCHRONIZATION AT INDIVIDUAL THREAD GRANULARITY
2y 5m to grant Granted Mar 17, 2026
Study what changed to get past this examiner. Based on 5 most recent grants.

AI Strategy Recommendation

Get an AI-powered prosecution strategy using examiner precedents, rejection analysis, and claim mapping.
Powered by AI — typically takes 5-10 seconds

Prosecution Projections

1-2
Expected OA Rounds
61%
Grant Probability
99%
With Interview (+40.5%)
3y 3m
Median Time to Grant
Low
PTA Risk
Based on 250 resolved cases by this examiner. Grant probability derived from career allow rate.

Sign in with your work email

Enter your email to receive a magic link. No password needed.

Personal email addresses (Gmail, Yahoo, etc.) are not accepted.

Free tier: 3 strategy analyses per month