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.json, emerge-public-api-openapi.json. 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'
      operationId: postAuthLoginClientCredentials
      x-operation-id-source: derived
    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'
      operationId: postAuthLogin
      x-operation-id-source: derived
    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'
      operationId: postAuthRefresh
      x-operation-id-source: derived
    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:
    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
    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)
    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.
    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
    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
    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.
    500_response:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: integer
              example: 500
            messages:
              type: array
              items:
                type: string
                example: userName.
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
x-refined-from:
- emerge-carrier-api-openapi.json
- emerge-public-api-openapi.json
x-tagGroups:
- name: Provider API
  tags:
  - Authentication
  - Options
  - Tender
- name: Webhook Events
  tags:
  - Rate Request Event
  - Tender Request Event