Install Jentic One Beta
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the Customer Management, or any other public or private API you need. You set the rules, the agent never sees your credentials, and every call is logged.
Two steps, two machines. Install the instance in a safe environment, then register your agent from wherever it runs.
Step 1: Jentic One Host machine
# On the machine that will host your Jentic One instance:
curl -fsSL "https://jentic.com/install.sh?src=apis&api=%2Fapis%2Fooredoo.com%2Fooredoo" | shStep 2: Agent machine
# On the machine where your agent runs (keep this separate from the instance):
curl -fsSL "https://jentic.com/install.sh?src=apis&api=%2Fapis%2Fooredoo.com%2Fooredoo" | sh
jentic register # connects your agent to your Jentic One instanceJentic One is in public beta. The setup above keeps your agent separate from the instance, which is what you want before using real credentials: an agent running as the same OS user as Jentic One can read its stored keys directly. Just evaluating? A single local install is fine to start. See the secure deployment guide for the tiers.
What an agent can do with Customer Management API.
Look up an Ooredoo MSISDN and return whether the line is Prepaid, Postpaid, or Hybrid
Check whether an Ooredoo mobile number is Active or Inactive before acting on it
Read the boolean eligibility flag Ooredoo returns for a subscriber number
Route a lookup to the right Ooredoo operating country with the countryCode header
Patterns agents use Customer Management API for, with concrete tasks.
GET STARTED
★ AI agent checking a subscriber before an action
An AI support or sales agent working through Jentic searches for 'check an Ooredoo number's status', loads the retrieveCustomer operation, and calls it with the customer's MSISDN and country. The OAuth client-credentials token is obtained and injected by your own Jentic One instance, so the agent learns whether the line is Active and eligible without ever holding the client secret.
Call GET /customerDetails/{msisdn} for msisdn 9612198 with countryCode MDV and a fresh transactionId, then report the returned @type, status, and eligibility
Prepaid versus postpaid offer targeting
Telecom offers often differ for prepaid and postpaid customers. Before presenting a plan change, an application can look up the number and read the @type value, which the spec defines as Prepaid, Postpaid, or Hybrid, and pick the matching offer. The lookup is read-only, so it never changes the subscriber's account.
Look up GET /customerDetails/{msisdn} and choose the postpaid offer when @type is Postpaid, the prepaid offer when it is Prepaid
Filtering inactive numbers from a contact list
A campaign list can contain numbers that have since been disconnected. Checking each MSISDN's status, which the spec defines as Active or Inactive, lets a workflow skip inactive lines before any message is sent, keeping outreach to numbers that can still receive it.
For each MSISDN in a list, call GET /customerDetails/{msisdn} with the same countryCode and keep only numbers whose status is Active
1 endpoints — the ooredoo customer management api looks up a mobile number (msisdn) on the ooredoo network and returns its line type, status, and eligibility.
METHOD
PATH
DESCRIPTION
/customerDetails/{msisdn}
Retrieve line type, status, and eligibility for an MSISDN
/customerDetails/{msisdn}
Retrieve line type, status, and eligibility for an MSISDN
What agents get from Jentic-routed access to this vendor.
Setup
Wiring this API by hand means running the OAuth 2.0 client-credentials exchange against Ooredoo's token endpoint, refreshing the token, and generating a transactionId and countryCode header on every call. Through Jentic you install once, import it from the API Directory, store the client credentials once, and your agent calls it.
Permission scoping
The API exposes one read operation and puts the MSISDN in the URL path (/customerDetails/{msisdn}), so a rule can bound your agent to that lookup and, if needed, to specific numbers. You choose which operations it may call, so nothing beyond the lookup is reachable unless you add it.
Credential isolation
Your Ooredoo client credentials are stored once, encrypted, by your own Jentic One instance, which obtains the access token and injects it at execution time. They never enter the agent's prompt, logs, or context.
Intent-based discovery
Agents search Jentic by intent such as 'check whether a mobile number is active', and Jentic returns the Ooredoo retrieveCustomer operation with its input schema, including the msisdn path parameter and the required headers, so the agent calls it correctly.
Alternatives and complements available in the Jentic catalogue.
Specific to using Customer Management API through Jentic.
What authentication does the Ooredoo Customer Management API use?
The OpenAPI spec declares OAuth 2.0 with the client-credentials flow, with tokens issued from Ooredoo's /tmf-api/oauth/v4/token endpoint, and applies it to the lookup operation. Each request must also send two required headers, transactionId (a unique id you generate) and countryCode (the country the number belongs to, such as MDV). Through Jentic the client credentials are held by your own instance, which fetches the token and attaches it at call time.
What does the Ooredoo Customer Management API return for a number?
GET /customerDetails/{msisdn} returns three fields: @type, which the spec defines as Prepaid, Postpaid, or Hybrid; status, either Active or Inactive; and a boolean eligibility flag. Error responses carry a code and reason, with optional message and referenceError fields.
What are the rate limits for the Ooredoo Customer Management API?
The OpenAPI spec does not specify rate limits. The spec was published on SwaggerHub and points at Ooredoo's staging host, so confirm limits and production access with Ooredoo before relying on it, starting from https://www.ooredoo.com.
Is there an Ooredoo MCP server?
You don't need an MCP server to give your agent the Ooredoo Customer Management API. Jentic connects it directly from the API Directory: import it, store your credential once, and your agent calls the number lookup on demand.
How do I check an Ooredoo number's status through Jentic?
Search Jentic for 'check an Ooredoo number status', load the retrieveCustomer operation, and execute GET /customerDetails/{msisdn} with the number, a countryCode header, and a new transactionId. Read the status and @type fields from the response. To run it on your own infrastructure, install Jentic One from its GitHub repo.
Can I limit what my agent is allowed to do with the Ooredoo Customer Management API?
Yes. Write a rule that allows the GET /customerDetails/{msisdn} lookup and nothing else, and the agent can read line type and status but cannot reach any other Ooredoo operation you have not added. Because the number sits in the path, the rule can also be narrowed to the specific MSISDNs a task needs, and every lookup is logged.
Know of an official OpenAPI document? Contribute it →
For Agents
Check an Ooredoo mobile number's line type (Prepaid, Postpaid, or Hybrid), Active or Inactive status, and eligibility flag by MSISDN.
Use for: Check whether this Ooredoo number is active, I need to know if a customer's line is prepaid or postpaid, Get the eligibility flag for an Ooredoo MSISDN, Retrieve the line type for a mobile number in the Maldives
Not supported: Does not send SMS, change plans, top up credit, or port numbers. Use for reading an Ooredoo MSISDN's line type, status, and eligibility only.
The Ooredoo Customer Management API looks up a mobile number (MSISDN) on the Ooredoo network and returns its line type, status, and eligibility. A single TM Forum style read operation reports whether the number is Prepaid, Postpaid, or Hybrid, whether it is Active or Inactive, and a boolean eligibility flag. Each request names the country the number belongs to and carries a consumer-generated transaction id, and calls are authorised with an OAuth 2.0 client-credentials token. The server declared in the spec is Ooredoo's staging host.
This API is usable in Jentic One now. Its AI-readiness score against Jentic's framework shows where it stands today and where improvements would make it even easier for agents to use.
Base layer of spec validity and structural soundness.
Aggregated quality score from linter diagnostics, weighted by severity.
Percentage of `$ref` references that resolve successfully.
Checks whether the API description parses successfully and conforms to its declared specification (e.g., OpenAPI).
Structural correctness score based on schema issues using logarithmic dampening.
Clarity, completeness, and ingestion readiness for developers and tooling.
How richly the API is illustrated with examples.
Percentage of examples that conform to their schemas.
Percentage of operations with complete response definitions (success, client error, server error).
Health of API ingestion, bundling, and resolution within Jentic pipelines.
Semantic breadth, depth, and agent comprehension for AI systems.
Coverage of descriptions across API elements.
Coverage of RFC 9457 Problem Details for error responses.
Coverage, uniqueness, and casing consistency of operationIds for AI inference.
Coverage of summaries across operations/tags/info.
Functional utility, complexity comfort, and AI orchestration readiness.
Agent comfort level based on API operational and structural complexity.
Trust, risk posture, and security compliance.
Average quality of security schemes based on authentication method strength (weakest link for OAuth2).
Findability, semantic richness, and reasoning readiness.
Clarity and depth of descriptions across API elements.
Score it yourself
Every API in the directory is allowlisted, so you can re-score it with no key required.
npx @jentic/api-scorecard-cli score <openapi-url>