openapi: 3.2.0 info: version: 1.2.1 title: Emerge Public Awards API description: 'The Emerge public API provides partner developers with access to core capabilities of the Emerge platform. The current version of the API is v1.2.1. This API will evolve as the features in Emerge''s product evolve. # Get Started The Emerge API is a ''restish'' API and is designed to allow you to work with objects using familiar HTTP verbs like * POST * PUT * DELETE * GET All production level API requests are made to:
`https://api.emergemarket.io` The testing sandbox is available during development and for testing:
`https://demo-api.emergemarket.dev/` ## Compatibility Policy Emerge APIs are versioned using a prefix in the endpoint URL. Within an API version, we only make backward-compatible changes. This mean that when a provider integrates with our REST API, the API will continue to work until the version is deprecated. If we have to create a change that is not compatible with the current version, a new version will be created. ### Non-Breaking Changes * Adding additional optional fields on the API request. * Adding additional fields on the API response. * Adding an HTTP method to an API. * Adding optional headers. * Adding additional accepted enumerated values. * Changing Error Response descriptions. * Added Rate Limits. ### Breaking Changes * Removing or renaming an API method or endpoint. * Removing or renaming existing API request or response fields. * Removing or renaming enumerated values. * Changing the Error Response values. ### Deprecation Policy * Emerge will continue to support deprecated APIs for 1 year. * Documentation will also be updated and integrating providers will be notified via email when a version or endpoint is being deprecated. # Workflows The Emerge API is designed to support two primary workflows for a shipper organization: An opportunity-to-tender workflow and an opportunity-to-award workflow. ## Opportunity-to-tender The opportunity-to-tender is the most common workflow of an integrating system. In this workflow, the Emerge system is used to source the live capacity as well as to tender through Emerge to that live capacity. The benefit of this workflow is that all information, from opportunity through tender and finally tracking is maintained in the Emerge system. The basic steps of this workflow include: 1. Create an Opportunity. 2. Post to the shipper''s (your) marketplace. 3. Receive options from carriers. Retrieval is achieved through a webhook published by you for receiving option events. 4. Tender to a carrier. 5. Get tracking updates through webhook. ## Opportunity-to-award The opportunity-to-award workflow supports customers who are using the Emerge platform in conjunction with their TMS. In this workflow, Emerge is used as a capacity provider while the TMS is used on the execution side. The basic steps of this workflow include: 1. Create an opportunity. 2. Post to the shipper''s (your) marketplace. 3. Receive options from carriers. Retrieval is achieved through a webhook published by you for receiving option events. 4. Award to a carrier. Note that awarding to the carrier will automatically close the opportunity, notify the carrier that they "won" the bidding and notify the remaining carriers that they did not win the bidding. The opportunity-to-award workflow requires that the customer''s TMS tenders to the winning carrier. This happens outside of the Emerge system. ' servers: - url: https://api.emergemarket.io/v1 description: Primary production endpoint - url: https://demo-api.emergemarket.dev/v1 description: Testing sandbox endpoint tags: - name: Awards paths: /awards: description: The award endpoints allow a shipper to award a carrier in the Emerge system a load. Note that awards are not replacements for tenders. The awards endpoints are typically used when the Emerge system is used to source capacity, while the shipper's TMS is used to tender to the carrier. summary: Returns an array of awards. get: tags: - Awards summary: Returns an array of awards. security: - BearerAuth: [] description: Returns a list of awards for a particular account. An opportunity can have either an award or a shipment. parameters: - name: organization-id in: header description: The Organization GUID for the request. This Emerge provided value is only required if your integration user is in multiple organizations. Note that if multiple headers are passed, the organization from the first instance of the header will be used. example: - 070C895C-AE61-4629-A603-829FC54CD816 required: false schema: type: string - in: query name: opportunity_id schema: type: integer description: Emerge system identifier for the awarded opportunity. example: 344392 - in: query name: option_id schema: type: integer description: Emerge system identifier for the option associated with the awarded opportunity. example: 12545 - in: query name: customer_reference_number schema: type: string description: Customer's identifier to match the awarded opportunity on. example: 1212934 - in: query name: start_date schema: type: string description: Start of the date range within which the Awards should be searched. Supports yyyy-mm-dd format. example: '2021-10-28' - in: query name: end_date schema: type: string description: End of the date range within which the Awards should be searched. Supports yyyy-mm-dd format. example: '2021-10-30' responses: '200': description: 200 | OK. A JSON array of awards content: application/json: schema: type: object properties: response: type: array items: type: object properties: award_id: description: The id of the award. type: integer example: 238842 opportunity_id: description: The id of the awarded opportunity. type: integer example: 238842 partner_quote_reference: description: The quote reference number of the winning partner. type: string example: T12334 expiration_date: description: The expiration date of the winning option. type: string example: '2021-10-28T07:53:59.402' availability_date: description: The availability date of the winning option. type: string example: '2021-10-28T07:53:59.402' option_id: description: The id of the winning option. type: integer example: 123 rate: description: Rate of the winning option. type: number example: 300 is_total_rate: description: Indicates whether the rate contains fuel surcharge or not. type: boolean modified_date: description: Modified date of the winning option. type: string example: '2021-10-28T07:53:59.402' created_date: description: Created date of the winning option. type: string example: '2021-10-28T07:53:59.402' partner: $ref: '#/components/schemas/200_getawards_partner_response' notes: description: Notes on the award. type: string example: Lorem ipsum dolor sit amet, consectetur adipiscing elit. emerge_opportunity_reference: description: Emerge reference for the awarded opportunity. type: string example: Q11238842 references: $ref: '#/components/schemas/references_object' award_method: description: Award method for the awarded opportunity. type: string enum: - Manual - AutoAward - BookItNow example: Manual error: type: object properties: code: description: HTTP code type: integer example: 0 '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' post: parameters: - name: organization-id in: header description: The Organization GUID for the request. This Emerge provided value is only required if your integration user is in multiple organizations. Note that if multiple headers are passed, the organization from the first instance of the header will be used. example: - 070C895C-AE61-4629-A603-829FC54CD816 required: false schema: type: string tags: - Awards summary: Creates an award. security: - BearerAuth: [] description: Creates an award. Awarding is the process of informing the carrier that they have won the shipment without tendering to them. requestBody: description: Request body of award required: true content: application/json: schema: type: object properties: option_id: description: The winning option id. type: integer example: 3233 not_awarding_to_lowest_option_reason_code: description: Reason code for not awarding to the lowest option, if applicable. type: string enum: - ContractedLane - ServiceLevel - Accountability - NoLongerAvailable - Other - NotProvided example: ContractedLane not_awarding_to_lowest_option_reason: description: Custom reason text for not awarding to the lowest option, when selected Reason Code is "Other". type: string example: The lowest option carrier is black listed in my organization. required: - option_id responses: '200': description: 200 | OK. A JSON award content: application/json: schema: type: object properties: response: type: object properties: award_id: description: The id of the award. type: integer example: 238842 opportunity_id: description: The id of the awarded opportunity. type: integer example: 238842 partner_quote_reference: description: The quote reference number of the winning partner. type: string example: test123 expiration_date: description: The expiration date of the winning option. type: string example: '2020-10-28T07:53:59.402Z' availability_date: description: The availability date of the winning option. type: string example: '2020-10-28T07:53:59.402' option_id: description: The id of the winning option. type: integer example: 123 rate: description: Rate of the winning option. type: number example: 300 is_total_rate: description: Indicates whether the rate contains fuel surcharge or not. type: boolean modified_date: description: Modified date of the winning option. type: string example: '2020-10-28T07:53:59.402Z' created_date: description: Created date of the winning option. type: string example: '2020-10-28T07:53:59.402Z' partner: $ref: '#/components/schemas/200_getawards_partner_response' notes: description: Notes on the award. type: string example: Lorem ipsum dolor sit amet, consectetur adipiscing elit. emerge_opportunity_reference: description: Emerge reference for the awarded opportunity. type: string example: Q11238842 references: $ref: '#/components/schemas/references_object' award_method: description: Award method for the awarded opportunity. type: string enum: - Manual - AutoAward - BookItNow example: Manual error: type: object properties: code: description: HTTP code type: integer example: 0 '400': description: 400 | Bad Request. A bad request was made. Please try again content: application/json: schema: $ref: '#/components/schemas/400_badrequest_createaward_response' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' /awards/{id}: description: The award endpoints allow a shipper to award a carrier in the Emerge system a load. Note that awards are not replacements for tenders. The awards endpoints are typically used when the Emerge system is used to source capacity, while the shipper's TMS is used to tender to the carrier. summary: Returns an award for award identifier. get: tags: - Awards summary: Retrieves the details of an award. security: - BearerAuth: [] description: Returns an award. An opportunity can have either an award or a shipment. parameters: - name: organization-id in: header description: The Organization GUID for the request. This Emerge provided value is only required if your integration user is in multiple organizations. Note that if multiple headers are passed, the organization from the first instance of the header will be used. example: - 070C895C-AE61-4629-A603-829FC54CD816 required: false schema: type: string - in: path name: id schema: type: integer minimum: 1 example: 112020 required: true description: Id of the award responses: '200': description: 200 | OK. A JSON award content: application/json: schema: type: object properties: response: type: object properties: award_id: description: The id of the award. type: integer example: 238842 opportunity_id: description: The id of the awarded opportunity. type: integer example: 238842 partner_quote_reference: description: The quote reference number of the winning partner. type: string example: T12334 expiration_date: description: The expiration date of the winning option. type: string example: '2021-10-28T07:53:59.402Z' availability_date: description: The availability date of the winning option. type: string example: '2021-10-28T07:53:59.402' option_id: description: The id of the winning option. type: integer example: 123 rate: description: Rate of the winning option. type: number example: 300 is_total_rate: description: Indicates whether the rate contains fuel surcharge or not. type: boolean modified_date: description: Modified date of the winning option. type: string example: '2021-10-28T07:53:59.402Z' created_date: description: Created date of the winning option. type: string example: '2021-10-28T07:53:59.402Z' partner: $ref: '#/components/schemas/200_getawards_partner_response' notes: description: Notes on the award. type: string example: Lorem ipsum dolor sit amet, consectetur adipiscing elit. emerge_opportunity_reference: description: Emerge reference for the awarded opportunity. type: string example: Q11238842 references: $ref: '#/components/schemas/references_object' award_method: description: Award method for the awarded opportunity. type: string enum: - Manual - AutoAward - BookItNow example: Manual error: type: object properties: code: description: HTTP code type: integer example: 0 '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' components: responses: '403': description: 403 | Forbidden content: application/json: schema: $ref: '#/components/schemas/403_forbidden_response' '401': description: 401 | Not Authorized. The request was not authorized. Please add or refresh your authorization token '404': description: 404 | Not Found. The requested resource was not found schemas: 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_createaward_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: option_id value: type: string example: option_id must not be empty. messages: type: array items: type: string example: Validation failed. phone_response_object: description: Phone Object type: object properties: number: description: The 10 digit phone number. type: string example: '1234567890' extension_number: description: The extension number, supports up to 5 digits. type: string example: '1234' 200_getawards_partner_response: type: object description: 200 | OK. Details of the partner winning the award properties: partner_code: description: Partner code of the winning partner as assigned by shipment provider. type: string example: P2314534 transportation_entity: description: Details of the transportation entity associated with the winning partner . type: object properties: legal_name: description: Transportation entity legal name. type: integer example: name dba_name: description: Transportation entity dba name. type: string example: testName dot_number: description: Transportation entity DOT number. type: integer example: 2894801 docket_number: description: Transportation entity Docket number. type: string example: MC143583 type: description: Transportation entity type. type: string example: testType contact: description: Contact information of the winning partner. type: object properties: first_name: description: First name of the contact. type: string example: FirstName last_name: description: Last name of the contact. type: string example: LastName email: description: Email of the contact. type: string format: email example: example@emergetms.com phone: description: Phone details of the contact. $ref: '#/components/schemas/phone_response_object' references_object: required: - Customer description: References for the opportunity. type: array items: type: object properties: type_id: description: The type of reference. type: string enum: - Other: 1 - Customer: 2 - Appointment: 3 - Bol: 4 - Delivery: 5 - Pickup: 6 - PickupConfirmation: 7 - Po: 8 - Pro: 9 - Trailer: 10 example: 2 value: description: The reference value. type: string example: CustRef123 securitySchemes: BearerAuth: type: http scheme: bearer x-tagGroups: - name: Shipper API tags: - Authentication - Network Partners - Opportunities - Options - Awards - Tenders - Shipments - name: Webhook Subscription API tags: - Webhooks - name: Webhook Events tags: - Tracking Events - Opportunity Awarded Event - Opportunity Deleted Event - Opportunity Not Awarded Event - Options Changed Event - Tender Status Updated Event - Network Partner Updated Event - Network Partner Deleted Event - Current Marketplace Option Event