Skip to content

FirstMile Label Server REST API (1.0)

The FirstMile Label Server REST API provides endpoints for label creation, rate shopping, meter management, and manifesting shipments. This API replaces the legacy SOAP interface. All endpoints, request/response models, and business logic are documented here, with migration notes for users transitioning from SOAP.

Authentication

The API uses OAuth 2.0 Bearer token authentication with policy-based authorization:

  • Label operations require 'fm.external.rest.labelserver.label' scope
  • Rate operations require 'fm.external.rest.labelserver.rate' scope
  • Meter operations require 'fm.external.rest.labelserver.meter' scope

The API validates claims including 'fm.api.companyId' (IFS ID) and 'fm.api.techPartnerId'.

Migration Notes

  • All SOAP methods are now available as REST endpoints
  • Request and response models are mapped to OpenAPI schemas
  • See the migration guide for detailed mapping and examples
Download OpenAPI description
Languages
Servers
Mock server

https://developer.fastgroup.co/_mock/xmethod/label/rest/swagger/

Test server

https://labelserver-test.firstmile.com/

Production server

https://labelserver.firstmile.com/

Operations
Operations

Get details of the meter with the specified id

Request

Attempts to get details of the meter with the specified id.

SOAP Equivalent: GetMeterBalance

Migration Note: The id and techPartnerId parameters replace the SOAP request object's fields.

Security
OAuth2
Path
idstringrequired

Meter ID

techPartnerIdstringrequired

Tech partner identifier

curl -i -X GET \
  'https://developer.fastgroup.co/_mock/xmethod/label/rest/swagger/api/v1/meter/{id}/{techPartnerId}' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

OK - Meter balance retrieved

Bodyapplication/json
requestIdstring or null

The Id passed in the request, echoed back

errorsArray of strings or null

A list of errors, if any

warningsArray of strings or null

Warning information. These are for information purposes only, they are not errors.

metersArray of objects(MeterInfo)

List of available meters

Default []
Response
application/json
{ "requestId": "string", "errors": [ "string" ], "warnings": [ "string" ], "meters": [] }

Request

Gets all available meters for the authenticated account.

SOAP Equivalent: GetMeters

Migration Note: The techPartnerId parameter is required.

Security
OAuth2
Path
techPartnerIdstringrequired

Tech partner identifier

curl -i -X GET \
  'https://developer.fastgroup.co/_mock/xmethod/label/rest/swagger/api/v1/meter/{techPartnerId}' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

OK - Meters retrieved successfully

Bodyapplication/json
requestIdstring or null

The Id passed in the request, echoed back

errorsArray of strings or null

A list of errors, if any

warningsArray of strings or null

Warning information. These are for information purposes only, they are not errors.

metersArray of objects(MeterInfo)

List of available meters

Default []
Response
application/json
{ "requestId": "string", "errors": [ "string" ], "warnings": [ "string" ], "meters": [] }

Request

Attempts to add funds to a meter.

SOAP Equivalent: AddFundsToMeter

Migration Note: The request body maps to AddFundsRequest.

Security
OAuth2
Bodyapplication/jsonrequired

Add funds request

techPartnerIdstringrequired

Tech partner identifier (required)

meterIdstring or null

Target meter ID

amountnumber(double)

Amount to add

transactionReferencestring or null

Transaction reference for tracking

curl -i -X POST \
  https://developer.fastgroup.co/_mock/xmethod/label/rest/swagger/api/v1/meter/addfunds \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "techPartnerId": "string",
    "meterId": "string",
    "amount": 0.1,
    "transactionReference": "string"
  }'

Responses

OK - Funds added successfully

Bodyapplication/json
requestIdstring or null

The Id passed in the request, echoed back

errorsArray of strings or null

A list of errors, if any

meterobject(MeterInfo)

Meter information. (SOAP: MeterInfo)

transactionIdstring or null

Transaction identifier

feesArray of objects or null(Fee)
successfulboolean

Indicates if funds were added successfully

Response
application/json
{ "requestId": "string", "errors": [ "string" ], "meter": { "currentBalance": 0, "oldBalance": 0, "pendingFunds": 0, "carrier": "string", "meterId": "string" }, "transactionId": "string", "fees": [ {} ], "successful": true }
Operations