sdksio / usps-apimatic-sdk
APIMatic SDK for USPS API
Requires
- php: ^7.2 || ^8.0
- ext-curl: *
- ext-json: *
- apimatic/core: ~0.3.17
- apimatic/core-interfaces: ~0.1.5
- apimatic/unirest-php: ^4.0.6
Requires (Dev)
- phan/phan: 5.4.5
- squizlabs/php_codesniffer: ^3.5
This package is not auto-updated.
Last update: 2026-04-30 01:50:38 UTC
README
Introduction
Contact Us: USPS API Support | Terms of Service
The Addresses API validates and corrects address information to improve package delivery service and pricing. This suite of APIs provides different utilities for addressing components. The ZIP Code™ lookup finds valid ZIP Code™(s) for a City and State. The City/State lookup provides the valid cities and states for a provided ZIP Code™. The Address Standardization API validates and standardizes USPS® domestic addresses, city and state names, and ZIP Code™ in accordance with USPS® addressing standards. The USPS® address standard includes the ZIP + 4®, signifying a USPS® delivery point, given a street address, a city and a state.
Install the Package
Run the following command to install the package and automatically add the dependency to your composer.json file:
composer require "sdksio/usps-apimatic-sdk:1.0.0"
Or add it to the composer.json file manually as given below:
"require": { "sdksio/usps-apimatic-sdk": "1.0.0" }
You can also view the package at: https://packagist.org/packages/sdksio/usps-apimatic-sdk#1.0.0
Initialize the API Client
Note: Documentation for the client can be found here.
The following parameters are configurable for the API Client:
| Parameter | Type | Description |
|---|---|---|
| environment | Environment |
The API environment. Default: Environment.PRODUCTION |
| timeout | int |
Timeout for API calls in seconds. Default: 30 |
| enableRetries | bool |
Whether to enable retries and backoff feature. Default: false |
| numberOfRetries | int |
The number of retries to make. Default: 0 |
| retryInterval | float |
The retry time interval between the endpoint calls. Default: 1 |
| backOffFactor | float |
Exponential backoff factor to increase interval between retries. Default: 2 |
| maximumRetryWaitTime | int |
The maximum wait time in seconds for overall retrying requests. Default: 0 |
| retryOnTimeout | bool |
Whether to retry on request timeout. Default: true |
| httpStatusCodesToRetry | array |
Http status codes to retry against. Default: 408, 413, 429, 500, 502, 503, 504, 521, 522, 524 |
| httpMethodsToRetry | array |
Http methods to retry against. Default: 'GET', 'PUT' |
| loggingConfiguration | LoggingConfigurationBuilder |
Represents the logging configurations for API calls |
| proxyConfiguration | ProxyConfigurationBuilder |
Represents the proxy configurations for API calls |
| oauthAuthorizationCodeCredentials | OauthAuthorizationCodeCredentials |
The Credentials Setter for OAuth 2 Authorization Code Grant |
| oauthClientCredentialsCredentials | OauthClientCredentialsCredentials |
The Credentials Setter for OAuth 2 Client Credentials Grant |
| basicAuthCredentials | BasicAuthCredentials |
The Credentials Setter for Basic Authentication |
| bearerTokenAuthCredentials | BearerTokenAuthCredentials |
The Credentials Setter for OAuth 2 Bearer token |
The API client can be initialized as follows:
use UspsApiLib\Logging\LoggingConfigurationBuilder; use UspsApiLib\Logging\RequestLoggingConfigurationBuilder; use UspsApiLib\Logging\ResponseLoggingConfigurationBuilder; use Psr\Log\LogLevel; use UspsApiLib\Environment; use UspsApiLib\Authentication\OauthAuthorizationCodeCredentialsBuilder; use UspsApiLib\Models\OauthScopeOauthAuthorizationCode; use UspsApiLib\Authentication\OauthClientCredentialsCredentialsBuilder; use UspsApiLib\Models\OauthScopeOauthClientCredentials; use UspsApiLib\Authentication\BasicAuthCredentialsBuilder; use UspsApiLib\Authentication\BearerTokenAuthCredentialsBuilder; use UspsApiLib\UspsApiClientBuilder; $client = UspsApiClientBuilder::init() ->oauthAuthorizationCodeCredentials( OauthAuthorizationCodeCredentialsBuilder::init( 'OAuthClientId', 'OAuthClientSecret', 'OAuthRedirectUri' ) ->oauthScopes( [ OauthScopeOauthAuthorizationCode::ADDRESSES, OauthScopeOauthAuthorizationCode::ADJUSTMENTS ] ) ) ->oauthClientCredentialsCredentials( OauthClientCredentialsCredentialsBuilder::init( 'OAuthClientId', 'OAuthClientSecret' ) ->oauthScopes( [ OauthScopeOauthClientCredentials::ADDRESSES, OauthScopeOauthClientCredentials::ADJUSTMENTS ] ) ) ->basicAuthCredentials( BasicAuthCredentialsBuilder::init( 'Username', 'Password' ) ) ->bearerTokenAuthCredentials( BearerTokenAuthCredentialsBuilder::init( 'AccessToken' ) ) ->environment(Environment::PRODUCTION) ->loggingConfiguration( LoggingConfigurationBuilder::init() ->level(LogLevel::INFO) ->requestConfiguration(RequestLoggingConfigurationBuilder::init()->body(true)) ->responseConfiguration(ResponseLoggingConfigurationBuilder::init()->headers(true)) ) ->build();
Environments
The SDK can be configured to use a different environment for making API calls. Available environments are:
Fields
| Name | Description |
|---|---|
| PRODUCTION | Default |
| TESTING | - |
Authorization
This API uses the following authentication schemes.
OAuth_authorization_code (OAuth 2 Authorization Code Grant)OAuth_client_credentials (OAuth 2 Client Credentials Grant)BasicAuth (Basic Authentication)BearerTokenAuth (OAuth 2 Bearer token)
List of APIs
SDK Infrastructure
Configuration
- ProxyConfigurationBuilder
- LoggingConfigurationBuilder
- RequestLoggingConfigurationBuilder
- ResponseLoggingConfigurationBuilder