Developers

GET/v3/lnp/project/{uniqueid}

Read a porting project

Read project, number, history and document metadata in one private account response.

On this page
  1. Account and project access
  2. Request
  3. Handle this response as confidential
  4. Response structure
  5. Interpret the summary and metadata
  6. Errors and limits
  7. Effects and workflow

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.

Project detail sections
SectionContents
projectNumeric 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.
countsTotal number rows and Pending, In Progress, Completed and Rejected counters.
numbersThe same number projection as the project number-list endpoint, including customer comments and stored scheduling values.
eventsStored event rows and raw/parsed payload fields, subject to the event endpoint’s visibility and format limits.
uploadsDocument 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.