canonical: https://jentic.com/apis/lumen.com/lumen-version-2-voice-li-els

# Lumen Version 2 Voice LI-ELS

The Lumen Version 2 Voice LI-ELS API validates a service address against Lumen systems and returns it in USPS fielded format, the address check that precedes ordering Lumen voice numbers. A single operation takes the street number, directionals, street name and suffix, city, state, zip code, and country, and responds with the standardised fields or an errorMessage. Calls use an OAuth 2.0 client-credentials token and carry the customer's Lumen BusOrg ID in the x-customer-number header; the spec's server is Lumen's test environment.

## For AI agents

Validate a US service address against Lumen systems and get it back in USPS fielded format before ordering voice numbers. Uses OAuth2 client credentials and an x-customer-number header.

## Scope

Does not order, port, or disconnect telephone numbers, and does not geocode addresses. Use for validating service addresses against Lumen systems only.

## Capabilities

- Validate a service address against Lumen systems via POST `/Voice/v1/Numbers/serviceAddress`
- Return the address split into USPS fielded format: streetNumber, preDirectional, streetName, streetSuffix, city, state, and zipCode
- Normalise directionals to values such as N, NE, E, or SW and states to two-letter codes
- Surface an errorMessage when Lumen cannot validate the address, before an order is attempted

## Use cases

### Address check by a provisioning agent through Jentic

Before a provisioning agent orders voice numbers, it confirms the customer's site address with Lumen. It searches Jentic for 'validate a Lumen service address', receives POST `/Voice/v1/Numbers/serviceAddress` with its fielded address schema, and passes the standardised result on to the ordering step, stopping early if Lumen returns an errorMessage.

Example prompt: Call POST `/Voice/v1/Numbers/serviceAddress` with streetNumber 200, preDirectional E, streetName COLFAX, streetSuffix AVE, city DENVER, state CO, zipCode 80203, country US, and report the returned address or errorMessage

### Order form address clean-up

A sales or onboarding form collects a free-form address. Sending its parts to the Lumen validation operation returns the address split into USPS fields, with directionals and the state code normalised, so downstream Lumen voice orders carry an address Lumen already accepts.

Example prompt: Call POST `/Voice/v1/Numbers/serviceAddress` with the address parts from the form and write the returned streetNumber, streetName, streetSuffix, city, state, and zipCode back to the order record

### Bulk site list verification

When a business moves several offices onto Lumen voice service, checking each site address first catches the ones Lumen cannot place. Running each address through the validation operation in turn yields a list of accepted addresses and those with an errorMessage to fix before ordering.

Example prompt: For each office address in the list, call POST `/Voice/v1/Numbers/serviceAddress` and produce a table of addresses that validated and those that returned an errorMessage

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/Voice/v1/Numbers/serviceAddress` | Validate a service address |

## Key resources

- **Service address** — A US address validated against Lumen systems and returned in USPS fielded format

## 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:** 76 / 100
- **Maturity:** AI-Ready
- **Dimensions:**
  - Foundational Compliance: 100 / 100
  - Developer Experience & Jentic Compatibility: 74 / 100
  - AI-Readiness & Agent Experience: 60 / 100
  - Agent Usability: 94 / 100
  - Security: 85 / 100
  - AI Discoverability: 63 / 100
- **View full report:** https://jentic.com/apis/lumen.com/lumen-version-2-voice-li-els/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 Lumen API by hand means running the OAuth2 client-credentials exchange, sending your BusOrg in the x-customer-number header, and mapping addresses into USPS fields with enumerated directionals and state codes. Through Jentic you install once, import it from the API Directory, store your client credentials once, and your agent calls it.
- **Permission scoping:** The address travels in the request body, so rules bound which operations your agent may call, not which address. With a single operation here, allowing it gives the agent address validation and nothing else.
- **Credential handling:** Your Lumen client credentials are stored once, encrypted, by your own Jentic One instance and injected at execution time. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'validate a Lumen service address', and Jentic returns POST `/Voice/v1/Numbers/serviceAddress` with its input schema, including the directional and state enums, so the agent sends a well-formed request without reading the developer portal.

## Related APIs

- **Lumen Voice LI-ELS** — Lumen number reservation, coverage checks, porting, and order tracking
- **Smarty US ZIP Code API** — US city, state, and ZIP code lookup and validation
- **Telnyx API** — Number ordering, porting, and programmable voice

## FAQ

### What authentication does the Lumen Version 2 Voice LI-ELS API use?

Per its OpenAPI spec, it uses OAuth2 with the client credentials flow, with a token URL of `/oauth/token` on Lumen's test host. The request also carries the required x-customer-number header, your Lumen-defined customer ID, also known as the BusOrg number. Through Jentic, your client credentials are stored encrypted by your own Jentic One instance and the token is attached at execution time.

### What does the Lumen address validation return?

POST `/Voice/v1/Numbers/serviceAddress` returns the service address in USPS fielded format: streetNumber, streetNumberSuffix, preDirectional, streetName, postDirectional, streetSuffix, city, state, and zipCode. When Lumen cannot validate the address, the response carries an errorMessage.

### What are the rate limits for the Lumen Version 2 Voice LI-ELS API?

The OpenAPI spec does not specify rate limits. Check https://developer.lumen.com/contact-us/ for current limits on your account.

### How do I validate a service address with Lumen through Jentic?

Install Jentic One, add the Lumen Version 2 Voice LI-ELS API from the Jentic directory, and store your OAuth2 client credentials. Your agent searches for 'validate a Lumen service address', receives POST `/Voice/v1/Numbers/serviceAddress` with its address schema, and sends the address parts. To run it on your own infrastructure, install Jentic One from its GitHub repo.

### Is there a Lumen address validation MCP server?

You don't need an MCP server to give your agent this Lumen API. Jentic connects it directly from the API Directory: import it, store your credential once, and your agent calls the address validation operation by intent.

### Can I limit what my agent is allowed to do with the Lumen Version 2 Voice LI-ELS API?

Yes. This spec exposes only the address validation operation, so a rule allowing POST `/Voice/v1/Numbers/serviceAddress` gives the agent exactly that and nothing more. If you also import Lumen's ordering API, keep its ordering and disconnect operations out of the same rule, and the agent's calls are logged for review.
