Account and project access
Use an enabled API account over HTTPS from an allowed IP address. The project must belong to that account and must not be deleted. Use the project’s unique ID from the port-order workflow, not its numeric database ID or a phone number. URL-encode the project ID when building a request.
Request
curl --silent --show-error --user "$API_USER:$API_PASSWORD" \
"https://api.multitel.net/v3/lnp/project/$PROJECT_ID"Handle this response as confidential
The full response includes losing-carrier billing information, including the stored billing_pin, billing account, phone, address, company and authorized-contact details. The API does not mask these fields. Request only the status or number list when that is all your workflow needs. Keep the full detail response out of browser storage, analytics, public logs and support screenshots, and expose only the fields an authorized customer needs.
Response structure
Fictional selected-field example; additional fields may be returned.
{
"status": {
"code": 200,
"msg": "Project Detail"
},
"response": {
"project": {
"id": 11,
"uniqueid": "PROJECT_EXAMPLE",
"project_name": "Example transfer",
"location": "US",
"status": 0,
"status_str": "Pending"
},
"counts": {
"total": 0,
"pending": 0,
"in_progress": 0,
"completed": 0,
"rejected": 0
},
"numbers": [],
"events": [],
"uploads": []
}
}This deliberately partial example leaves out all billing credentials and personal contact values. Their omission from the example does not mean the real response redacts them.
| Section | Contents |
|---|---|
| project | Numeric row ID, unique project ID, project name, location, stored billing/contact/address data, creation time and derived status. The legacy losing-carrier field is spelled loosing_carrier. |
| counts | Total number rows and Pending, In Progress, Completed and Rejected counters. |
| numbers | The same number projection as the project number-list endpoint, including customer comments and stored scheduling values. |
| events | Stored event rows and raw/parsed payload fields, subject to the event endpoint’s visibility and format limits. |
| uploads | Document metadata: numeric ID, upload_type, file_name, file_extension, date_created and a relative download_url. The URL still requires account authentication. |
Interpret the summary and metadata
The derived status prioritizes In Progress, then Pending, then Completed, then Rejected, with Pending as the fallback. A Completed summary can coexist with rejected numbers. Inspect counters and number statuses rather than assuming every number completed.
The response contains document metadata, not file bytes. It has no pagination or incremental cursor. The detail and list queries are separate reads, not one guaranteed transactionally consistent snapshot. Dates remain stored values without a documented timezone conversion. Use uniqueid for project routes; the numeric project ID is not interchangeable.
Errors and limits
Check both the HTTP response and status.code/status.msg. A missing, deleted or unowned project returns API code 404 with a project-not-found message. Authentication and source-IP restrictions also apply. The examples do not make a live request, and a successful response is not proof that a carrier has accepted or completed a transfer.
Effects and workflow
This is the canonical detail route used by the current portal’s port-order view. The portal maps fields for its UI and applies its own customer projection; do not assume the raw API response is identical to the portal’s JSON or presentation. The reviewed detail handler does not mutate the project or directly initiate a carrier request or charge.