canonical: https://jentic.com/apis/ooredoo.com/ooredoo

# Ooredoo Customer Management

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.

## For AI agents

Check an Ooredoo mobile number's line type (Prepaid, Postpaid, or Hybrid), Active or Inactive status, and eligibility flag by MSISDN.

## Scope

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.

## Capabilities

- 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

## Use cases

### 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.

Example prompt: 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.

Example prompt: 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.

Example prompt: For each MSISDN in a list, call GET `/customerDetails/{msisdn}` with the same countryCode and keep only numbers whose status is Active

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/customerDetails/{msisdn}` | Retrieve line type, status, and eligibility for an MSISDN |

## Key resources

- **Customer details** — Per-MSISDN record with @type (Prepaid, Postpaid, Hybrid), status (Active, Inactive), and eligibility

## AI readiness

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.

- **Score:** 0 / 100
- **Maturity:** Non-Ready
- **Dimensions:**
  - Foundational Compliance: 100 / 100
  - Developer Experience & Jentic Compatibility: 60 / 100
  - AI-Readiness & Agent Experience: 52 / 100
  - Agent Usability: 94 / 100
  - Security: 85 / 100
  - AI Discoverability: 0 / 100
- **View full report:** https://jentic.com/apis/ooredoo.com/ooredoo/scorecard
- **How the score is calculated:** https://docs.jentic.com/reference/api-readiness-framework/overview/
- **More about the dimensions:** https://docs.jentic.com/reference/api-readiness-framework/specification/#dimensional-model-overview

### Score it yourself

Every API in the directory is allowlisted, so you can re-score it with no key required.

- **Score your own API:** https://jentic.com/scorecard.md
- **Scoring CLI agent skill:** https://github.com/jentic/jentic-api-scorecard/blob/main/skills/jentic-api-scorecard/SKILL.md

```sh
npx @jentic/api-scorecard-cli score <openapi-url>
```

## Why Jentic

- **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 handling:** 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.
- **Discovery method:** 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.

## Related APIs

- **Twilio - Lookups** — Carrier and line type intelligence for phone numbers across many networks
- **numverify API** — Global phone number validation with carrier and line type
- **Twilio - Messaging** — Send SMS to numbers once they have been checked

## FAQ

### 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.
