Data behind every request
Every API request carries an identifier or an access token, and any gap in checking them can let one user read or change another user's data.
We test the REST and GraphQL APIs your applications and partners depend on by hand, the way a real attacker would. Every finding we approve is verified and reproduced step by step before delivery.
APIs are the direct route to your data and your systems' functions, and your web apps, mobile apps and partner integrations all depend on them. A single authorization flaw can expose every customer's data without ever showing in the user interface.
Every API request carries an identifier or an access token, and any gap in checking them can let one user read or change another user's data.
New endpoints and versions are added all the time, and old or undocumented versions sometimes stay exposed to the internet without anyone noticing.
We document the penetration test report in line with the NCA Essential Cybersecurity Controls (ECC) and the SAMA Cyber Security Framework (CSF), to help you evidence that penetration-testing requirements are met.
Authorization flaws between users and roles, and business-logic flaws in the order of requests, are not caught by automated scans; a human tester who understands how your API is used finds them.
We cover the OWASP API Security Top 10 categories and beyond, with checks on every endpoint and every role, for REST and GraphQL APIs, including mobile backends and partner APIs.
We verify that every request returns only its owner's data, testing whether another user's orders, invoices or files can be reached by changing the identifier in the path, parameters or request body.
We review how JWTs are issued and how their signature and expiry are checked, OAuth flows, and how API keys are protected, looking for tokens that stay valid after logout or a password change, or that work outside the purpose they were issued for.
We test whether a regular user can call administrative endpoints or functions meant for a higher role, such as deleting users, changing settings or exporting data.
We check that the API does not accept changes to protected fields sent in a request, such as role, balance or account status (mass assignment), and does not return sensitive fields the calling application never needs.
We review limits on request rate, size and page size, looking for paths that allow guessing tokens or passwords or consuming server resources without bound, always within the limits agreed in the rules of engagement.
We test parameters that reach the database or backend systems for injection flaws, including data the API receives from third-party APIs it consumes, and fields that accept URLs, such as webhooks and file imports, to make sure the server cannot be made to request internal resources (SSRF).
We review CORS settings, allowed HTTP methods, error messages that reveal technical internals, security headers, and documentation or debug endpoints exposed by mistake.
We test schema exposure through introspection, authorization on every field and every operation (queries and mutations), and deeply nested queries and batched requests that can bypass usage limits.
Within the agreed scope, we look for old versions, undocumented endpoints and test environments that are still running, as they are often less protected than the current version.
We test the order of operations in the API, such as purchases, transfers and refunds, looking for skipped mandatory steps, repeated operations and race conditions when requests are sent at the same time.
Reliant is a Saudi penetration-testing-as-a-service (PTaaS) platform based in Riyadh and licensed by the National Cybersecurity Authority. The researcher starts by understanding your API: its endpoints, its roles, and the data each user owns. They then test it by hand with a real attacker's mindset, guided by the OWASP API Security Top 10, the OWASP Top 10 and PTES, and chain small flaws into exploitation paths that show their real business impact. We document the report in line with NCA ECC and SAMA CSF, and every finding is reviewed, verified and reproduced before delivery.
Share your requirements or book a 30-minute consultation with a lead penetration tester to define the target APIs, their versions and their user roles.
Your company creates a program on the platform that sets in-scope and out-of-scope assets, rules of engagement (testing windows, forbidden techniques such as DoS, rate limits, escalation channels), and a suggested budget.
Reliant reviews the scope and agrees the budget with you, and you prepare the API documentation, if any, and test accounts for each role. The program runs under Reliant's standard Engagement Agreement or your own contract once we accept it, and an NDA is signed before any testing starts.
The assigned researchers start testing and Reliant triages every submission. Any approved Critical or High finding can be sent to you immediately, ahead of the report.
We deliver the report with every approved finding, you discuss each finding with us in the comments, and we may ask for your view on some of them through Company review.
After fixing, you request a free retest while the program is in its report or retest stage, and the result reaches you as soon as the check is done.
You pay only if Reliant confirms at least one Critical or High finding; the fee is then the program's agreed budget, one amount for the whole engagement, and the invoice is issued automatically with the report. The budget depends on scope size (how many APIs and endpoints), testing depth and timeline, and there is no minimum engagement: a single API on a small scope is priced the same way.
Share your requirements or book a 30-minute consultation with a lead penetration tester.