NAV
shell python

Introduction

Welcome to the 1Ticket API!

Authentication

1Ticket uses API keys to allow access to the API. To request an API key, email the support team at support@1ticket.com.

1Ticket expects for the API key to be included in all API requests to the server in a header that looks like the following:

x-api-key: YOUR_API_KEY

PDF Management

The pdfs API is a collection of tools to process, manipulate and/or extract pertinent information from event tickets distributed in PDF format.

POST /v1/decoder

import requests

response = requests.post(
  'https://apis.dti1ticketapps.com/pdfs/v1/decoder/',
  headers={
    'x-api-key': 'YOUR_API_KEY'
  },
  json={
    'url': 'https://www.example.com/path/to/your/ticket_file.pdf'
  }
)
curl -X POST \
  https://apis.dti1ticketapps.com/pdfs/v1/decoder/ \
  -H 'x-api-key: YOUR_API_KEY' \
  -d '{
  "url": "https://www.example.com/path/to/your/ticket_file.pdf",
}'

The following an example of a normal (non-legacy) output:

{
  "tickets": [
    {
      "page_number": 1,  // Page number in the PDF for this ticket
      "producer": "Ticketmaster",  // Ticket's producer
      "buyer_id": "ABC123",  // Producer's ID for the buyer
      "buyer_name": "John Doe",  // Buyer's name
      "buyer_type": "A1B",  // Type of buyer as specified by producer
      "order_date": "YYYY-MM-DDTHH:MM:SS",  // Datetime the ticket was purchased
      "order_id": "ABCD - 123456",  // Order ID specified by producer
      "event_name": "Generic Event Spectacular",  // Name of the event
      "event_date": "YYYY-MM-DDTHH:MM:SS",  // Datetime of the event
      "venue_name": "Awesome Venue",  // Name of the venue
      "section": "100",  // Section location of ticket
      "row": "A",  // Row location of ticket
      "seat": "1",  // Seat location of ticket
      "portal": "Gate A",  // Best entrance for ticket location
      "disclosures": [  // Any disclosures specified on ticket
        {
          "id": 27,  // Internal ID for this disclosure string
          "string": "lim.vu",  // Raw disclosure found in ticket
          "normalized": "Limited View"  // Normalized version of disclosure
        }
      ],
      "barcodes": [  // Any barcode data found on ticket
        {
          "data": "ABC123ABC123",  // Decoded barcode data
          "type": "ITF"  // Type of barcode
        }
      ]
    }
  ]
}

The following is an example of an output if given the "async" option:

{
  "job_id": "db3d0f36-c57f-45f6-9fc6-8cc1f782352d"
}

Description

The decoder function enables the extraction of ticket information (e.g. seat number, venue, and date) from an event ticket in PDF format.

HTTP Request

POST https://apis.dti1ticketapps.com/pdfs/v1/decoder/

JSON Body

Required

Key Description
url URL of the ticket PDF file to decode.

Optional

Key Type Default Effect
async bool false If true: Immediately return with a job ID to be used in Job Status endpoint.

Possible Return Payload Values

The following is a glossary of possible return values for various keys in the return payload.

Barcode Type

Type Description
AZTEC Aztec 2D barcode format
CODABAR CODABAR 1D format.
CODE_128 Code 128 1D format.
CODE_39 Code 39 1D format.
CODE_93 Code 93 1D format.
DATA_MATRIX Data Matrix 2D barcode format.
EAN_13 EAN-13 1D format.
EAN_8 EAN-8 1D format.
ITF ITF (Interleaved Two of Five) 1D format.
MAXICODE MaxiCode 2D barcode format.
PDF_417 PDF417 format.
QR_CODE QR Code 2D barcode format.
RSS_14 RSS 14
RSS_EXPANDED RSS EXPANDED
UPC_A UPC-A 1D format.
UPC_E UPC-E 1D format.
UPC_EAN_EXTENSION UPC/EAN extension format.

GET /v1/decoder/{job_id}

import requests

response = requests.get(
  'https://apis.dti1ticketapps.com/pdfs/v1/decoder/{job_id}/',
  headers={
    'x-api-key': 'YOUR_API_KEY'
  }
)
curl -X GET \
  https://apis.dti1ticketapps.com/pdfs/v1/decoder/{job_id}/ \
  -H 'x-api-key: YOUR_API_KEY'

The above command returns JSON structured like this:

{
  "job_id": "{job_id}",
  "status": "SUCCEEDED",
  "tickets": [
    {
      "page_number": 1,  // Page number in the PDF for this ticket
      "producer": "Ticketmaster",  // Ticket's producer
      "buyer_id": "ABC123",  // Producer's ID for the buyer
      "buyer_name": "John Doe",  // Buyer's name
      "buyer_type": "A1B",  // Type of buyer as specified by producer
      "order_date": "YYYY-MM-DDTHH:MM:SS",  // Datetime the ticket was purchased
      "order_id": "ABCD - 123456",  // Order ID specified by producer
      "event_name": "Generic Event Spectacular",  // Name of the event
      "event_date": "YYYY-MM-DDTHH:MM:SS",  // Datetime of the event
      "venue_name": "Awesome Venue",  // Name of the venue
      "section": "100",  // Section location of ticket
      "row": "A",  // Row location of ticket
      "seat": "1",  // Seat location of ticket
      "portal": "Gate A",  // Best entrance for ticket location
      "disclosures": [  // Any disclosures specified on ticket
        {
          "id": 27,  // Internal ID for this disclosure string
          "string": "lim.vu",  // Raw disclosure found in ticket
          "normalized": "Limited View"  // Normalized version of disclosure
        }
      ],
      "barcodes": [  // Any barcode data found on ticket
        {
          "data": "ABC123ABC123",  // Decoded barcode data
          "type": "ITF"  // Type of barcode
        }
      ]
    }
  ]
}

Description

Get the execution status of a decoder job run with the async option.

HTTP Request

GET https://apis.dti1ticketapps.com/pdfs/v1/decoder/{job_id}/

URL Path Parameters

Parameter Description
job_id The ID of the job of interest.

POST /v1/splitter

import requests

response = requests.post(
  'https://apis.dti1ticketapps.com/pdfs/v1/splitter/',
  headers={
    'x-api-key': 'YOUR_API_KEY'
  },
  json={
    'url': 'https://www.example.com/path/to/your/ticket_file.pdf'
  }
)
curl -X POST \
  https://apis.dti1ticketapps.com/pdfs/v1/splitter/ \
  -H 'x-api-key: YOUR_API_KEY' \
  -d '{
  "url": "https://www.example.com/path/to/your/ticket_file.pdf",
}'

Output:

{
  "job_id": "{job_id}"
}

Description

The splitter function is able to split a multi-page PDF file, generally consisting of multiple PDF event tickets, into individual PDFs/tickets.

This request returns immediately with a job ID that you need to use to poll with using the GET request below.

HTTP Request

POST https://apis.dti1ticketapps.com/pdfs/v1/splitter/

JSON Body

Required

Key Description
url URL of the ticket PDF file to split.

GET /v1/splitter/{job_id}

import requests

response = requests.get(
  'https://apis.dti1ticketapps.com/pdfs/v1/splitter/{job_id}/',
  headers={
    'x-api-key': 'YOUR_API_KEY'
  }
)
curl -X GET \
  https://apis.dti1ticketapps.com/pdfs/v1/splitter/{job_id}/ \
  -H 'x-api-key: YOUR_API_KEY'

Output:

{
  "job_id": "{job_id}",
  "status": "SUCCEEDED",
  "pdf_urls": ["https://www.example.com/path/to/your/ticket_page_1.pdf", "https://www.example.com/path/to/your/ticket_page_2.pdf", "etc"]
}

Description

Get the status of a splitter job. This is a long poll request that will wait about 25 seconds for the job to complete if it is still status "RUNNING" before returning to you. If the status is "SUCCEEDED" or "FAILED" it will return immediately.

The URLs you get in the response are S3 presigned URLs and expire after 1 hour, so you'll have to download them all if you wish to persist them.

HTTP Request

GET https://apis.dti1ticketapps.com/pdfs/v1/splitter/{job_id}/

URL Path Parameters

Parameter Description
job_id The ID of the job of interest.

POST /v1/merger

import requests

response = requests.post(
  'https://apis.dti1ticketapps.com/pdfs/v1/merger/',
  headers={
    'x-api-key': 'YOUR_API_KEY'
  },
  json={
    'urls': ['https://www.example.com/path/to/your/ticket_page_1.pdf', 'https://www.example.com/path/to/your/ticket_page_2.pdf', 'etc']
  }
)
curl -X POST \
  https://apis.dti1ticketapps.com/pdfs/v1/merger/ \
  -H 'x-api-key: YOUR_API_KEY' \
  -d '{
  "urls": ["https://www.example.com/path/to/your/ticket_page_1.pdf", "https://www.example.com/path/to/your/ticket_page_2.pdf", "etc"]
}'

Output:

{
  "job_id": "{job_id}",
  "status": "SUCCEEDED",
  "url": "https://{s3_presigned_url_to_merged_pdf}",
  "error": ""
}

Description

A reverse function from the splitter job, the merger function is able to merge PDF event tickets into single PDF file.

If the job is unable to complete within 25 seconds, you will receive a response with status "RUNNING" and will have to poll for the result (see request below).

If the status is "FAILED", there will be an error message in the "error" field.

The URL you get in the response is an S3 presigned URL and expires after 1 hour, so you'll have to download it if you need it to persist.

HTTP Request

POST https://apis.dti1ticketapps.com/pdfs/v1/merger/

JSON Body

Required

Key Description
urls List of URLs of ticket PDF files to merge.

GET /v1/merger/{job_id}

import requests

response = requests.get(
  'https://apis.dti1ticketapps.com/pdfs/v1/merger/{job_id}/',
  headers={
    'x-api-key': 'YOUR_API_KEY'
  }
)
curl -X GET \
  https://apis.dti1ticketapps.com/pdfs/v1/merger/{job_id}/ \
  -H 'x-api-key: YOUR_API_KEY'

Output:

{
  "job_id": "{job_id}",
  "status": "SUCCEEDED",
  "pdf_urls": "https://{s3_presigned_url_to_merged_pdf}",
  "error": ""
}

Description

Get the status of a merger job. This is a long poll request that will wait about 25 seconds for the job to complete if it is still status "RUNNING" before returning to you. If the status is "SUCCEEDED" or "FAILED" it will return immediately.

HTTP Request

GET https://apis.dti1ticketapps.com/pdfs/v1/merger/{job_id}/

URL Path Parameters

Parameter Description
job_id The ID of the job of interest.

Broadcast Inventory Management

Marketplace Deletes

MPDeleter is a 1Ticket service that deletes a listing from multiple marketplaces.

DELETE /mpdeleter/v2

import requests
import json

payload = {
    'user_id': 'YOUR 1TICKET USERID',
    'listing_id': 'POS Listing ID',
    'marketplaces': ['list', 'of', 'marketplaces', 'to', 'delete', 'from'],
    'inverse': False
}

response = requests.delete(
  'https://apis.dti1ticket.com/mpdeleter/v2',
  headers={
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
  },
  data=json.dumps(payload)
)
curl -X DELETE \
  https://apis.dti1ticket.com/mpdeleter/v2 \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type': 'application/json' \
  -d '{
    'user_id': 'YOUR 1TICKET USERID',
    'listing_id': 'POS Listing ID',
    'marketplaces': ['list', 'of', 'marketplaces', 'to', 'delete', 'from'],
    'inverse': False
  }'

The following an example of a successful output:

{
    "statusCode": 200,
    "results": [
        {
            "marketplace": "TicketMonster",
            "status": "fail",
            "message": "Market place TicketMonster not supported.",
            "statusCode": 500,
            "detail": "Market place TicketMonster not supported."
        },
        {
            "marketplace": "Skybox",
            "status": "fail",
            "message": "Market place Skybox not supported.",
            "statusCode": 500,
            "detail": "Market place Skybox not supported."
        },
        {
            "marketplace": "SeatSmart",
            "status": "fail",
            "message": "Market place SeatSmart not supported.",
            "statusCode": 500,
            "detail": "Market place SeatSmart not supported."
        },
        {
            "marketplace": "FanXchange",
            "status": "fail",
            "message": "Market place FanXchange not supported.",
            "statusCode": 500,
            "detail": "Market place FanXchange not supported."
        },
        {
            "statusCode": 404,
            "marketplaceid": "25",
            "status": "fail",
            "detail": "Not Found",
            "marketplace": "Gametime"
        },
        {
            "statusCode": 200,
            "marketplaceid": "41",
            "status": "success",
            "detail": "deleted",
            "marketplace": "SeatGeek"
        },
        {
            "statusCode": 200,
            "marketplaceid": "4",
            "status": "success",
            "detail": "Successfully deleted listing.",
            "marketplace": "Vivid"
        }
    ]
}

Error responses:

{
  "message": "Invalid input: user_id and listing_id are required."
}
{
  "message": "Unauthorized"
}
{
  "message": "Forbidden."
}

Description

Deletes listings from marketplaces using a POS listing ID.

HTTP Request

DELETE https://apis.dti1ticket.com/mpdeleter/v2

JSON Body

Required

Key Description Location Required
Authorization API Key provided by 1ticket header true
user_id user_id provided by 1ticket body true
listing_id POS listing id body true
marketplaces List of marketplaces to delete from body false (deletes from all if empty list or not proveded)
inverse If true, deletes from all marketplaces not in "marketplaces" body false (default is false)

StubHub Updates

StubHub Sync X (shsyncx) synchronizes with StubHub marketplace listings. Given an inventory CSV file, shsyncx finds the differences and calls StubHub APIs to broadcast the changes.

POST /v1/item

import requests
import json

response = requests.post(
  'https://apis.dti1ticketapps.com/shsyncx/v1/item',
  headers={
    'x-api-key': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
  },
  data=json.dumps({
      "user_id": 9147,
      "ticket_id": "23140895",
      "currency": "USD",
      "do_predeliver": true,
      "event_date": "08/23/2018",
      "event_name": "EventName",
      "event_time": "07:05 PM",
      "first_seat": "105",
      "has_barcodes": true,
      "has_edit": true,
      "has_pdf": false,
      "hide_seats": true,
      "in_hand_date": "2018-03-28",
      "internal_action": null,
      "last_seat": "108",
      "notes": null,
      "price": "133.0",
      "quantity": 4,
      "row": "10",
      "section": "127",
      "split_option": "Split Type",
      "split_quantity": "Split value",
      "venue_name": "Wrigley Field"
    })
)
curl -X POST \
  https://apis.dti1ticketapps.com/shsyncx/v1/item \
  -H 'x-api-key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
      "user_id": 9147,
      "ticket_id": "23140895",
      "currency": "USD",
      "do_predeliver": true,
      "event_date": "08/23/2018",
      "event_name": "EventName",
      "event_time": "07:05 PM",
      "first_seat": "105",
      "has_barcodes": true,
      "has_edit": true,
      "has_pdf": false,
      "hide_seats": true,
      "in_hand_date": "2018-03-28",
      "internal_action": null,
      "last_seat": "108",
      "notes": null,
      "price": "133.0",
      "quantity": 4,
      "row": "10",
      "section": "127",
      "split_option": "Split Type",
      "split_quantity": "Split value",
      "venue_name": "Wrigley Field"
    }'

Description

Used to update the price of a listing.

HTTP Request

POST https://apis.dti1ticketapps.com/shsyncx/v1/item

JSON Body

Body

Name Type Required
user_id integer Yes
ticket_id integer Yes
price string Yes
hide_seats boolean Yes
do_predeliver boolean Yes
has_pdf boolean Yes
has_barcodes boolean Yes
internal_action string (aka 1T_Action) Yes
has_edit boolean Yes
event_name string Yes
venue_name string Yes
event_date string ("MM/DD/YYYY") Yes
event_time string ("HH:MM %P") Yes
quantity integer Yes
section string Yes
row string Yes
first_seat string Yes
last_seat string Yes
notes string Yes
in_hand_date string ("YYYY-MM-DD") Yes
split_option string Yes
split_quantity integer Yes
electronic_transfer booleam or NULL No
sh_listing_id integer (akak stubhub_id) No
event_id integer or NULL No

POST /v2/item

import requests
import json

response = requests.post(
  'https://apis.dti1ticketapps.com/shsyncx/v2/item',
  headers={
    'x-api-key': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
  },
  data=json.dumps({
      "user_id": 9147,
      "ticket_id": 23140895,
      "price": "133.0",
    })
)
curl -X POST \
  https://apis.dti1ticketapps.com/shsyncx/v2/item \
  -H 'x-api-key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
      "user_id": 9147,
      "ticket_id": 23140895,
      "price": "133.0"
    }'

Description

Update price of a listing.

HTTP Request

POST https://apis.dti1ticketapps.com/shsyncx/v2/item

JSON Body

Body

Name Type Required
user_id integer Yes
ticket_id integer Yes
price string Yes

Sale Order Processing

DTI/1Ticket's sales order processing APIs enable ticket inventory to be reserved and invoiced out in the event of a sale.

POST HOLD

import requests
import json

response = requests.post(
  'https://apis.dti1ticketapps.com/sales/v1/{marketplace_name}',
  headers={
    'Content-Type': "application/json",
    'x-api-key' : "{your_token}"
  },
  data=json.dumps({
   "hold_length": 15,
   "order_id": "Marketplace OrderID",
   "section": "SECTION",
   "tickets": [
        {
            "row": "ROW",
            "seat": "SeatNumber",
        },
        {
            "row": "ROW",
            "seat": "SeatNumber"
        }
   ],
   "broker": "Broker indentifier",
   "listing_id": "POS Listing ID"
})
)

curl -X POST \
  'https://apis.dti1ticketapps.com/sales/v1/{marketplace_name}', \
  -H 'x-api-key" : "{your_token}' \
  -H 'content-type" : "application/json' \
  -d '
  {  
   "hold_length": 15,
   "order_id": "Marketplace OrderID",
   "section": "SECTION",
   "tickets": [
        {
            "row": "ROW",
            "seat": "SeatNumber",
        },
        {
            "row": "ROW",
            "seat": "SeatNumber"
        }
   ],
   "broker": "Broker indentifier",
   "listing_id": "POS Listing ID"
}
'

Description

Use this endpoint to request that 1Ticket reserve seats in a listing, thereby making them unavailable for purchase on other marketplaces. A sale must only be processed upon receiving a successful response from this endpoint.

HTTP Request

POST https://apis.dti1ticketapps.com/sales/v1/{marketplace_name}

Required

Key Description Type Required
x-api-key Token provided to the MP by 1ticket. string Yes
content-type application/json string Yes

JSON Body

Required

Key Description Type Required
order_id Marketplace's order id string Yes
hold_length The length of time (in minutes) the tickets should be reserved for (max 20 mins) integer Yes
section Section of requested tickets string Yes
broker Marketplace Broker ID or similar string Yes
listing_id POS listing id of the listing string Yes
tickets list of TicketModel list[TicketModel] Yes
predelivered Predelivery status of the listing bool No
delivery_option The fulfillment option of an order Enum: PDF/BARCODE/FLASH/HARD/MOBILE/MOBILE_TRANSFER No
in_hand_date The in hand date of the order (YYYY-MM-DD) string No

TicketModel

Key Description Type Required
row the row of the ticket seat string Yes
seat the seat number. Can be empty string for GA seats string No

Status Codes

HTTP Code Description Marketplace Actions
200 Successfully reserved requested tickets Continue processing sale
404 Requested listing could not be found Cancel the sale and delete the listing
400 Invalid seats / broker requested Cancel the sale
409 Listing could not be deleted from other marketplaces Cancel the sale
500 Internal error Cancel the sale

RELEASE HOLD

import requests
import json

response = requests.delete(
  'https://apis.dti1ticketapps.com/sales/v1/{marketplace_name}',
  headers={
    'Content-Type': "application/json",
    'x-api-key' : "{your_token}"
  },
  data=json.dumps({
   "order_id": "Marketplace OrderID",
   "broker": "Broker indentifier",
   "listing_id": "POS Listing ID"
})
)

curl -X DELETE \
  'https://apis.dti1ticketapps.com/sales/v1', \
  -H 'x-api-key" : "{your_token}' \
  -H 'content-type" : "application/json' \
  -d '
  {  
   "order_id": "Marketplace OrderID",
   "broker": "Broker indentifier",
   "listing_id": "POS Listing ID"
}
'

Description

Use this endpoint to request 1Ticket release the reserved seats in a listing.

HTTP Request

DELETE https://apis.dti1ticketapps.com/sales/v1/{marketplace_name}

Header

Required

Key Description Type Required
x-api-key Token provided to the MP by 1ticket. string Yes
content-type application/json string Yes

JSON Body

Required

Key Description Type Required
order_id Marketplace's order id string Yes
broker Marketplace Broker ID or similar string Yes
listing_id POS listing id of the listing string Yes
section Section of requested tickets string No
tickets list of TicketModel list[TicketModel] No
predelivered Predelivery status of the listing bool No
delivery_option The fulfillment option of an order Enum: PDF/BARCODE/FLASH/HARD/MOBILE/MOBILE_TRANSFER No
in_hand_date The in hand date of the order (YYYY-MM-DD) string No

TicketModel

Key Description Type Required
row the row of the ticket seat string Yes
seat the seat number. Can be empty string for GA seats string No

Status Codes

HTTP Code Description Marketplace Actions
200 Successfully released reserved tickets Cancel sale
404 Requested listing could not be found
400 Invalid seats / broker requested
500 Internal error

POST Invoice

import requests
import json

response = requests.post(
  'https://apis.dti1ticketapps.com/sales/v1/{marketplace_name}/invoice',
  headers={
    'Content-Type': "application/json",
    'x-api-key' : "{your_token}"
  },
  data=json.dumps({
   "order_id": "Marketplace OrderID",
   "predelivered":True,
   "delivery_option":"PDF",
   "payout": {
        "price": 35.5,
        "currency": "USD"
   },
   "section": "SECTION",
   "tickets": [
        {
            "row": "ROW",
            "seat": "SeatNumber",
        },
        {
            "row": "ROW",
            "seat": "SeatNumber"
        }
   ],
   "broker": "Broker indentifier",
   "listing_id": "POS Listing ID"
})
)

curl -X POST \
  'https://apis.dti1ticketapps.com/sales/v1/{marketplace_name}/invoice', \
  -H 'x-api-key" : "{your_token}' \
  -H 'content-type" : "application/json' \
  -d '
  {  
   "order_id": "Marketplace OrderID",
   "predelivered":True,
   "delivery_option":"PDF",
   "section": "SECTION",
   "payout": {
        "price": 35.5,
        "currency": "USD"
   },
   "tickets": [
        {
            "row": "ROW",
            "seat": "SeatNumber",
        },
        {
            "row": "ROW",
            "seat": "SeatNumber"
        }
   ],
   "broker": "Broker indentifier",
   "listing_id": "POS Listing ID"
}
'

Description

Use this endpoint to make an invoice request to 1Ticket so as to invoice it out in the broker member's point-of-sale. Upon receiving a successful response from 1Ticket for a purchase request the sale should be considered confirmed.

HTTP Request

POST https://apis.dti1ticketapps.com/sales/v1/{marketplace_name}/invoice

Header

Required

Key Description Type Required
x-api-key Token provided to the MP by 1ticket. string Yes
content-type application/json string Yes

JSON Body

Required

Key Description Type Required
order_id Marketplace's order id string Yes
predelivered Predelivery status of a listing bool Yes
delivery_option The fulfillment option of an order Enum: PDF/BARCODE/FLASH/HARD/MOBILE/MOBILE_TRANSFER Yes
payout Payout information for the order PayoutModel Yes
section Section of requested tickets string Yes
broker Marketplace Broker ID or similar string Yes
listing_id POS listing id of the listing string Yes
tickets list of TicketModel list[TicketModel] Yes
in_hand_date In hand date of the order (YYYY-MM-DD) string No

PayoutModel

Key Description Type Required
price Price of the tickets float Yes
currency Currency of the price string No (Defaults to USD)

TicketModel

Key Description Type Required
row the row of the ticket seat string Yes
seat the seat number. Can be empty string for GA seats string No

Status Codes

HTTP Code Description Marketplace Actions
200 Successfully invoiced requested tickets Continue processing sale
404 Requested listing could not be found Cancel the sale and delete the listing
400 Invalid seats / broker requested Cancel the sale
500 Internal error Cancel the sale

GET Sale status

import requests

response = requests.get(
  'https://apis.dti1ticketapps.com/sales/v1/{marketplace_name}/order',
  params={
    'user_id': "{1ticket_user_id}",
    'order_id': "{order_id}"
  },
  headers={
    'x-api-key' : "{your_token}"
  }
)

curl -X GET \
  'https://apis.dti1ticketapps.com/sales/v1/{marketplace_name}/order?user_id={1ticket_user_id}&order_id={order_id}' \
  -H 'x-api-key: {your_token}'
'

Description

This endpoint returns the status of any order on a marketplace. This includes orders not processed by 1Ticket/sales.

HTTP Request

GET https://apis.dti1ticketapps.com/sales/v1/{marketplace_name}/order

Headers

Key Description Type Required
x-api-key Token provided to the broker by 1ticket. string Yes

Parameters

Key Description Type Location Required
marketplace_name Name of the marketplace the order is on string Path Yes
user_id Your 1ticket user ID int Query Yes
order_id Order ID on the marketplace string Query Yes

Marketplaces supported

Name ID
Agora 52
EventInventory 3
FanXChange 15
Gametime 25
Goldstar 55
Seatgeek 41
SeatSmart 27
Stubhub 1
TicketEvolution 9
TicketMonster 20
TicketNetwork 2
Tickpick 16
Viagogo 12
Vivid 4

Post Sale Integration

Confirm Sale

Once we create an invoice in the broker member's POS, 1Ticket will notify you confirming the sale.

Inputs:

Outputs:

This call will be us acknowledging that we will be able to fill the sale. You can expect this call to happen within 15 mins of the purchase request you send us, often considerably faster.


Reject Sale

If we are unable to invoice out the seats requested, 1Ticket notifies you to cancel the sale using this endpoint.

Inputs:

Outputs:

The opposite of the confirm call, this will be 1Ticket letting you know that we will be unable to fill the sale, for example if the seats are not longer available. Please be aware this feature is not used by every broker member.


Fulfill Sale

After confirmation, we will upload PDFs or proof of transfer to you using this endpoint.

Inputs:

Outputs:

For a PDF sale, we will upload PDFs to this endpoint. For a transfer sale, we will be uploading a transfer ID as proof indicating a successful transfer to the buyer directly.


Generate Airbill

For a hard delivery order, 1Ticket downloads airbills from this endpoint in order to ship the tickets.

Inputs:

Outputs:

Once we are ready to ship tickets to the buyer, we will download shipping labels from this endpoint.


Get Order

1Ticket uses this endpoint to keep track of the status of an order over the course of the lifetime of the sale (Hold->Delivery).

Inputs:

Outputs:

Key Description Required
Order ID Identifier of the Sale Yes
Order Status Status of the sale - Pending (Unconfirmed), Confirmed (confirmed by 1ticket), Shipped (If you're tracking a hard shipment), Completed (buyer has tickets) Yes
In Hand Date Last date the sale can be filled Yes
Delivery Method Delivery type of the sale Yes
Order Date/time Date and time of the sale No
Event Name Name of the event the tickets are for No
Venue Name Name of the venue the tickets are in No
Event date/time Date and time of the event Nos
Quantity Number of tickets in the sale No
Section Section of the seats No
Row Row(s) of the seats No
Seats Seat numbers (array or comma separated string) No
Marketplace Listing id Marketplace identifier for the listing the tickets belong to No
External Listing id Identifier for the listing on the Broker's POS (provided in CSV) No
Payout The payout to the broker of the sale No
Buyer information First name, last name, email Yes for transfer

POST Catalogue sale

import requests

response = requests.get(
  'https://apis.dti1ticketapps.com/sales/v1/catalogue',
  json={
    "user_id": "1234",
    "order_id": "98765",
    "marketplace": "stubhub",
    "invoice_id": "11111",
    "seats": "1,2,3,4"
  },
  headers={
    'x-api-key' : "{your_token}",
    'Content-Type': "application/json"
  }
)

curl -X POST \
  'https://apis.dti1ticketapps.com/sales/v1/catalogue' \
  -H 'x-api-key: {your_token}' \
  -H 'Content-Type: application/json' \
  -d '{
    "user_id": "1234",
    "order_id": "98765",
    "marketplace": "stubhub",
    "invoice_id": "11111",
    "seats": "1,2,3,4"
}'

Description

This endpoint runs the catalogue job for provided sale info.

HTTP Request

POST https://apis.dti1ticketapps.com/sales/v1/catalogue

Headers

Key Description Type Required
x-api-key Token provided to the broker by 1ticket. string Yes
Content-Type application/json string Yes

JSON Body

Required

Key Type Description
user_id string 1Ticket user ID
order_id string order ID
marketplace string marketplace name (if marketplace ID not provided)
marketplace_id string marketplace ID (if marketplace name not provided)
invoice_id string invoice ID
seats string comma separated string of seat numbers

Optional

Key Type Description
listing_id string listing ID
recipient_info object Dictionary containing name and email
delivery_method string Delivery method for sale
fulfill_now bool Should try fulfill, default is true

Webhooks

Sale Notification

Description

This webhook must be a POST HTTP Request and will accept the following JSON

Possible messages

JSON Body

The following an example of a JSON body your webhook will receive:

{
    "message": "Invoice 12121221 created",
    "invoice": {
        "data": {
            "type": "sales",
            "id": 12121221,
            "attributes": {
                "sale_date": "2021-05-19T10:31:36.400000+00:00",
                "completed_date": null,
                "cancelled_date": null,
                "invoice_status": "Electronic Delivery",
                "cust_first_name": "fname",
                "cust_last_name": "lname",
                "ticket_quantity": 1,
                "total_cost": 182.00,
                "ROI": null,
                "ROI_percentage": null,
                "total": null,
                "commission": null,
                "amount_due": null,
                "total_sold": null,
                "net_profit": null,
                "profit_margin_percentage": null,
                "sns_status": "invoice with recipient update",
                "broker_direct": null,
                "buyer_po_id": "xx33",
                "items": {
                    "data": [
                        {
                            "type": "items",
                            "id": 2626262,
                            "attributes": {
                                "listing_id": 87878987,
                                "listing_historic_id": [
                                    "87878987"
                                ],
                                "section": "21",
                                "row": "8",
                                "seat": 4,
                                "item_status": "Sold",
                                "event_id": 655555,
                                "event_date": "2021-05-19T00:00:00+00:00",
                                "event_time": "07:20 PM",
                                "event_name": "New York Mets at Atlanta Braves",
                                "event_headliner": "Atlanta Braves",
                                "event_headliner_id": 101,
                                "event_headliner_type": "Sport",
                                "event_headliner_category": "MLB",
                                "venue_id": 35,
                                "venue_name": "Truist Park",
                                "venue_city": "Atlanta",
                                "venue_state": "GA",
                                "venue_country_code": "US",
                                "item_price": 10.00,
                                "item_sold_price": null,
                                "item_sold_price_usd": null,
                                "item_cost": 9.00,
                                "face": 9.00,
                                "location": "MOBILE_XFR",
                                "is_hard": false,
                                "external_notes": "Xfer MOBILE ENTRY. Scan your tickets from your phone for this event. Do not print these tickets",
                                "owner_notes": "",
                                "inhand": true,
                                "purchaser": null,
                                "order_number": null,
                                "payment_id": null,
                                "payment_status": "Unpaid",
                                "payment_date": null,
                                "owner": null,
                                "inhand_date": null,
                                "barcode": null
                            }
                        }
                    ]
                }
            },
            "links": {
                "self": "/v0/sales/12121221"
            }
        },
        "links": {
            "self": "/v0/sales/12121221"
        },
        "meta": {
            "total_data": 1
        }
    },
    "invoice_recipient": {
        "first_name": "me",
        "last_name": "R",
        "email": "me@mail.com"
    },
    "recipient": {
        "data": [
            {
                "type": "invoicerecipient",
                "id": 12121221,
                "attributes": {
                    "first_name": "me",
                    "last_name": "R",
                    "email": "me@mail.com",
                    "event_id": 655555,
                    "event_name": "New York Mets at Atlanta Braves",
                    "section": "21",
                    "row": "8",
                    "seat": "03"
                },
                "links": {
                    "self": "/v0/sales/12121221/recipient"
                }
            }
        ]
    }
}

Transfer Service

Primary Transfers

The inventory1ticket service handles transfers on primary seller marketplaces, ensuring tickets are transferred from the primary marketplace account to the end-user following a successful sale.

Supported primary sellers:

To access the endpoints below, an Authorization Token is required.

GET /public/v1/tickets

curl -X GET \
  'https://apis.dti1ticketapps.com/inventory1ticket/public/v1/tickets?date_from=2019-03-23&date_to=2019-03-24&event=diamondbacks&venue=scottsdale&section=215&row=N&seat=1' \
  -H 'Authorization: Bearer YOUR_AUTHORIZATION_TOKEN'
import requests

url = "https://apis.dti1ticketapps.com/inventory1ticket/public/v1/tickets"

querystring = {"date_from":"2019-03-23","date_to":"2019-03-24","event":"diamondbacks","venue":"scottsdale","section":"215","row":"N","seat":"1"}

payload = ""
headers = {
    'Authorization': "Bearer YOUR_AUTHORIZATION_TOKEN"
    }

response = requests.request("GET", url, data=payload, headers=headers, params=querystring)

print(response.text)

Successful Response

{
    "count": 1,
    "tickets": [
        {
            "id": 1111,
            "user_id": 8060,
            "account_id": 166889,
            "username": "10330707",
            "event": "Diamondbacks at Giants",
            "venue": "Scottsdale Stadium",
            "local_date": "2019-03-23T13:05:00",
            "section": "215",
            "row": "N",
            "seat": "1",
            "transferred": true,
            "expired": false
        }
    ]
}

Description

Filters inventory based on Event, Venue, Date Range, etc. Has support for pagination.

Headers

Key Required Description Example
Authorization One or the other Your API access token in the format 'Bearer {token}' Bearer 11b9932ffa3d4311be7a3fb677291ade
x-api-key One or the other Your API access token 11b9932ffa3d4311be7a3fb677291ade

Query Parameters

Name Required Location Description Examples
id No Query A single ticket ID or comma-separated list of ticket IDs to include. 1111/ 123,456
account_id No Query A single account ID or comma-separated list of account IDs, in which to search for tickets 166889 / 399315, 377806
date_from No Query Start date of date range to search in 2019-02-24/2019-01-04T11:00:00
date_to No Query End date of date range to search in 2019-02-25/2019-01-18T13:00:00
venue No Query The name of the venue being searched for. Does a case-insensitive substring search on the table. scottsdale
event No Query The event name being searched for. Does a case-insensitive substring search on the table giants
section No Query The section on the ticket. Must be an exact match. 215
row No Query Row on the ticket . Must be an exact match. K
seat No Query Seat on the ticket . Must be an exact match. 17
primary_id No Query Query based on the Marketplace-specific ticket ID, which is assumed to be unique within a marketplace host-ticket/SEA/22-12007/1550501685000/ESM0622/0x2E05000B
expired No Query Query for tickets that have the expired boolean flag set to a certain value true/false
page_size No Query Size of the page of tickets returned in the response. Defaults to a thousand 500
page No Query Page number starting from zero, defaults to zero 1

Output Body

Name Description Examples
count The total number of results matching the query 1
tickets A single page of tickets matching the query See below

Output Tickets Body

Name Description Examples
id ID of the ticket in the system. 1111
user_id User ID of the account owner 8060
account_id ID of the account containing the ticket 166889
username Username of the account containing the ticket 10330707
account_type Website/Portal in which the tickets are present Tickets.com
event Name of the Event Diamondbacks at Giants
venue Name of the Venue Scottsdale Stadium
local_date Date and time of the event, in the local timezone 2019-03-23T13:05:00"
section Section given on the ticket 215
row Row given on the ticket N
seat Seat given on the ticket 1
transferred Whether or not the given ticket has already been emailed within the system. Defaults to false, gets set to true whenever a successful transfer occurs. Gets set back to false in case of a successful recall true
expired The expired flag indicates whether or not the ticket is currently present in the account false

POST /public/v1/map

curl -X POST \
  https://apis.dti1ticketapps.com/inventory1ticket/public/v1/map \
  -H 'Authorization: Bearer YOUR_AUTHORIZATION_TOKEN' \
  -d '{
    "tickets": [{
            "event": "White Sox at Giants",
            "venue": "Scottsdale Stadium",
            "local_date": "2019-02-25T13:05:00",
            "section": "213",
            "row": "K",
            "seat": "17"
    }]
}'
import requests

url = "https://apis.dti1ticketapps.com/inventory1ticket/public/v1/map"

payload = "{\n\t\"tickets\": [{\n            \"event\": \"White Sox at Giants\",\n            \"venue\": \"Scottsdale Stadium\",\n            \"local_date\": \"2019-02-25T13:05:00\",\n            \"section\": \"213\",\n            \"row\": \"K\",\n            \"seat\": \"17\"\n\t}]\n}"
headers = {
    'Authorization': "Bearer YOUR_AUTHORIZATION_TOKEN"
    }

response = requests.request("POST", url, data=payload, headers=headers)

print(response.text)

Successful Response

{
    "user_id": 8060,
    "requests": [
        {
            "username": "10330707",
            "account_type": "Tickets.com",
            "account_id": 166889,
            "tickets": [
                {
                    "id": 1111,
                    "event": "White Sox at Giants",
                    "venue": "Scottsdale Stadium",
                    "local_date": "2019-02-25T13:05:00",
                    "section": "213",
                    "row": "K",
                    "seat": "17",
                    "transferred": false,
                    "expired": false
                }
            ]
        }
    ]
}

Description

This function maps a list of tickets to inventory stored in 1Ticket's system, returning the grouped transfer requests that would need to be made in order to transfer the tickets successfully.

If any of the tickets are missing, we will display an error message with status 400 instead. The contents of the error message will be the missing ticket.

Headers

Key Required Description Example
Authorization One or the other Your API access token in the format 'Bearer {token}' Bearer 11b9932ffa3d4311be7a3fb677291ade
x-api-key One or the other Your API access token 11b9932ffa3d4311be7a3fb677291ade

Input Body

Name Required Location Description Examples
force No Body Whether or not to force a transfer for already transferred/expired tickets true
tickets Yes Body A list of tickets to map into the inventory tables. Must contain at least one ticket. See below

Input Tickets Body

Name Required Location Description Examples
id No Body ID of the ticket in the system. This can be acquired by using the query tickets endpoint. (If this parameter is provided, none of the other parameters are required). 1111
event No Body Name of the event. Must be an exact match. White Sox at Giants
venue No Body Name of the venue. Must be an exact match. Scottsdale Stadium
local_date No Body Date & Time of the event. Only needs to be accurate within an hour. 2019-02-25T13:05:00
section No Body Section on the ticket. Must be an exact match. 213
row No Body Row on the ticket . Must be an exact match. K
seat No Body Seat on the ticket . Must be an exact match. 17

Output Body

Name Description Examples
user_id 1Ticket user ID 8060
requests A list of requests that should be made to transfer the tickets See below

Output Requests Body

Name Description Examples
username Account username 10330707
account_type Account website/portal Tickets.com
account_id ID of the account associated with the request 166889
tickets List of tickets from the account associated with the transfer See below

Output Tickets Body

Name Description Examples
id ID of the ticket in the system. 1111
event Name of the event. White Sox at Giants
venue Name of the venue. Scottsdale Stadium
local_date Date & Time of the event. 2019-02-25T13:05:00
section Section on the ticket. 213
row Row on the ticket . K
seat Seat on the ticket. 17
transferred Whether this ticket has been successfully transferred true
expired Whether this ticket is no longer associated with the given account false

POST /public/v1/transfer

curl -X POST \
  https://apis.dti1ticketapps.com/inventory1ticket/public/v1/transfer \
  -H 'Authorization: Bearer YOUR_AUTHORIZATION_TOKEN' \
  -d '{
    "order_id": "test1234",
    "invoice_id": "test223",
    "marketplace": "ticketmaster",
    "recipient_email": "jason@1ticket.com",
    "first_name": "Jason",
    "last_name": "Knieriem",
    "note": "Testing",
    "tickets": [{
            "event": "White Sox at Giants",
            "venue": "Scottsdale Stadium",
            "local_date": "2019-02-25T13:05:00",
            "section": "213",
            "row": "K",
            "seat": "17",
            "barcode": "843883426230857"
    }]
}'
import requests

url = "https://apis.dti1ticketapps.com/inventory1ticket/public/v1/transfer"

payload = {
    "order_id": "test1234",
    "invoice_id": "test223",
    "marketplace": "ticketmaster",
    "recipient_email": "jason@1ticket.com",
    "first_name": "Jason",
    "last_name": "Knieriem",
    "note": "Testing",
    "tickets": [{
            "event": "White Sox at Giants",
            "venue": "Scottsdale Stadium",
            "local_date": "2019-02-25T13:05:00",
            "section": "213",
            "row": "K",
            "seat": "17",
            "barcode": "660258794538"
    }]
}
headers = {
    'Authorization': "Bearer YOUR_AUTHORIZATION_TOKEN"
    }

response = requests.request("POST", url, json=payload, headers=headers)

print(response.text)

Successful Response

{
  "transfer_id": 19
}

Description

Initiates a transfer for a given order, recipient and list of tickets. Returns a transfer ID, which can be polled with the GET transfers endpoint.

Headers

Key Required Description Example
Authorization One or the other Your API access token in the format 'Bearer {token}' Bearer 11b9932ffa3d4311be7a3fb677291ade
x-api-key One or the other Your API access token 11b9932ffa3d4311be7a3fb677291ade

Query Parameters

Name Required Location Description Examples
upload_proof No Query Indicates if transfer service should try to upload proof of transfer to the marketplace. true/false

Input Body

Name Required Location Description Examples
order_id No Body ID of the order, provided by the marketplace abc123
invoice_id No Body ID of the invoice abc123
marketplace No Body Name of the marketplace on which the tickets were sold StubHub
recipient_email Yes Body Email Address of the Transfer Recipient xyz@1ticket.com
first_name Yes Body First Name of the Transfer Recipient XYZ
last_name Yes Body Last Name of the Transfer Recipient ABC
note No Body Note to attach to the transfer. This note gets sent to the Transfer Recipient Test Note
force No Body Whether or not to force a transfer for already transferred/expired tickets true
tickets Yes Body A list of tickets to map into the inventory tables. Must contain atleast one ticket. See below

Input Tickets Body

Name Required Location Description Examples
id No Body ID of the ticket in the system. This can be acquired by using the query tickets endpoint. (If this parameter is provided, none of the other parameters are required). 1111
event No Body Name of the event. Must be an exact match. White Sox at Giants
venue No Body Name of the venue. Must be an exact match. Scottsdale Stadium
local_date No Body Date & Time of the event. Only needs to be accurate within an hour. 2019-02-25T13:05:00
section No Body Section on the ticket. Must be an exact match. 213
row No Body Row on the ticket . Must be an exact match. K
seat No Body Seat on the ticket . Must be an exact match. 17
barcode No Body Barcode on the ticket . Must be an exact match. 660258794538

Note: fields { barcode, local_date, venue and event } are required when a transfer by barcode want to be attempt even when tickets are not in the database (Ticketmaster Only). Otherwise the tickets must exist in the database to execute the transfer.

Output Body

Name Description Examples
transfer_id ID of the Transfer, which can be used to poll 1

GET /public/v1/transfers

curl -X GET \
  'https://apis.dti1ticketapps.com/inventory1ticket/public/v1/transfers?id=18' \
  -H 'Authorization: Bearer YOUR_AUTHORIZATION_TOKEN' \
import requests

url = "https://apis.dti1ticketapps.com/inventory1ticket/public/v1/transfers"

querystring = {"id":"18"}

payload = ""
headers = {
    'Authorization': "Bearer YOUR_AUTHORIZATION_TOKEN"
    }

response = requests.request("GET", url, data=payload, headers=headers, params=querystring)

print(response.text)

Successful Response

{
    "count": 1,
    "transfers": [
        {
            "id": 18,
            "start_time": "2019-02-20T09:58:43.078739",
            "user_id": 8060,
            "order_id": "test1234",
            "invoice_id": "abc123",
            "marketplace": "stubhub",
            "recipient_email": "jason@1ticket.com",
            "recipient_first_name": "Jason",
            "recipient_last_name": "Knieriem",
            "note": "This is a Test",
            "status": "RECALLED",
            "status_code": 11,
            "mapping_error": null,
            "requests": [
                {
                    "id": 14,
                    "account_id": 166889,
                    "username": "10330707",
                    "account_type": "Tickets.com",
                    "status": "RECALLED",
                    "status_code": 11,
                    "transfer_job_id": "ed247193bf384d95b1d2fc31660747e7",
                    "fulfillment_id": "34971427",
                    "response": {
                        "transaction_id": "34971427",
                        "tickets": [
                            "663338312"
                        ]
                    },
                    "error_message": null,
                    "tickets": [
                        {
                            "id": 1111,
                            "event": "Diamondbacks at Giants",
                            "venue": "Scottsdale Stadium",
                            "local_date": "2019-03-23T13:05:00",
                            "section": "215",
                            "row": "N",
                            "seat": "1",
                            "transferred": false,
                            "expired": false
                        }
                    ]
                }
            ]
        }
    ]
}

Description

Filters transfers based on Transfer ID, Time Range, Recipient, Ticket information, etc. Has support for pagination.

Headers

Key Required Description Example
Authorization One or the other Your API access token in the format 'Bearer {token}' Bearer 11b9932ffa3d4311be7a3fb677291ade
x-api-key One or the other Your API access token 11b9932ffa3d4311be7a3fb677291ade

Query Parameters

Name Required Location Description Examples
id No Query Transfer ID 1
order_id No Query Order ID abc123
invoice_id No Query Invoice ID abc123
account_id No Query A single account ID or comma-separated list of account IDs, from which requests were made 166889 / 399315, 377806
date_time_from No Query Start date & time of transfer date & time range to search in 2019-02-12T13:00:00
date_time_to No Query End date & time of transfer date & time range to search in 2019-02-12T13:00:00
venue No Query The name of the venue for a ticket being transferred. Does a case-insensitive substring search on the table. scottsdale
event No Query The event name for a ticket being transferred. Does a case-insensitive substring search on the table giants
event_date_from No Query Start date of event date range to search in 2019-02-24
event_date_to No Query End date of event date range to search in 2019-02-25
section No Query The section for a ticket being transferred. Must be an exact match. 215
row No Query Row for a ticket being transferred . Must be an exact match. K
seat No Query Seat for a ticket being transferred . Must be an exact match. 17
page_size No Query Size of the page of tickets returned in the response. Defaults to a thousand 500
page No Query Page number starting from zero, defaults to zero 1

Output Body

Name Description Examples
count The total number of results matching the query 1
transfers A single page of transfers matching the query See below

Output Transfers Body

Name Description Examples
id Transfer ID 18
start_time Date & Time when the transfer was initiated, in UTC 2019-02-20T09:58:43.078739
user_id User ID of the owner of the tickets 8060
order_id Marketplace Order ID abc123
invoice_id Invoice ID abc123
marketplace Marketplace Name stubhub
recipient_email Email Address of the Transfer Recipient jason@1ticket.com
recipient_first_name First Name of the Transfer Recipient Jason
recipient_last_name Last Name of the Transfer Recipient Knieriem
note Note attached to the transfer, viewable by the Recipient Test Note
status Current status of the transfer See Transfer Statuses below
status_code Status Code of the current status See Transfer Statuses below
mapping_error Error message for failed attempts to map tickets into the database (status: FAILED_MAPPING) No Results Found
requests List of Requests made to primary marketplaces. Each request consists of a single account, with a list of tickets for each account. Requests are carried out independently, the attempt is only successful if all succeed. See below

Output Requests Body

Name Description Examples
id Request ID 14
account_id ID of the account associated with the request 166889
username Account username 10330707
account_type Account website/portal Tickets.com
transfer_type The method by which the transfer was carried out tradedesk, seatgeek, etc.
tradedesk_token If the transfer_type parameter is tradedesk, the token used to perform the transfer is included 7D9FD3E4BFE34EA9B20F0D0AEE905F5A
status Current status of the request See Request Statuses below
status_code Status Code of the current status See Request Statuses below
transfer_job_id Job ID of the transfer from the primary service b1df6b8388ae46f39f7aa8729d4cdad3
fulfillment_id Identifier that can be used to complete orders on a marketplace 34685265
response Response from the primary marketplace
error_message Error message for failed transfer requests (status: FAILED) Service error: Can not confirm transfer
tickets List of tickets from the account associated with the transfer See below

Output Tickets Body

Name Description Examples
id ID of the ticket in the system. 1111
event Name of the event. White Sox at Giants
venue Name of the venue. Scottsdale Stadium
local_date Date & Time of the event. 2019-02-25T13:05:00
section Section on the ticket. 213
row Row on the ticket . K
seat Seat on the ticket. 17
transferred Whether this ticket has been successfully transferred true
expired Whether this ticket is no longer associated with the given account false

Transfer Statuses

status_code status status_description
1 PENDING Transfer has been initiated.
10 EMAILED Transfer has been successfully emailed to recipient.
20 FAILED Transfer was unsuccessful.
22 PARTIAL Transfer is partially successful, i.e. One or more of the requests succeeded and one or more failed.
30 FAILED_MAPPING Transfer could not be initiated, Tickets were not found.
2 RECALLING Recall has been initiated.
11 RECALLED Transfer has been successfully recalled.
21 FAILED_RECALL Recall Attempt was unsuccessful.

Request Statuses

status_code status status_description
1 PENDING Transfer has been initiated.
10 EMAILED Transfer has been successfully emailed to recipient.
20 FAILED Transfer was unsuccessful.
2 RECALLING Recall has been initiated.
11 RECALLED Transfer has been successfully recalled.
21 FAILED_RECALL Recall Attempt was unsuccessful.
3 VERIFYING Verifying if tickets are still available for transfer.
12 VERIFIED Tickets requested for transfer were successfully verified.
36 FAILED_VERIFY Transfer could not be verified, tickets are not available for transfer.

POST /public/v1/recall

curl -X POST \
  https://apis.dti1ticketapps.com/inventory1ticket/public/v1/recall \
  -H 'Authorization: Bearer YOUR_AUTHORIZATION_TOKEN' \
  -d '{
    "transfer_id": 19
}'
import requests

url = "https://apis.dti1ticketapps.com/inventory1ticket/public/v1/recall"

payload = "{\n\t\"transfer_id\": 19\n}"
headers = {
    'Authorization': "Bearer YOUR_AUTHORIZATION_TOKEN",
    }

response = requests.request("POST", url, data=payload, headers=headers)

print(response.text)

Successful Response

{
    "transfer_id": 19
}

Description

Initiates a transfer recall attempt for a given transfer ID. After calling this endpoint, the transfer status can be retrieved using the GET transfers endpoint.

Headers

Key Required Description Example
Authorization One or the other Your API access token in the format 'Bearer {token}' Bearer 11b9932ffa3d4311be7a3fb677291ade
x-api-key One or the other Your API access token 11b9932ffa3d4311be7a3fb677291ade

Input Body

Name Required Location Description Examples
transfer_id Yes Body ID of the Transfer, which must be recalled 18

Output Body

Name Description Examples
transfer_id ID of the Transfer, which can be used to poll 18

POST public/v1/crawl/refresh

curl -X POST \
  https://apis.dti1ticketapps.com/inventory1ticket/public/v1/crawl/refresh \
  -H 'Authorization: Bearer YOUR_AUTHORIZATION_TOKEN' \
  -d '{
    "account_ids": [1234, 5678, ...]
  }'
import requests

url = "https://apis.dti1ticketapps.com/inventory1ticket/public/v1/crawl/refresh"

payload = {
    "account_ids": [1234, 5678, ...] # List of account ids to crawl
}
headers = {
    'x-api-key': "YOUR_API_KEY"
    }

response = requests.request("POST", url, json=payload, headers=headers)

print(response.text)

Successful Response

{
    "1234": {
        "job_id": "nw2n4lknwelkn2lfnsdg01",
        "err_msg": ""
    },
    "5678": {
        "job_id": "",
        "err_msg": "No credentials found."
    }
}

Description

Performs manual crawls of the associated primary accounts given a list of account IDs. Status is returned by account and all crawls direct information into the Inventory1ticket database.

Either user ID or list of account IDs is accepted. Providing both defaults to the user ID option.

Headers

Key Required Description Example
Authorization One or the other Your API access token in the format 'Bearer {token}' Bearer 11b9932ffa3d4311be7a3fb677291ade
x-api-key One or the other Your API access token 11b9932ffa3d4311be7a3fb677291ade

Input Body

Name Required Location Description Examples
account_ids Yes Body A list containing account ids to perform crawls [1234, 5678]

Output Body

Name Description Examples
account_id The status associated with the job. Account ID Body

Output Account ID Body

Name Description Examples
job_id The primary job id associated a successful job. nw2n4lknwelkn2lfnsdg01
err_msg The error message associated with a failed job. "No credentials found."

Recipient Data

The marketplaceapis API is a collection of tools that integrates with marketplaces to retrieve pertinent receipt data for transfer of tickets.

GET transfer/v1

import requests

response = requests.get(
  'https://apis.dti1ticketapps.com/marketplaceapis/transfer/v1',
  headers={
    'x-api-key': 'YOUR_API_KEY'
  },
  params={
    'marketplace_id': '1Ticket Marketplace ID',
    'user_id': '1Ticket User ID',
    'order_id': 'Marketplace Order ID'
  }
)
curl -X GET \
  https://apis.dti1ticketapps.com/marketplaceapis/transfer/v1?marketplace_id={}&user_id={}&order_id={} \
  -H 'x-api-key: YOUR_API_KEY'

The above command returns JSON structured like this:

{
    "order_number": "Marketplace Order ID",
    "vendor": "Marketplace Name",
    "email": "Buyer email address",
    "first_name": "Buyer first name",
    "last_name": "Buyer last name"
}   

Description

Get buyer information for a transfer order.

HTTP Request

GET https://apis.dti1ticketapps.com/marketplaceapis/transfer/v1?marketplace_id={}&user_id={}&order_id={}

URL Query Parameters

Parameter Description
marketplace_id 1Ticket Marketplace ID
user_id 1Ticket User ID
order_id Marketplace Order ID