1. Getting started

1.1 How do I get access?

  • Step 1: Account creation,
    get your credentials with your account manager.
  • Step 2: Authentication,
    after your account is created, obtain tokens via the login mutation. It returns:
    • a short‑lived access token (JWT) for the Authorization header, and
    • a refresh token to obtain new access tokens.

1.2 What is the API endpoint?

All requests go to a single GraphQL endpoint. Send every query and mutation as POST with Content-Type: application/json.

EnvironmentGraphQL endpointFulfillment runs?
Production (US)https://api.deal-engine.com/v3Yes; refunds execute in the airline system
Production (EU)https://eu.api.deal-engine.com/v3Yes; refunds execute in the airline system
Sandbox (US)https://api.sandbox.deal-engine.com/v3No; see Testing & environments
Sandbox (EU)https://eu.api.sandbox.deal-engine.com/v3No; see Testing & environments

Deal Engine runs two tenants, US and EU; use your tenant's Production/Sandbox pair. Full matrix and access process: Environments & access.

1.3 Environment Setup - where do I find the GraphQL playground and schema?

Open your environment's GraphQL URL directly in a browser (see 1.2, e.g. https://api.sandbox.deal-engine.com/v3); each endpoint serves a built-in Apollo Sandbox with a query editor, schema explorer, and headers panel. See How to test in other environments for the full walkthrough, including the hosted Apollo Sandbox alternative if the built-in landing page is disabled for your environment.

  • Open your environment's GraphQL endpoint in a browser (see 1.2)
  • Add Authorization: Bearer <token> header
  • Click Refresh Schema so Apollo reloads the queries and mutations available to your role
  • Use the Explorer to run queries and mutations. The schema is in the Docs panel.

The schema itself comes from GraphQL introspection against that endpoint; unauthenticated introspection only shows the role-aware auth operations (e.g. login); the full schema for your role appears once you authenticate and refresh.

1.4 Quickest way to issue my first refund request

Login to get your token:

mutation Login($email: String!, $password: String!) {
    login(email: $email, password: $password) {
        token
        refreshToken
        expiresIn
    }
}

Variables example:

{
    "email": "[email protected]",
    "password": "********"
}
  1. Use the token in subsequent requests with Authorization: Bearer <token>.
  2. Issue your first refund request:
mutation CreateQuote($request: [quoteRequest]!) {
    createQuote(request: $request)
}

Variables example:

{
    "request": [
        {
            "ticketNum": "1282132019309",
            "isEmd": false
        }
    ]
}


Did this page help you?
All rights reserved © 2025 deal-engine.com.