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.
| Environment | GraphQL endpoint | Fulfillment runs? |
|---|---|---|
| Production (US) | https://api.deal-engine.com/v3 | Yes; refunds execute in the airline system |
| Production (EU) | https://eu.api.deal-engine.com/v3 | Yes; refunds execute in the airline system |
| Sandbox (US) | https://api.sandbox.deal-engine.com/v3 | No; see Testing & environments |
| Sandbox (EU) | https://eu.api.sandbox.deal-engine.com/v3 | No; 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": "********"
}- Use the token in subsequent requests with
Authorization: Bearer <token>. - Issue your first refund request:
mutation CreateQuote($request: [quoteRequest]!) {
createQuote(request: $request)
}Variables example:
{
"request": [
{
"ticketNum": "1282132019309",
"isEmd": false
}
]
}Updated 13 days ago