PrediQL: Automated Testing of GraphQL APIs with LLMs Article Swipe
YOU?
·
· 2025
· Open Access
·
· DOI: https://doi.org/10.48550/arxiv.2510.10407
GraphQL's flexible query model and nested data dependencies expose APIs to complex, context-dependent vulnerabilities that are difficult to uncover using conventional testing tools. Existing fuzzers either rely on random payload generation or rigid mutation heuristics, failing to adapt to the dynamic structures of GraphQL schemas and responses. We present PrediQL, the first retrieval-augmented, LLM-guided fuzzer for GraphQL APIs. PrediQL combines large language model reasoning with adaptive feedback loops to generate semantically valid and diverse queries. It models the choice of fuzzing strategy as a multi-armed bandit problem, balancing exploration of new query structures with exploitation of past successes. To enhance efficiency, PrediQL retrieves and reuses execution traces, schema fragments, and prior errors, enabling self-correction and progressive learning across test iterations. Beyond input generation, PrediQL integrates a context-aware vulnerability detector that uses LLM reasoning to analyze responses, interpreting data values, error messages, and status codes to identify issues such as injection flaws, access-control bypasses, and information disclosure. Our evaluation across open-source and benchmark GraphQL APIs shows that PrediQL achieves significantly higher coverage and vulnerability discovery rates compared to state-of-the-art baselines. These results demonstrate that combining retrieval-augmented reasoning with adaptive fuzzing can transform API security testing from reactive enumeration to intelligent exploration.
Related Topics
- Type
- preprint
- Language
- en
- Landing Page
- http://arxiv.org/abs/2510.10407
- https://arxiv.org/pdf/2510.10407
- OA Status
- green
- OpenAlex ID
- https://openalex.org/W4415947150
Raw OpenAlex JSON
- OpenAlex ID
-
https://openalex.org/W4415947150Canonical identifier for this work in OpenAlex
- DOI
-
https://doi.org/10.48550/arxiv.2510.10407Digital Object Identifier
- Title
-
PrediQL: Automated Testing of GraphQL APIs with LLMsWork title
- Type
-
preprintOpenAlex work type
- Language
-
enPrimary language
- Publication year
-
2025Year of publication
- Publication date
-
2025-10-12Full publication date if available
- Authors
-
Shaolun Liu, Sina Marefat, O. D. Tsai, Yu Chen, Zecheng Deng, Jianwei Wang, Mohammad A. TayebiList of authors in order
- Landing page
-
https://arxiv.org/abs/2510.10407Publisher landing page
- PDF URL
-
https://arxiv.org/pdf/2510.10407Direct link to full text PDF
- Open access
-
YesWhether a free full text is available
- OA status
-
greenOpen access status per OpenAlex
- OA URL
-
https://arxiv.org/pdf/2510.10407Direct OA link when available
- Cited by
-
0Total citation count in OpenAlex
Full payload
| id | https://openalex.org/W4415947150 |
|---|---|
| doi | https://doi.org/10.48550/arxiv.2510.10407 |
| ids.doi | https://doi.org/10.48550/arxiv.2510.10407 |
| ids.openalex | https://openalex.org/W4415947150 |
| fwci | |
| type | preprint |
| title | PrediQL: Automated Testing of GraphQL APIs with LLMs |
| biblio.issue | |
| biblio.volume | |
| biblio.last_page | |
| biblio.first_page | |
| is_xpac | False |
| apc_list | |
| apc_paid | |
| language | en |
| locations[0].id | pmh:oai:arXiv.org:2510.10407 |
| locations[0].is_oa | True |
| locations[0].source.id | https://openalex.org/S4306400194 |
| locations[0].source.issn | |
| locations[0].source.type | repository |
| locations[0].source.is_oa | True |
| locations[0].source.issn_l | |
| locations[0].source.is_core | False |
| locations[0].source.is_in_doaj | False |
| locations[0].source.display_name | arXiv (Cornell University) |
| locations[0].source.host_organization | https://openalex.org/I205783295 |
| locations[0].source.host_organization_name | Cornell University |
| locations[0].source.host_organization_lineage | https://openalex.org/I205783295 |
| locations[0].license | |
| locations[0].pdf_url | https://arxiv.org/pdf/2510.10407 |
| locations[0].version | submittedVersion |
| locations[0].raw_type | text |
| locations[0].license_id | |
| locations[0].is_accepted | False |
| locations[0].is_published | False |
| locations[0].raw_source_name | |
| locations[0].landing_page_url | http://arxiv.org/abs/2510.10407 |
| locations[1].id | doi:10.48550/arxiv.2510.10407 |
| locations[1].is_oa | True |
| locations[1].source.id | https://openalex.org/S4306400194 |
| locations[1].source.issn | |
| locations[1].source.type | repository |
| locations[1].source.is_oa | True |
| locations[1].source.issn_l | |
| locations[1].source.is_core | False |
| locations[1].source.is_in_doaj | False |
| locations[1].source.display_name | arXiv (Cornell University) |
| locations[1].source.host_organization | https://openalex.org/I205783295 |
| locations[1].source.host_organization_name | Cornell University |
| locations[1].source.host_organization_lineage | https://openalex.org/I205783295 |
| locations[1].license | cc-by |
| locations[1].pdf_url | |
| locations[1].version | |
| locations[1].raw_type | article |
| locations[1].license_id | https://openalex.org/licenses/cc-by |
| locations[1].is_accepted | False |
| locations[1].is_published | |
| locations[1].raw_source_name | |
| locations[1].landing_page_url | https://doi.org/10.48550/arxiv.2510.10407 |
| indexed_in | arxiv, datacite |
| authorships[0].author.id | https://openalex.org/A5120274850 |
| authorships[0].author.orcid | |
| authorships[0].author.display_name | Shaolun Liu |
| authorships[0].author_position | first |
| authorships[0].raw_author_name | Liu, Shaolun |
| authorships[0].is_corresponding | False |
| authorships[1].author.id | https://openalex.org/A5120274851 |
| authorships[1].author.orcid | |
| authorships[1].author.display_name | Sina Marefat |
| authorships[1].author_position | middle |
| authorships[1].raw_author_name | Marefat, Sina |
| authorships[1].is_corresponding | False |
| authorships[2].author.id | https://openalex.org/A5107853602 |
| authorships[2].author.orcid | https://orcid.org/0000-0002-6335-3335 |
| authorships[2].author.display_name | O. D. Tsai |
| authorships[2].author_position | middle |
| authorships[2].raw_author_name | Tsai, Omar |
| authorships[2].is_corresponding | False |
| authorships[3].author.id | https://openalex.org/A5120274852 |
| authorships[3].author.orcid | |
| authorships[3].author.display_name | Yu Chen |
| authorships[3].author_position | middle |
| authorships[3].raw_author_name | Chen, Yu |
| authorships[3].is_corresponding | False |
| authorships[4].author.id | https://openalex.org/A5120274853 |
| authorships[4].author.orcid | |
| authorships[4].author.display_name | Zecheng Deng |
| authorships[4].author_position | middle |
| authorships[4].raw_author_name | Deng, Zecheng |
| authorships[4].is_corresponding | False |
| authorships[5].author.id | https://openalex.org/A5100424784 |
| authorships[5].author.orcid | https://orcid.org/0000-0002-1116-4559 |
| authorships[5].author.display_name | Jianwei Wang |
| authorships[5].author_position | middle |
| authorships[5].raw_author_name | Wang, Jia |
| authorships[5].is_corresponding | False |
| authorships[6].author.id | https://openalex.org/A5120274854 |
| authorships[6].author.orcid | |
| authorships[6].author.display_name | Mohammad A. Tayebi |
| authorships[6].author_position | last |
| authorships[6].raw_author_name | Tayebi, Mohammad A. |
| authorships[6].is_corresponding | False |
| has_content.pdf | False |
| has_content.grobid_xml | False |
| is_paratext | False |
| open_access.is_oa | True |
| open_access.oa_url | https://arxiv.org/pdf/2510.10407 |
| open_access.oa_status | green |
| open_access.any_repository_has_fulltext | False |
| created_date | 2025-10-15T00:00:00 |
| display_name | PrediQL: Automated Testing of GraphQL APIs with LLMs |
| has_fulltext | False |
| is_retracted | False |
| updated_date | 2025-11-07T23:20:04.922697 |
| primary_topic | |
| cited_by_count | 0 |
| locations_count | 2 |
| best_oa_location.id | pmh:oai:arXiv.org:2510.10407 |
| best_oa_location.is_oa | True |
| best_oa_location.source.id | https://openalex.org/S4306400194 |
| best_oa_location.source.issn | |
| best_oa_location.source.type | repository |
| best_oa_location.source.is_oa | True |
| best_oa_location.source.issn_l | |
| best_oa_location.source.is_core | False |
| best_oa_location.source.is_in_doaj | False |
| best_oa_location.source.display_name | arXiv (Cornell University) |
| best_oa_location.source.host_organization | https://openalex.org/I205783295 |
| best_oa_location.source.host_organization_name | Cornell University |
| best_oa_location.source.host_organization_lineage | https://openalex.org/I205783295 |
| best_oa_location.license | |
| best_oa_location.pdf_url | https://arxiv.org/pdf/2510.10407 |
| best_oa_location.version | submittedVersion |
| best_oa_location.raw_type | text |
| best_oa_location.license_id | |
| best_oa_location.is_accepted | False |
| best_oa_location.is_published | False |
| best_oa_location.raw_source_name | |
| best_oa_location.landing_page_url | http://arxiv.org/abs/2510.10407 |
| primary_location.id | pmh:oai:arXiv.org:2510.10407 |
| primary_location.is_oa | True |
| primary_location.source.id | https://openalex.org/S4306400194 |
| primary_location.source.issn | |
| primary_location.source.type | repository |
| primary_location.source.is_oa | True |
| primary_location.source.issn_l | |
| primary_location.source.is_core | False |
| primary_location.source.is_in_doaj | False |
| primary_location.source.display_name | arXiv (Cornell University) |
| primary_location.source.host_organization | https://openalex.org/I205783295 |
| primary_location.source.host_organization_name | Cornell University |
| primary_location.source.host_organization_lineage | https://openalex.org/I205783295 |
| primary_location.license | |
| primary_location.pdf_url | https://arxiv.org/pdf/2510.10407 |
| primary_location.version | submittedVersion |
| primary_location.raw_type | text |
| primary_location.license_id | |
| primary_location.is_accepted | False |
| primary_location.is_published | False |
| primary_location.raw_source_name | |
| primary_location.landing_page_url | http://arxiv.org/abs/2510.10407 |
| publication_date | 2025-10-12 |
| publication_year | 2025 |
| referenced_works_count | 0 |
| abstract_inverted_index.a | 83, 125 |
| abstract_inverted_index.It | 75 |
| abstract_inverted_index.To | 98 |
| abstract_inverted_index.We | 47 |
| abstract_inverted_index.as | 82, 148 |
| abstract_inverted_index.of | 42, 79, 89, 95 |
| abstract_inverted_index.on | 27 |
| abstract_inverted_index.or | 31 |
| abstract_inverted_index.to | 10, 17, 36, 38, 68, 133, 144, 176, 197 |
| abstract_inverted_index.API | 191 |
| abstract_inverted_index.LLM | 131 |
| abstract_inverted_index.Our | 156 |
| abstract_inverted_index.and | 4, 45, 72, 103, 109, 114, 141, 153, 160, 171 |
| abstract_inverted_index.are | 15 |
| abstract_inverted_index.can | 189 |
| abstract_inverted_index.for | 55 |
| abstract_inverted_index.new | 90 |
| abstract_inverted_index.the | 39, 50, 77 |
| abstract_inverted_index.APIs | 9, 163 |
| abstract_inverted_index.data | 6, 137 |
| abstract_inverted_index.from | 194 |
| abstract_inverted_index.past | 96 |
| abstract_inverted_index.rely | 26 |
| abstract_inverted_index.such | 147 |
| abstract_inverted_index.test | 118 |
| abstract_inverted_index.that | 14, 129, 165, 182 |
| abstract_inverted_index.uses | 130 |
| abstract_inverted_index.with | 64, 93, 186 |
| abstract_inverted_index.APIs. | 57 |
| abstract_inverted_index.These | 179 |
| abstract_inverted_index.adapt | 37 |
| abstract_inverted_index.codes | 143 |
| abstract_inverted_index.error | 139 |
| abstract_inverted_index.first | 51 |
| abstract_inverted_index.input | 121 |
| abstract_inverted_index.large | 60 |
| abstract_inverted_index.loops | 67 |
| abstract_inverted_index.model | 3, 62 |
| abstract_inverted_index.prior | 110 |
| abstract_inverted_index.query | 2, 91 |
| abstract_inverted_index.rates | 174 |
| abstract_inverted_index.rigid | 32 |
| abstract_inverted_index.shows | 164 |
| abstract_inverted_index.using | 19 |
| abstract_inverted_index.valid | 71 |
| abstract_inverted_index.Beyond | 120 |
| abstract_inverted_index.across | 117, 158 |
| abstract_inverted_index.bandit | 85 |
| abstract_inverted_index.choice | 78 |
| abstract_inverted_index.either | 25 |
| abstract_inverted_index.expose | 8 |
| abstract_inverted_index.flaws, | 150 |
| abstract_inverted_index.fuzzer | 54 |
| abstract_inverted_index.higher | 169 |
| abstract_inverted_index.issues | 146 |
| abstract_inverted_index.models | 76 |
| abstract_inverted_index.nested | 5 |
| abstract_inverted_index.random | 28 |
| abstract_inverted_index.reuses | 104 |
| abstract_inverted_index.schema | 107 |
| abstract_inverted_index.status | 142 |
| abstract_inverted_index.tools. | 22 |
| abstract_inverted_index.GraphQL | 43, 56, 162 |
| abstract_inverted_index.PrediQL | 58, 101, 123, 166 |
| abstract_inverted_index.analyze | 134 |
| abstract_inverted_index.diverse | 73 |
| abstract_inverted_index.dynamic | 40 |
| abstract_inverted_index.enhance | 99 |
| abstract_inverted_index.errors, | 111 |
| abstract_inverted_index.failing | 35 |
| abstract_inverted_index.fuzzers | 24 |
| abstract_inverted_index.fuzzing | 80, 188 |
| abstract_inverted_index.payload | 29 |
| abstract_inverted_index.present | 48 |
| abstract_inverted_index.results | 180 |
| abstract_inverted_index.schemas | 44 |
| abstract_inverted_index.testing | 21, 193 |
| abstract_inverted_index.traces, | 106 |
| abstract_inverted_index.uncover | 18 |
| abstract_inverted_index.values, | 138 |
| abstract_inverted_index.Existing | 23 |
| abstract_inverted_index.PrediQL, | 49 |
| abstract_inverted_index.achieves | 167 |
| abstract_inverted_index.adaptive | 65, 187 |
| abstract_inverted_index.combines | 59 |
| abstract_inverted_index.compared | 175 |
| abstract_inverted_index.complex, | 11 |
| abstract_inverted_index.coverage | 170 |
| abstract_inverted_index.detector | 128 |
| abstract_inverted_index.enabling | 112 |
| abstract_inverted_index.feedback | 66 |
| abstract_inverted_index.flexible | 1 |
| abstract_inverted_index.generate | 69 |
| abstract_inverted_index.identify | 145 |
| abstract_inverted_index.language | 61 |
| abstract_inverted_index.learning | 116 |
| abstract_inverted_index.mutation | 33 |
| abstract_inverted_index.problem, | 86 |
| abstract_inverted_index.queries. | 74 |
| abstract_inverted_index.reactive | 195 |
| abstract_inverted_index.security | 192 |
| abstract_inverted_index.strategy | 81 |
| abstract_inverted_index.GraphQL's | 0 |
| abstract_inverted_index.balancing | 87 |
| abstract_inverted_index.benchmark | 161 |
| abstract_inverted_index.bypasses, | 152 |
| abstract_inverted_index.combining | 183 |
| abstract_inverted_index.difficult | 16 |
| abstract_inverted_index.discovery | 173 |
| abstract_inverted_index.execution | 105 |
| abstract_inverted_index.injection | 149 |
| abstract_inverted_index.messages, | 140 |
| abstract_inverted_index.reasoning | 63, 132, 185 |
| abstract_inverted_index.retrieves | 102 |
| abstract_inverted_index.transform | 190 |
| abstract_inverted_index.LLM-guided | 53 |
| abstract_inverted_index.baselines. | 178 |
| abstract_inverted_index.evaluation | 157 |
| abstract_inverted_index.fragments, | 108 |
| abstract_inverted_index.generation | 30 |
| abstract_inverted_index.integrates | 124 |
| abstract_inverted_index.responses, | 135 |
| abstract_inverted_index.responses. | 46 |
| abstract_inverted_index.structures | 41, 92 |
| abstract_inverted_index.successes. | 97 |
| abstract_inverted_index.demonstrate | 181 |
| abstract_inverted_index.disclosure. | 155 |
| abstract_inverted_index.efficiency, | 100 |
| abstract_inverted_index.enumeration | 196 |
| abstract_inverted_index.exploration | 88 |
| abstract_inverted_index.generation, | 122 |
| abstract_inverted_index.heuristics, | 34 |
| abstract_inverted_index.information | 154 |
| abstract_inverted_index.intelligent | 198 |
| abstract_inverted_index.iterations. | 119 |
| abstract_inverted_index.multi-armed | 84 |
| abstract_inverted_index.open-source | 159 |
| abstract_inverted_index.progressive | 115 |
| abstract_inverted_index.conventional | 20 |
| abstract_inverted_index.dependencies | 7 |
| abstract_inverted_index.exploitation | 94 |
| abstract_inverted_index.exploration. | 199 |
| abstract_inverted_index.interpreting | 136 |
| abstract_inverted_index.semantically | 70 |
| abstract_inverted_index.context-aware | 126 |
| abstract_inverted_index.significantly | 168 |
| abstract_inverted_index.vulnerability | 127, 172 |
| abstract_inverted_index.access-control | 151 |
| abstract_inverted_index.self-correction | 113 |
| abstract_inverted_index.vulnerabilities | 13 |
| abstract_inverted_index.state-of-the-art | 177 |
| abstract_inverted_index.context-dependent | 12 |
| abstract_inverted_index.retrieval-augmented | 184 |
| abstract_inverted_index.retrieval-augmented, | 52 |
| cited_by_percentile_year | |
| countries_distinct_count | 0 |
| institutions_distinct_count | 7 |
| citation_normalized_percentile |