> This page is for API Reference.

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.navipartner.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.navipartner.com/_mcp/server.

# Find Ticket

GET https://api.npretail.app/{tenant}/{environment}/{company}/ticket

Retrieves ticket id and access details about a specific ticket or list of tickets, depending on which query parameter is used.  If the value is not found, an empty list is returned. In case when a list of external numbers is provided, all matching tickets are returned, including duplicates. Tickets not found are omitted from the result. Leading and trailing spaces are ignored in the provided ticket numbers. Exactly one of `ticketId`, `externalNumbers` or `notificationAddress` must be provided.  - Filter using `ticketId`, `externalNumbers` or `notificationAddress` to get a specific ticket or a list of tickets.  - Use `externalNumbers` to find multiple tickets by their external numbers. (Separate the ticket number with a comma).  - Admission content and item descriptions can be included with `withAdmissionContent`.  - Access history summary is always included; use `withAccessHistoryDetails` to also include event-level events.  - Use `withWallet` to include `inWallet` and `wallets`, the headers of the Attraction Wallets holding the ticket.  - `activeOnly` controls whether blocked/expired tickets are filtered out (defaults to `true` when omitted).

Reference: https://docs.navipartner.com/apis/api-reference/ticketing/service-ticket/find-ticket

## Authentication

- `x-np-api-key` header (required) — API Key authentication via header

## Request

### Path parameters

- `tenant` (string, required) — Your Entra Tenant ID. [More details.](/paths#1-tenant)
- `environment` (string, required) — Your Business Central Environment. [More details.](/paths#2-environment)
- `company` (string, required) — Your Business Central Company. [More details.](/paths#3-company)

### Query parameters

- `externalNumbers` (string, optional) — A list of unique identifiers of tickets, separated by commas
- `ticketId` (UUID, optional) — The unique identifier of a ticket
- `notificationAddress` (string, optional) — The email address or mobile phone number to send tickets and notifications to
- `withAdmissionContent` (boolean, optional)
- `withAccessHistoryDetails` (boolean, optional)
- `withWallet` (boolean, optional) — When `true`, the response includes `inWallet` and the `wallets` array. Defaults to `false`.
- `activeOnly` (boolean, optional)
- `storeCode` (string, optional) — A unique identifier for a store - a logical grouping defining a subset of ticket items. This is used to filter the list of ticket items returned by the API. When left empty, the API will use the default store code.

## Response

### 200

- `list of FindTicketResponse`

## Types

### FindTicketResponse

Details of the ticket

- `ticketId` (UUID, required) — The unique identifier of a ticket
- `ticketNumber` (string, required) — The unique identifier of a ticket
- `ticketKind` (enum, required) — The kind of ticket, either individual or group admission.
  - Allowed values: `individualAdmission`, `groupAdmission`
- `reservationToken` (string, required) — A unique token that identifies a ticket reservation
- `itemNumber` (string, required) — An item or product number defined in the ticketing system
- `validFrom` (datetime, required)
- `validUntil` (datetime, required)
- `issuedAt` (datetime, required) — The date and time when the ticket was issued
- `blocked` (boolean, required)
- `pinCode` (string, optional) — A pin code for the ticket, used to authorize rescheduling or revoking a confirmed ticket. Returned only for confirmed reservations. The format is configured per tenant, so do not validate it against a fixed length or pattern.
- `unitPrice` (double, optional)
- `unitPriceInclVat` (double, optional)
- `currencyCode` (string, optional)
- `ticketHolder` (string, optional) — The name of the person holding the ticket(s)
- `ticketHolderLanguage` (string, optional) — The language code the ticket holder wants to receive notifications in.
- `notificationAddress` (string, optional) — The email address or mobile phone number to send tickets and notifications to
- `inWallet` (boolean, optional) — Only present when `withWallet=true`. `true` when the ticket is in a wallet.
- `wallets` (list of WalletHeader, optional) — Only present when `withWallet=true`. The wallets currently holding the ticket, each as `Get Wallet` returns it but without the assets. Empty when the ticket is in no wallet.
- `printCount` (integer, optional)
- `printedAt` (datetime, optional)
- `content` (list of TicketContent, optional)
- `description` (Descriptions, optional) — Descriptive information about a ticket item. The source of these fields are configurable.
- `accessHistory` (list of TicketAccessHistory, optional)
- `admissionEntitlements` (list of AdmissionEntitlement, optional)

### WalletHeader

The wallet header - everything `Get Wallet` returns about a wallet except its assets. Also returned in `wallets` on `Get Ticket` and `Find Ticket` when `withWallet=true`.

- `walletId` (UUID, required) — A globally unique identifier for the wallet.
- `referenceNumber` (string, required) — The visual reference number associated with the wallet.
- `description` (string, required) — A human-readable description of the wallet.
- `expiryDatetime` (string, required) — The expiry datetime of the wallet in ISO 8601 format. Use an empty string if not applicable.
- `lastPrintedAt` (string, required) — The datetime when the wallet was last printed in ISO 8601 format. Use an empty string if not applicable.
- `printCount` (integer, required) — The number of times the wallet has been printed.
- `originatesFromItemNo` (string, optional) — The item number from which the wallet originates.
- `originatesFromDescription` (string, optional) — The item description from which the wallet originates.
- `externalReferenceNumber` (string, optional) — The first external reference on the wallet that is neither blocked nor expired. `null` when there is none.

### TicketContent

Details of the ticket content

- `admissionDetails` (AdmissionDetails, required) — Details of the admission for a specific reservation
- `scheduleDetails` (ScheduleDetailsTicket, required) — Used for the ticket content

### Descriptions

Descriptive information about a ticket item. The source of these fields are configurable.

- `title` (string, optional)
- `subtitle` (string, optional)
- `name` (string, optional)
- `description` (string, optional)
- `fullDescription` (string, optional)

### TicketAccessHistory

Details of the access history for a ticket The `events` list is only populated when `withAccessHistoryDetails` is set to true in the request.

- `admissionCode` (string, required) — A unique code that identifies a specific admission.
- `firstAdmissionAt` (datetime, optional)
- `confirmedGroupSize` (integer, optional) — The confirmed group size for a group ticket. This number can be less than or equal to the max group size.
- `maxGroupSize` (integer, optional) — The maximum group size for a group ticket. Calculated as ordered quantity multiplied by a factor defined per admission.
- `events` (list of TicketAccessEvent, optional)

### AdmissionEntitlement

Included for Group Tickets, the admission entitlement objects defines the number of admissions included for the group ticket.

- `code` (string, required) — A unique code that identifies a specific admission.
- `maxGroupSize` (integer, required) — The maximum group size for a group ticket. Calculated as ordered quantity multiplied by a factor defined per admission.

### AdmissionDetails

Details of the admission for a specific reservation

- `capacityControl` (enum, required) — Indicates the type of capacity control that applies. `none` means capacity is not tracked. `sales` means capacity is decremented by ticket sales. `admitted` means capacity is decremented by admitted entries. `full` means capacity tracks both admissions and departures.
  - Allowed values: `none`, `sales`, `admitted`, `full`
- `code` (string, required) — A unique code that identifies a specific admission.
- `default` (boolean, required) — Indicates if this admission is the default admission when there are multiple admission defined.
- `description` (Descriptions, required) — Descriptive information about a ticket item. The source of these fields are configurable.
- `included` (enum, required) — Indicates if the admission is mandatory or optional. `mandatory` implies that the admission can not be deselected. `optionalNotSelected` implies that you must opt-in to include the admission, while `optionalAndSelected` implies that the admission is optional and selected and you can opt-out. You opt-in or opt-out by including or excluding the admission in the reservation request.
  - Allowed values: `mandatory`, `optionalNotSelected`, `optionalAndSelected`
- `scheduleDetails` (ScheduleDetails, optional) — Details of the schedule for a specific reservation or ticket.

### ScheduleDetailsTicket

Used for the ticket content

- `code` (string, required)
- `duration` (integer, required)
- `endDate` (date, required)
- `endTime` (string, required)
- `externalNumber` (integer, required) — The ID of a specific time slot for a specific admission
- `startDate` (date, required)
- `startTime` (string, required)
- `type` (enum, required) — The types of events that can occur for a ticket.
  - Allowed values: `initialEntry`, `reservation`, `admitted`, `departed`, `consumed`, `canceledAdmission`, `payment`, `prePaid`, `postPaid`, `canceledReservation`, `requested`, `unknown`
- `arrivalFromTime` (string, optional) — The earliest time a customer can arrive for the time slot.
- `arrivalUntilTime` (string, optional) — The latest time a customer can arrive for the time slot.
- `description` (string, optional)

### TicketAccessEvent

Details of an access event for a ticket

- `event` (enum, required) — The types of events that can occur for a ticket.
  - Allowed values: `initialEntry`, `reservation`, `admitted`, `departed`, `consumed`, `canceledAdmission`, `payment`, `prePaid`, `postPaid`, `canceledReservation`, `requested`, `unknown`
- `eventAt` (datetime, required)

### ScheduleDetails

Details of the schedule for a specific reservation or ticket.

- `code` (string, required)
- `duration` (integer, required)
- `endDate` (date, required)
- `endTime` (string, required)
- `externalNumber` (integer, required) — The ID of a specific time slot for a specific admission
- `startDate` (date, required)
- `startTime` (string, required)
- `arrivalFromTime` (string, optional) — The earliest time a customer can arrive for the time slot.
- `arrivalUntilTime` (string, optional) — The latest time a customer can arrive for the time slot.
- `description` (string, optional)
- `type` (enum, optional) — The types of events that can occur for a ticket.
  - Allowed values: `initialEntry`, `reservation`, `admitted`, `departed`, `consumed`, `canceledAdmission`, `payment`, `prePaid`, `postPaid`, `canceledReservation`, `requested`, `unknown`

## Examples

### Find tickets using external ticket numbers

**Response**

```json
[
  {
    "ticketId": "12345678-1234-1234-1234-123456789012",
    "ticketNumber": "TICKET123",
    "ticketKind": "individualAdmission",
    "reservationToken": "ABC123456DEF789GHI",
    "itemNumber": "31001",
    "validFrom": "2024-10-15T00:00:00Z",
    "validUntil": "2025-10-14T23:59:59Z",
    "issuedAt": "2024-10-15T12:13:00Z",
    "blocked": false,
    "pinCode": "1234-5678",
    "unitPrice": 80,
    "unitPriceInclVat": 100,
    "currencyCode": "DKK",
    "ticketHolder": "John Doe",
    "ticketHolderLanguage": "ENU",
    "notificationAddress": "john@acme.com",
    "inWallet": true,
    "wallets": [
      {
        "walletId": "a2cbd5bc-5cf4-ef11-b3a1-a1084fe21c78",
        "referenceNumber": "141234529930210327",
        "description": "My wallet holds my tickets, coupons and vouchers for the event.",
        "expiryDatetime": "2026-12-31T23:59:59Z",
        "lastPrintedAt": "2026-12-31T23:59:59Z",
        "printCount": 1,
        "originatesFromItemNo": "70009",
        "originatesFromDescription": "Family Fun Pack",
        "externalReferenceNumber": "151234529930210327"
      }
    ],
    "printCount": 1,
    "printedAt": "2024-10-15T12:00:00Z",
    "content": [
      {
        "admissionDetails": {
          "capacityControl": "sales",
          "code": "CASTLE",
          "default": true,
          "description": {
            "title": "Castle Museum Entrance",
            "subtitle": "Adult Castle Ticket",
            "name": "Explore the Castle",
            "description": "<b>Access</b> to the castle exhibit",
            "fullDescription": "<p>Experience the grandeur of the castle's architecture and marvel at its intricate details.  Walk through beautifully decorated rooms and admire the stunning artwork and furniture on display.</p>"
          },
          "included": "mandatory"
        },
        "scheduleDetails": {
          "code": "MORNING",
          "duration": 10800,
          "endDate": "2024-10-15",
          "endTime": "12:00",
          "externalNumber": 452,
          "startDate": "2024-10-15",
          "startTime": "09:00",
          "type": "initialEntry",
          "arrivalFromTime": "08:30",
          "arrivalUntilTime": "10:00",
          "description": "Morning schedule"
        }
      }
    ],
    "description": {
      "title": "Castle Museum Entrance",
      "subtitle": "Adult Castle Ticket",
      "name": "Explore History",
      "description": "<b>Access</b> to all castle exhibits",
      "fullDescription": "<p>Step back in time and immerse yourself in the rich history of our castle museum.  Discover fascinating artifacts, explore grand halls, and learn about the lives of the people who once lived within these walls.</p> <p>Experience the grandeur of the castle's architecture and marvel at its intricate details.  Walk through beautifully decorated rooms and admire the stunning artwork and furniture on display.</p> <p>Join a guided tour to gain deeper insights into the castle's history and hear captivating stories  about its past. Learn about the battles fought, the royal inhabitants, and the secrets that lie hidden within these ancient walls.</p>"
    },
    "accessHistory": [
      {
        "admissionCode": "CASTLE",
        "firstAdmissionAt": "2025-01-31T09:12:00Z",
        "events": [
          {
            "event": "admitted",
            "eventAt": "2025-01-31T09:12:00Z"
          },
          {
            "event": "departed",
            "eventAt": "2025-01-31T12:47:00Z"
          }
        ]
      }
    ]
  }
]
```

**SDK Code**

```python Find tickets using external ticket numbers
import requests

url = "https://api.npretail.app/01234567-89ab-cdef-0123-456789abcdef/production/CRONUS%2520International%2520Ltd./ticket"

querystring = {"externalNumbers":"TICKET123,TICKET124","withAdmissionContent":"true","withAccessHistoryDetails":"true","withWallet":"true","activeOnly":"true"}

headers = {"x-np-api-key": "<NaviPartner API Key>"}

response = requests.get(url, headers=headers, params=querystring)

print(response.json())
```

```javascript Find tickets using external ticket numbers
const url = 'https://api.npretail.app/01234567-89ab-cdef-0123-456789abcdef/production/CRONUS%2520International%2520Ltd./ticket?externalNumbers=TICKET123%2CTICKET124&withAdmissionContent=true&withAccessHistoryDetails=true&withWallet=true&activeOnly=true';
const options = {method: 'GET', headers: {'x-np-api-key': '<NaviPartner API Key>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Find tickets using external ticket numbers
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.npretail.app/01234567-89ab-cdef-0123-456789abcdef/production/CRONUS%2520International%2520Ltd./ticket?externalNumbers=TICKET123%2CTICKET124&withAdmissionContent=true&withAccessHistoryDetails=true&withWallet=true&activeOnly=true"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("x-np-api-key", "<NaviPartner API Key>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Find tickets using external ticket numbers
require 'uri'
require 'net/http'

url = URI("https://api.npretail.app/01234567-89ab-cdef-0123-456789abcdef/production/CRONUS%2520International%2520Ltd./ticket?externalNumbers=TICKET123%2CTICKET124&withAdmissionContent=true&withAccessHistoryDetails=true&withWallet=true&activeOnly=true")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["x-np-api-key"] = '<NaviPartner API Key>'

response = http.request(request)
puts response.read_body
```

```java Find tickets using external ticket numbers
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://api.npretail.app/01234567-89ab-cdef-0123-456789abcdef/production/CRONUS%2520International%2520Ltd./ticket?externalNumbers=TICKET123%2CTICKET124&withAdmissionContent=true&withAccessHistoryDetails=true&withWallet=true&activeOnly=true")
  .header("x-np-api-key", "<NaviPartner API Key>")
  .asString();
```

```php Find tickets using external ticket numbers
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api.npretail.app/01234567-89ab-cdef-0123-456789abcdef/production/CRONUS%2520International%2520Ltd./ticket?externalNumbers=TICKET123%2CTICKET124&withAdmissionContent=true&withAccessHistoryDetails=true&withWallet=true&activeOnly=true', [
  'headers' => [
    'x-np-api-key' => '<NaviPartner API Key>',
  ],
]);

echo $response->getBody();
```

```csharp Find tickets using external ticket numbers
using RestSharp;

var client = new RestClient("https://api.npretail.app/01234567-89ab-cdef-0123-456789abcdef/production/CRONUS%2520International%2520Ltd./ticket?externalNumbers=TICKET123%2CTICKET124&withAdmissionContent=true&withAccessHistoryDetails=true&withWallet=true&activeOnly=true");
var request = new RestRequest(Method.GET);
request.AddHeader("x-np-api-key", "<NaviPartner API Key>");
IRestResponse response = client.Execute(request);
```

```swift Find tickets using external ticket numbers
import Foundation

let headers = ["x-np-api-key": "<NaviPartner API Key>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://api.npretail.app/01234567-89ab-cdef-0123-456789abcdef/production/CRONUS%2520International%2520Ltd./ticket?externalNumbers=TICKET123%2CTICKET124&withAdmissionContent=true&withAccessHistoryDetails=true&withWallet=true&activeOnly=true")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

### Find group tickets using external ticket numbers

Example of finding a group ticket with admissionEntitlements.

**Response**

```json
[
  {
    "ticketId": "12345678-1234-1234-1234-123456789012",
    "ticketNumber": "TICKET123",
    "ticketKind": "groupAdmission",
    "reservationToken": "ABC123456DEF789GHI",
    "itemNumber": "31001",
    "validFrom": "2024-10-15T00:00:00Z",
    "validUntil": "2025-10-14T23:59:59Z",
    "issuedAt": "2024-10-15T12:13:00Z",
    "blocked": false,
    "pinCode": "1234-5678",
    "unitPrice": 80,
    "unitPriceInclVat": 100,
    "currencyCode": "DKK",
    "ticketHolder": "John Doe",
    "ticketHolderLanguage": "ENU",
    "notificationAddress": "john@acme.com",
    "printCount": 1,
    "printedAt": "2024-10-15T12:00:00Z",
    "content": [
      {
        "admissionDetails": {
          "capacityControl": "sales",
          "code": "CASTLE",
          "default": true,
          "description": {
            "title": "Castle Museum Entrance",
            "subtitle": "Adult Castle Ticket",
            "name": "Explore the Castle",
            "description": "<b>Access</b> to the castle exhibit",
            "fullDescription": "<p>Experience the grandeur of the castle's architecture and marvel at its intricate details.  Walk through beautifully decorated rooms and admire the stunning artwork and furniture on display.</p>"
          },
          "included": "mandatory"
        },
        "scheduleDetails": {
          "code": "MORNING",
          "duration": 10800,
          "endDate": "2024-10-15",
          "endTime": "12:00",
          "externalNumber": 452,
          "startDate": "2024-10-15",
          "startTime": "09:00",
          "type": "initialEntry",
          "arrivalFromTime": "08:30",
          "arrivalUntilTime": "10:00",
          "description": "Morning schedule"
        }
      }
    ],
    "description": {
      "title": "Castle Museum Entrance",
      "subtitle": "Adult Castle Ticket",
      "name": "Explore History",
      "description": "<b>Access</b> to all castle exhibits",
      "fullDescription": "<p>Step back in time and immerse yourself in the rich history of our castle museum.  Discover fascinating artifacts, explore grand halls, and learn about the lives of the people who once lived within these walls.</p> <p>Experience the grandeur of the castle's architecture and marvel at its intricate details.  Walk through beautifully decorated rooms and admire the stunning artwork and furniture on display.</p> <p>Join a guided tour to gain deeper insights into the castle's history and hear captivating stories  about its past. Learn about the battles fought, the royal inhabitants, and the secrets that lie hidden within these ancient walls.</p>"
    },
    "admissionEntitlements": [
      {
        "code": "CASTLE",
        "maxGroupSize": 10
      }
    ]
  }
]
```

**SDK Code**

```python Find group tickets using external ticket numbers
import requests

url = "https://api.npretail.app/01234567-89ab-cdef-0123-456789abcdef/production/CRONUS%2520International%2520Ltd./ticket"

querystring = {"externalNumbers":"TICKET123,TICKET124","withAdmissionContent":"true","withAccessHistoryDetails":"false","withWallet":"false","activeOnly":"true"}

headers = {"x-np-api-key": "<NaviPartner API Key>"}

response = requests.get(url, headers=headers, params=querystring)

print(response.json())
```

```javascript Find group tickets using external ticket numbers
const url = 'https://api.npretail.app/01234567-89ab-cdef-0123-456789abcdef/production/CRONUS%2520International%2520Ltd./ticket?externalNumbers=TICKET123%2CTICKET124&withAdmissionContent=true&withAccessHistoryDetails=false&withWallet=false&activeOnly=true';
const options = {method: 'GET', headers: {'x-np-api-key': '<NaviPartner API Key>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Find group tickets using external ticket numbers
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.npretail.app/01234567-89ab-cdef-0123-456789abcdef/production/CRONUS%2520International%2520Ltd./ticket?externalNumbers=TICKET123%2CTICKET124&withAdmissionContent=true&withAccessHistoryDetails=false&withWallet=false&activeOnly=true"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("x-np-api-key", "<NaviPartner API Key>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Find group tickets using external ticket numbers
require 'uri'
require 'net/http'

url = URI("https://api.npretail.app/01234567-89ab-cdef-0123-456789abcdef/production/CRONUS%2520International%2520Ltd./ticket?externalNumbers=TICKET123%2CTICKET124&withAdmissionContent=true&withAccessHistoryDetails=false&withWallet=false&activeOnly=true")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["x-np-api-key"] = '<NaviPartner API Key>'

response = http.request(request)
puts response.read_body
```

```java Find group tickets using external ticket numbers
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://api.npretail.app/01234567-89ab-cdef-0123-456789abcdef/production/CRONUS%2520International%2520Ltd./ticket?externalNumbers=TICKET123%2CTICKET124&withAdmissionContent=true&withAccessHistoryDetails=false&withWallet=false&activeOnly=true")
  .header("x-np-api-key", "<NaviPartner API Key>")
  .asString();
```

```php Find group tickets using external ticket numbers
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api.npretail.app/01234567-89ab-cdef-0123-456789abcdef/production/CRONUS%2520International%2520Ltd./ticket?externalNumbers=TICKET123%2CTICKET124&withAdmissionContent=true&withAccessHistoryDetails=false&withWallet=false&activeOnly=true', [
  'headers' => [
    'x-np-api-key' => '<NaviPartner API Key>',
  ],
]);

echo $response->getBody();
```

```csharp Find group tickets using external ticket numbers
using RestSharp;

var client = new RestClient("https://api.npretail.app/01234567-89ab-cdef-0123-456789abcdef/production/CRONUS%2520International%2520Ltd./ticket?externalNumbers=TICKET123%2CTICKET124&withAdmissionContent=true&withAccessHistoryDetails=false&withWallet=false&activeOnly=true");
var request = new RestRequest(Method.GET);
request.AddHeader("x-np-api-key", "<NaviPartner API Key>");
IRestResponse response = client.Execute(request);
```

```swift Find group tickets using external ticket numbers
import Foundation

let headers = ["x-np-api-key": "<NaviPartner API Key>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://api.npretail.app/01234567-89ab-cdef-0123-456789abcdef/production/CRONUS%2520International%2520Ltd./ticket?externalNumbers=TICKET123%2CTICKET124&withAdmissionContent=true&withAccessHistoryDetails=false&withWallet=false&activeOnly=true")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```