Emerge Authentication API

The Authentication API from Emerge — 3 operation(s) for authentication.

Operations 3

POST /auth/login/client_credentials Gets access token for Integration Provider.
POST /auth/login Gets access token for shipper user.
POST /auth/refresh Gets a refreshed access token for shipper user.

Documentation

Specifications

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/emerge-authentication-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

emerge-authentication-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Emerge Authentication API
  x-refined-note:
  - x-logo differs across the merged source definitions and was not carried
  version: '1.0'
  description: 'Operations tagged Authentication across 2 of this provider''s published API definitions: emerge-carrier-api-openapi.yml, emerge-public-api-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.emergemarket.io/v2
  description: Primary production endpoint
- url: https://demo-api.emergemarket.dev/v2
  description: Testing sandbox endpoint
- url: https://api.emergemarket.io/v1
  description: Primary production endpoint
- url: https://demo-api.emergemarket.dev/v1
  description: Testing sandbox endpoint
tags:
- name: Authentication
paths:
  /auth/login/client_credentials:
    post:
      tags:
      - Authentication
      summary: Gets access token for Integration Provider.
      security: []
      description: This method allows an Integration Provider to generate an access token from Emerge platform. A client credential pair, composed of a client id and a client secret, must be supplied in the request. The procured access token should be sent by the Integration Provider while calling other Carrier API endpoints.
      requestBody:
        description: Request body of an authentication attempt.
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                client_id:
                  description: The identifier provided during onboarding and used for authentication.
                  type: string
                  example: eMF2mQNXue5BXjmUNX1pQ45grwrquuiQ
                client_secret:
                  description: The secret provided during onboarding and used for authentication.
                  type: string
                  example: 1gTmAOzPLqoE5HKxjWgFt8WnAEPu3MQjlNBrR94c1q4o7UTtGgRd1QGwCFzVPsWb
              required:
              - client_id
              - client_secret
      responses:
        '200':
          description: 200 | OK. A JSON object containing the access token and additional information.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/200_client_credential_authentication_response'
        '400':
          description: 400 | Bad Request. A bad request was made. Please try again
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400_badrequest_clientcredentials_response'
        '403':
          $ref: '#/components/responses/403'
    servers:
    - url: https://api.emergemarket.io/v2
      description: Primary production endpoint
    - url: https://demo-api.emergemarket.dev/v2
      description: Testing sandbox endpoint
  /auth/login:
    post:
      tags:
      - Authentication
      summary: Gets access token for shipper user.
      security: []
      description: This method allows the shipper user to generate an access token from Emerge platform. This access token is based upon a username/password combination that should be supplied in the request. Authentication has a rate limit of up to 20 requests per second. This limit may be lower during times of high volumes.
      requestBody:
        description: Request body of an authentication attempt.
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                user_name:
                  description: The user name of the user authenticating against the API.
                  type: string
                  example: jsseh@emergemarket.com
                password:
                  description: The password of the user authenticating against the API.
                  type: string
                  example: Secret123
              required:
              - user_name
              - password
      responses:
        '200':
          description: 200 | OK. A JSON object containing the access token and additional information.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/200_authentication_response'
        '403':
          $ref: '#/components/responses/403'
        '429':
          $ref: '#/components/responses/429'
        '500':
          $ref: '#/components/responses/500'
    servers:
    - url: https://api.emergemarket.io/v1
      description: Primary production endpoint
    - url: https://demo-api.emergemarket.dev/v1
      description: Testing sandbox endpoint
  /auth/refresh:
    post:
      tags:
      - Authentication
      summary: Gets a refreshed access token for shipper user.
      security: []
      description: This method allows users to refresh their access token based upon the original authentication event.
      requestBody:
        description: Request of the authentication renewal attempt.
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                refresh_token:
                  description: The refresh token from the original authentication request.
                  type: string
                  example: asdfklwj43asdfja432sjdafjadkkj2345efsdk4ts
              required:
              - refresh_token
      responses:
        '200':
          description: 200 | OK. A new access token has been generated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/200_authenticationrefresh_response'
        '400':
          description: 400 | Bad Request. A bad request was made. Please try again
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400_badrequest_refreshtoken_response'
        '403':
          $ref: '#/components/responses/403'
    servers:
    - url: https://api.emergemarket.io/v1
      description: Primary production endpoint
    - url: https://demo-api.emergemarket.dev/v1
      description: Testing sandbox endpoint
components:
  responses:
    '403':
      description: 403 | Forbidden
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/403_forbidden_response'
    '429':
      description: 429 | Too many requests.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/429_response'
    '500':
      description: 500 | Internal Server Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/500_response'
  schemas:
    400_badrequest_clientcredentials_response:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              description: HTTP code
              type: integer
              example: 400
            detailed_errors:
              description: Error messages
              type: array
              items:
                type: object
                properties:
                  key:
                    type: string
                    example: client_id
                  value:
                    type: string
                    example: client_id must not be empty.
            messages:
              type: array
              items:
                type: string
                example: Validation failed.
    403_forbidden_response:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              description: HTTP code
              type: integer
              example: 403
            messages:
              description: Error messages
              type: array
              items:
                type: string
                example: Response status code does not indicate success 403 (Forbidden)
    200_client_credential_authentication_response:
      type: object
      properties:
        response:
          type: object
          properties:
            token:
              description: The access token to be used in subsequent requests.
              type: string
              example: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ik1qQkRRemN5TlRoQ05UbERNVVpGTXpneU5FUXpNVVF4UVRoR1FUSTRPRFF5T0VFeE16QXdRdyJ9.eyJodHRwczovL2FwcC5lbWVyZ2V0bXMuY29tL1Byb3ZpZGVyR3VpZCI6ImQ1OWEyNTY0LTAyNzAtNDBhYy1iYWZkLWIwNWE0NDNlZGY4ZiIsImlzcyI6Imh0dHBzOi8vdmFudGFnZWZyZWlnaHQuYXV0aDAuY29tLyIsInN1YiI6ImVNRjJtUU5YdWU1QlhqbVVOWDFwUTQ1Z3J3cnF1dWlRQGNsaWVudHMiLCJhdWQiOiJodHRwczovL2FwcC5lbWVyZ2V0bXMuY29tIiwiaWF0IjoxNjMxNjk5MjM3LCJleHAiOjE2MzE3ODU2MzcsImF6cCI6ImVNRjJtUU5YdWU1QlhqbVVOWDFwUTQ1Z3J3cnF1dWlRIiwic2NvcGUiOiJpbnRlZ3JhdGlvbjpzY29wZSIsImd0eSI6ImNsaWVudC1jcmVkZW50aWFscyJ9.kMHPwoPFORvTp4A5e-1sc6gwCAdVPGwv3fx_I8sN_RSEWG7Cd9BSfQf5UtDOq4zyrAHmVyf1hczxL5bvVC4XOoe7v0g2hqbogEPEQLubO5tWZdoG76xKRYuJC-7aJAW8MJFUnp952l2rWE4bQ3jsQsLyZIavsaTW3dmrOgWEBLIbKR_4vMdA4SAIhclV_ZatiZRCtl6sib7KIUXQ8rFq5UjY_Oc3_XfSOTzgJSwV0eVA5D7Sty88Zqf6ElQNRf2jt4srZ0q3O1flVdyjCYsigig8xl7vSlkt-TJgMi8efucGsLPCR4DbsR1tlS7ulc05wIQL3QgngMajfCSfkSnOig
            expires_in:
              description: Expiration time of token in seconds.
              type: number
              example: 86400
        error:
          type: object
          properties:
            code:
              type: integer
              example: 0
    200_authentication_response:
      type: object
      properties:
        response:
          type: object
          properties:
            token:
              description: The access token to be used in subsequent requests.
              type: string
              example: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ik9UYzROVFExTTBSRVF6SXhOamd6UVRZNU0wSkNRak5HTWpVNE5VTkVNa1l4TVROQk9VSkROQSJ9.eyJodHRwczovL2F1dGgwLmVtZXJnZXRtcy5jb20vVXNlcklkIjoiY2ViN2Q0ZWYtOTA1YS00MTlkLWFjMWUtZmQ0Y2IwMzc4MjEyIiwiaHR0cHM6Ly9hdXRoMC5lbWVyZ2V0bXMuY29tL09yZ2FuaXphdGlvbklkIjoiZWU3YmRjMGItOTFiMy00NDAwLWFmZjUtYzc3ZGZlMjk3NjA2IiwiaHR0cHM6Ly9hdXRoMC5lbWVyZ2V0bXMuY29tL1NoaXBtZW50UHJvdmlkZXJPcmdhbml6YXRpb25JZCI6ImVlN2JkYzBiLTkxYjMtNDQwMC1hZmY1LWM3N2RmZTI5NzYwNiIsImlzcyI6Imh0dHBzOi8vZW1lcmdlLXNzby10ZXN0LmF1dGgwLmNvbS8iLCJzdWIiOiJhdXRoMHw1ZGQ2OGNjYjRmOGZmNzAzYjI5NmQ5Y2MiLCJhdWQiOlsiaHR0cHM6Ly9hcHAuZW1lcmdldG1zLmNvbSIsImh0dHBzOi8vZW1lcmdlLXNzby10ZXN0LmF1dGgwLmNvbS91c2VyaW5mbyJdLCJpYXQiOjE1OTk3NzMzNTIsImV4cCI6MTU5OTg1OTc1MiwiYXpwIjoiSWpSRERQajFNeVV5SEg2TEF1aTFqY1loM3NuV0EweDYiLCJzY29wZSI6Im9wZW5pZCBwcm9maWxlIGVtYWlsIGFkZHJlc3MgcGhvbmUgYXRvbSByZnA6ZnAgcmZwOmNwIG9mZmxpbmVfYWNjZXNzIiwiZ3R5IjoicGFzc3dvcmQifQ.FamVUCPS7Q2B1u7zUPC5Guk2HKTQ6Km6i6CX_Tpg1h98gnuvnWrC9FF-awgldjHmCNoeqI9ImjEVpecP00oAtHWiDaXMTd7UsyPcHAWh2xatZ8LPCrnw-0ox3egSSv5KxCTrnXAhTxwR4XI07-jxWjTgkw5dSVGc70Q9a_PC8nXe7-1SDKmLpMKFmtU60eH52kmUy0CECi_GfYS7xKskZYgX3Xhx-C1jCWFbCbmRA1Yxvir450miOIo0g5AxaJjbTgm6ao2OGuPzyLUTrXaSchK1J9xrv8dXhKh-PSv0eIG5d2MVHJf4O_KsFckt40OuiiEokrdsfdsfdfhgsdOuDkQ
            expires_in:
              description: Expiration time of token in seconds.
              type: number
              example: 86400
            refresh_token:
              description: The token required to call refresh_token endpoint to get a new access token.
              type: string
              example: ciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ik9UYzROVFExTTBSRVF6SXhOamd6UVRZ
        error:
          type: object
          properties:
            code:
              type: integer
              example: 0
    500_response:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: integer
              example: 500
            messages:
              type: array
              items:
                type: string
                example: userName.
    400_badrequest_refreshtoken_response:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              description: HTTP code
              type: integer
              example: 400
            detailed_errors:
              description: Error messages
              type: array
              items:
                type: object
                properties:
                  key:
                    type: string
                    example: refresh_token
                  value:
                    type: string
                    example: refresh_token must not be empty.
            messages:
              type: array
              items:
                type: string
                example: Validation failed.
    429_response:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: integer
              example: 429
            messages:
              type: array
              items:
                type: string
                example: Too many requests.
    200_authenticationrefresh_response:
      type: object
      properties:
        response:
          type: object
          properties:
            token:
              description: The access token to be used in subsequent requests.
              type: string
              example: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ik9UYzROVFExTTBSRVF6SXhOamd6UVRZNU0wSkNRak5HTWpVNE5VTkVNa1l4TVROQk9VSkROQSJ9.eyJodHRwczovL2F1dGgwLmVtZXJnZXRtcy5jb20vVXNlcklkIjoiY2ViN2Q0ZWYtOTA1YS00MTlkLWFjMWUtZmQ0Y2IwMzc4MjEyIiwiaHR0cHM6Ly9hdXRoMC5lbWVyZ2V0bXMuY29tL09yZ2FuaXphdGlvbklkIjoiZWU3YmRjMGItOTFiMy00NDAwLWFmZjUtYzc3ZGZlMjk3NjA2IiwiaHR0cHM6Ly9hdXRoMC5lbWVyZ2V0bXMuY29tL1NoaXBtZW50UHJvdmlkZXJPcmdhbml6YXRpb25JZCI6ImVlN2JkYzBiLTkxYjMtNDQwMC1hZmY1LWM3N2RmZTI5NzYwNiIsImlzcyI6Imh0dHBzOi8vZW1lcmdlLXNzby10ZXN0LmF1dGgwLmNvbS8iLCJzdWIiOiJhdXRoMHw1ZGQ2OGNjYjRmOGZmNzAzYjI5NmQ5Y2MiLCJhdWQiOlsiaHR0cHM6Ly9hcHAuZW1lcmdldG1zLmNvbSIsImh0dHBzOi8vZW1lcmdlLXNzby10ZXN0LmF1dGgwLmNvbS91c2VyaW5mbyJdLCJpYXQiOjE1OTk3NzMzNTIsImV4cCI6MTU5OTg1OTc1MiwiYXpwIjoiSWpSRERQajFNeVV5SEg2TEF1aTFqY1loM3NuV0EweDYiLCJzY29wZSI6Im9wZW5pZCBwcm9maWxlIGVtYWlsIGFkZHJlc3MgcGhvbmUgYXRvbSByZnA6ZnAgcmZwOmNwIG9mZmxpbmVfYWNjZXNzIiwiZ3R5IjoicGFzc3dvcmQifQ.FamVUCPS7Q2B1u7zUPC5Guk2HKTQ6Km6i6CX_Tpg1h98gnuvnWrC9FF-awgldjHmCNoeqI9ImjEVpecP00oAtHWiDaXMTd7UsyPcHAWh2xatZ8LPCrnw-0ox3egSSv5KxCTrnXAhTxwR4XI07-jxWjTgkw5dSVGc70Q9a_PC8nXe7-1SDKmLpMKFmtU60eH52kmUy0CECi_GfYS7xKskZYgX3Xhx-C1jCWFbCbmRA1Yxvir450miOIo0g5AxaJjbTgm6ao2OGuPzyLUTrXaSchK1J9xrv8dXhKh-PSv0eIG5d2MVHJf4O_KsFckt40OuiiEokrdsfdsfdfhgsdOuDkQ
            expires_in:
              description: Expiration time of token in seconds.
              type: number
              example: 86400
        error:
          type: object
          properties:
            code:
              type: integer
              example: 0
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
x-refined-from:
- emerge-carrier-api-openapi.yml
- emerge-public-api-openapi.yml
x-tagGroups:
- name: Provider API
  tags:
  - Authentication
  - Options
  - Tender
- name: Webhook Events
  tags:
  - Rate Request Event
  - Tender Request Event