StubHub E-Tickets API

The E-Tickets API from StubHub — 12 operation(s) for e-tickets.

Operations 18

POST /sellerlistings/{listingId}/eticketuploads Upload e-tickets for a seller listing #
GET /sellerlistings/{listingId}/eticketuploads List e-ticket uploads for a seller listing #
POST /events/{eventId}/eticketuploads Upload e-tickets for an event #
GET /events/{eventId}/eticketuploads List e-ticket uploads for an event #
GET /sellerlistings/{listingId}/etickets List e-tickets for a seller listing #
PATCH /sellerlistings/{listingId}/etickets Mark-back e-tickets from a seller listing #
POST /sellerlistings/{listingId}/etickets Upload and save e-tickets for a seller listing #
DELETE /sellerlistings/{listingId}/etickets/{ETicketId} Delete e-ticket from a seller listing #
DELETE /events/{eventId}/etickets/{eticketId} Delete e-ticket from an event #
GET /sellerlistings/{listingId}/markedbacketickets/{markedBackETicketId}/document Get marked back e-ticket file for seller listing #
POST /sales/{saleId}/eticketuploads Upload e-tickets or proof of transfer for a sale #
GET /sales/{saleId}/eticketuploads List e-ticket uploads for a sale #
GET /sales/{saleId}/etickets List e-tickets for a sale #
POST /sales/{saleId}/etickets Upload and save e-tickets for a sale #
DELETE /sales/{saleId}/etickets/{eticketId} Delete e-ticket from a sale #
GET /etickets/{eticketId}/thumbnail Get e-ticket thumbnail file #
GET /eticketuploads/{eticketUploadId}/document Get e-ticket upload file #
GET /etickets/{eticketId}/document Get e-ticket file #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/stubhub-e-tickets-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

stubhub-e-tickets-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: StubHub Account Addressess E Tickets API
  version: v2
  description: StubHub Account API — manage the authenticated user, their addresses, and payment methods.
  contact:
    name: StubHub API Support
    email: api.support@stubhub.com
    url: https://developer.stubhub.com/
  x-media-type: application/hal+json
servers:
- url: https://api.stubhub.net
  description: Production
- url: https://sandbox.api.stubhub.net
  description: Sandbox
security:
- oauth2: []
tags:
- name: E-Tickets
paths:
  /sellerlistings/{listingId}/eticketuploads:
    post:
      operationId: ETicket_UploadListingETicket
      summary: Upload e-tickets for a seller listing
      tags:
      - E-Tickets
      responses:
        '201':
          description: Success. Response is `application/hal+json`.
          content:
            application/hal+json: {}
        '400':
          description: Bad Request. Error `code` may be https_required, user_agent_required, invalid_request_body, or validation_failed.
          content:
            application/hal+json: {}
        '401':
          description: Unauthorized. The request is not authenticated.
          content:
            application/hal+json: {}
        '403':
          description: Forbidden. Error `code` may be insufficient_scope, invalid_seller_listing_action, create_listing_not_allowed, or invalid_delete.
          content:
            application/hal+json: {}
        '500':
          description: Internal Server Error (`internal_server_error`).
          content:
            application/hal+json: {}
      parameters:
      - name: listingId
        in: path
        required: true
        schema:
          type: string
      security:
      - oauth2:
        - write:sellerlistings
    get:
      operationId: ETicket_GetListingETicketUploads
      summary: List e-ticket uploads for a seller listing
      tags:
      - E-Tickets
      responses:
        '200':
          description: Success. Response is `application/hal+json`.
          content:
            application/hal+json: {}
        '400':
          description: Bad Request. Error `code` may be https_required, user_agent_required, invalid_request_body, or validation_failed.
          content:
            application/hal+json: {}
        '401':
          description: Unauthorized. The request is not authenticated.
          content:
            application/hal+json: {}
        '403':
          description: Forbidden. Error `code` may be insufficient_scope, invalid_seller_listing_action, create_listing_not_allowed, or invalid_delete.
          content:
            application/hal+json: {}
        '500':
          description: Internal Server Error (`internal_server_error`).
          content:
            application/hal+json: {}
      parameters:
      - name: listingId
        in: path
        required: true
        schema:
          type: string
      security:
      - oauth2:
        - read:sellerlistings
  /events/{eventId}/eticketuploads:
    post:
      operationId: ETicket_UploadEventETicket
      summary: Upload e-tickets for an event
      tags:
      - E-Tickets
      responses:
        '201':
          description: Success. Response is `application/hal+json`.
          content:
            application/hal+json: {}
        '400':
          description: Bad Request. Error `code` may be https_required, user_agent_required, invalid_request_body, or validation_failed.
          content:
            application/hal+json: {}
        '401':
          description: Unauthorized. The request is not authenticated.
          content:
            application/hal+json: {}
        '403':
          description: Forbidden. Error `code` may be insufficient_scope, invalid_seller_listing_action, create_listing_not_allowed, or invalid_delete.
          content:
            application/hal+json: {}
        '500':
          description: Internal Server Error (`internal_server_error`).
          content:
            application/hal+json: {}
      parameters:
      - name: eventId
        in: path
        required: true
        schema:
          type: string
      security:
      - oauth2:
        - write:sellerlistings
    get:
      operationId: ETicket_GetEventETicketUploads
      summary: List e-ticket uploads for an event
      tags:
      - E-Tickets
      responses:
        '200':
          description: Success. Response is `application/hal+json`.
          content:
            application/hal+json: {}
        '400':
          description: Bad Request. Error `code` may be https_required, user_agent_required, invalid_request_body, or validation_failed.
          content:
            application/hal+json: {}
        '401':
          description: Unauthorized. The request is not authenticated.
          content:
            application/hal+json: {}
        '403':
          description: Forbidden. Error `code` may be insufficient_scope, invalid_seller_listing_action, create_listing_not_allowed, or invalid_delete.
          content:
            application/hal+json: {}
        '500':
          description: Internal Server Error (`internal_server_error`).
          content:
            application/hal+json: {}
      parameters:
      - name: eventId
        in: path
        required: true
        schema:
          type: string
      security:
      - oauth2:
        - read:sellerlistings
  /sellerlistings/{listingId}/etickets:
    get:
      operationId: ETicket_GetListingETickets
      summary: List e-tickets for a seller listing
      tags:
      - E-Tickets
      responses:
        '200':
          description: Success. Response is `application/hal+json`.
          content:
            application/hal+json: {}
        '400':
          description: Bad Request. Error `code` may be https_required, user_agent_required, invalid_request_body, or validation_failed.
          content:
            application/hal+json: {}
        '401':
          description: Unauthorized. The request is not authenticated.
          content:
            application/hal+json: {}
        '403':
          description: Forbidden. Error `code` may be insufficient_scope, invalid_seller_listing_action, create_listing_not_allowed, or invalid_delete.
          content:
            application/hal+json: {}
        '500':
          description: Internal Server Error (`internal_server_error`).
          content:
            application/hal+json: {}
      parameters:
      - name: listingId
        in: path
        required: true
        schema:
          type: string
      security:
      - oauth2:
        - read:sellerlistings
    patch:
      operationId: ETicket_MarkBackETickets
      summary: Mark-back e-tickets from a seller listing
      tags:
      - E-Tickets
      responses:
        '200':
          description: Success. Response is `application/hal+json`.
          content:
            application/hal+json: {}
        '400':
          description: Bad Request. Error `code` may be https_required, user_agent_required, invalid_request_body, or validation_failed.
          content:
            application/hal+json: {}
        '401':
          description: Unauthorized. The request is not authenticated.
          content:
            application/hal+json: {}
        '403':
          description: Forbidden. Error `code` may be insufficient_scope, invalid_seller_listing_action, create_listing_not_allowed, or invalid_delete.
          content:
            application/hal+json: {}
        '500':
          description: Internal Server Error (`internal_server_error`).
          content:
            application/hal+json: {}
      parameters:
      - name: listingId
        in: path
        required: true
        schema:
          type: string
      security:
      - oauth2:
        - write:sellerlistings
    post:
      operationId: ETicket_PostListingETickets
      summary: Upload and save e-tickets for a seller listing
      tags:
      - E-Tickets
      responses:
        '201':
          description: Success. Response is `application/hal+json`.
          content:
            application/hal+json: {}
        '400':
          description: Bad Request. Error `code` may be https_required, user_agent_required, invalid_request_body, or validation_failed.
          content:
            application/hal+json: {}
        '401':
          description: Unauthorized. The request is not authenticated.
          content:
            application/hal+json: {}
        '403':
          description: Forbidden. Error `code` may be insufficient_scope, invalid_seller_listing_action, create_listing_not_allowed, or invalid_delete.
          content:
            application/hal+json: {}
        '500':
          description: Internal Server Error (`internal_server_error`).
          content:
            application/hal+json: {}
      parameters:
      - name: listingId
        in: path
        required: true
        schema:
          type: string
      security:
      - oauth2:
        - write:sellerlistings
  /sellerlistings/{listingId}/etickets/{ETicketId}:
    delete:
      operationId: ETicket_DeleteListingETicket
      summary: Delete e-ticket from a seller listing
      tags:
      - E-Tickets
      responses:
        '204':
          description: Deleted.
        '400':
          description: Bad Request. Error `code` may be https_required, user_agent_required, invalid_request_body, or validation_failed.
          content:
            application/hal+json: {}
        '401':
          description: Unauthorized. The request is not authenticated.
          content:
            application/hal+json: {}
        '403':
          description: Forbidden. Error `code` may be insufficient_scope, invalid_seller_listing_action, create_listing_not_allowed, or invalid_delete.
          content:
            application/hal+json: {}
        '500':
          description: Internal Server Error (`internal_server_error`).
          content:
            application/hal+json: {}
      parameters:
      - name: listingId
        in: path
        required: true
        schema:
          type: string
      - name: ETicketId
        in: path
        required: true
        schema:
          type: string
      security:
      - oauth2:
        - write:sellerlistings
  /events/{eventId}/etickets/{eticketId}:
    delete:
      operationId: ETicket_DeleteEventETicket
      summary: Delete e-ticket from an event
      tags:
      - E-Tickets
      responses:
        '204':
          description: Deleted.
        '400':
          description: Bad Request. Error `code` may be https_required, user_agent_required, invalid_request_body, or validation_failed.
          content:
            application/hal+json: {}
        '401':
          description: Unauthorized. The request is not authenticated.
          content:
            application/hal+json: {}
        '403':
          description: Forbidden. Error `code` may be insufficient_scope, invalid_seller_listing_action, create_listing_not_allowed, or invalid_delete.
          content:
            application/hal+json: {}
        '500':
          description: Internal Server Error (`internal_server_error`).
          content:
            application/hal+json: {}
      parameters:
      - name: eventId
        in: path
        required: true
        schema:
          type: string
      - name: eticketId
        in: path
        required: true
        schema:
          type: string
      security:
      - oauth2:
        - write:sellerlistings
  /sellerlistings/{listingId}/markedbacketickets/{markedBackETicketId}/document:
    get:
      operationId: ETicketDocument_GetMarkedBackETicketDocument
      summary: Get marked back e-ticket file for seller listing
      tags:
      - E-Tickets
      responses:
        '200':
          description: Success. Response is `application/hal+json`.
          content:
            application/hal+json: {}
        '400':
          description: Bad Request. Error `code` may be https_required, user_agent_required, invalid_request_body, or validation_failed.
          content:
            application/hal+json: {}
        '401':
          description: Unauthorized. The request is not authenticated.
          content:
            application/hal+json: {}
        '403':
          description: Forbidden. Error `code` may be insufficient_scope, invalid_seller_listing_action, create_listing_not_allowed, or invalid_delete.
          content:
            application/hal+json: {}
        '500':
          description: Internal Server Error (`internal_server_error`).
          content:
            application/hal+json: {}
      parameters:
      - name: listingId
        in: path
        required: true
        schema:
          type: string
      - name: markedBackETicketId
        in: path
        required: true
        schema:
          type: string
      security:
      - oauth2:
        - read:sellerlistings
  /sales/{saleId}/eticketuploads:
    post:
      operationId: ETicket_UploadSaleETicket
      summary: Upload e-tickets or proof of transfer for a sale
      tags:
      - E-Tickets
      responses:
        '201':
          description: Success. Response is `application/hal+json`.
          content:
            application/hal+json: {}
        '400':
          description: Bad Request. Error `code` may be https_required, user_agent_required, invalid_request_body, or validation_failed.
          content:
            application/hal+json: {}
        '401':
          description: Unauthorized. The request is not authenticated.
          content:
            application/hal+json: {}
        '403':
          description: Forbidden. Error `code` may be insufficient_scope, invalid_seller_listing_action, create_listing_not_allowed, or invalid_delete.
          content:
            application/hal+json: {}
        '500':
          description: Internal Server Error (`internal_server_error`).
          content:
            application/hal+json: {}
      parameters:
      - name: saleId
        in: path
        required: true
        schema:
          type: string
      security:
      - oauth2:
        - write:sales
    get:
      operationId: ETicket_GetSaleETicketUploads
      summary: List e-ticket uploads for a sale
      tags:
      - E-Tickets
      responses:
        '200':
          description: Success. Response is `application/hal+json`.
          content:
            application/hal+json: {}
        '400':
          description: Bad Request. Error `code` may be https_required, user_agent_required, invalid_request_body, or validation_failed.
          content:
            application/hal+json: {}
        '401':
          description: Unauthorized. The request is not authenticated.
          content:
            application/hal+json: {}
        '403':
          description: Forbidden. Error `code` may be insufficient_scope, invalid_seller_listing_action, create_listing_not_allowed, or invalid_delete.
          content:
            application/hal+json: {}
        '500':
          description: Internal Server Error (`internal_server_error`).
          content:
            application/hal+json: {}
      parameters:
      - name: saleId
        in: path
        required: true
        schema:
          type: string
      security:
      - oauth2:
        - read:sales
  /sales/{saleId}/etickets:
    get:
      operationId: ETicket_GetSaleETickets
      summary: List e-tickets for a sale
      tags:
      - E-Tickets
      responses:
        '200':
          description: Success. Response is `application/hal+json`.
          content:
            application/hal+json: {}
        '400':
          description: Bad Request. Error `code` may be https_required, user_agent_required, invalid_request_body, or validation_failed.
          content:
            application/hal+json: {}
        '401':
          description: Unauthorized. The request is not authenticated.
          content:
            application/hal+json: {}
        '403':
          description: Forbidden. Error `code` may be insufficient_scope, invalid_seller_listing_action, create_listing_not_allowed, or invalid_delete.
          content:
            application/hal+json: {}
        '500':
          description: Internal Server Error (`internal_server_error`).
          content:
            application/hal+json: {}
      parameters:
      - name: saleId
        in: path
        required: true
        schema:
          type: string
      security:
      - oauth2:
        - read:sales
    post:
      operationId: ETicket_PostSaleETickets
      summary: Upload and save e-tickets for a sale
      tags:
      - E-Tickets
      responses:
        '201':
          description: Success. Response is `application/hal+json`.
          content:
            application/hal+json: {}
        '400':
          description: Bad Request. Error `code` may be https_required, user_agent_required, invalid_request_body, or validation_failed.
          content:
            application/hal+json: {}
        '401':
          description: Unauthorized. The request is not authenticated.
          content:
            application/hal+json: {}
        '403':
          description: Forbidden. Error `code` may be insufficient_scope, invalid_seller_listing_action, create_listing_not_allowed, or invalid_delete.
          content:
            application/hal+json: {}
        '500':
          description: Internal Server Error (`internal_server_error`).
          content:
            application/hal+json: {}
      parameters:
      - name: saleId
        in: path
        required: true
        schema:
          type: string
      security:
      - oauth2:
        - write:sales
  /sales/{saleId}/etickets/{eticketId}:
    delete:
      operationId: ETicket_DeleteSaleETicket
      summary: Delete e-ticket from a sale
      tags:
      - E-Tickets
      responses:
        '204':
          description: Deleted.
        '400':
          description: Bad Request. Error `code` may be https_required, user_agent_required, invalid_request_body, or validation_failed.
          content:
            application/hal+json: {}
        '401':
          description: Unauthorized. The request is not authenticated.
          content:
            application/hal+json: {}
        '403':
          description: Forbidden. Error `code` may be insufficient_scope, invalid_seller_listing_action, create_listing_not_allowed, or invalid_delete.
          content:
            application/hal+json: {}
        '500':
          description: Internal Server Error (`internal_server_error`).
          content:
            application/hal+json: {}
      parameters:
      - name: saleId
        in: path
        required: true
        schema:
          type: string
      - name: eticketId
        in: path
        required: true
        schema:
          type: string
      security:
      - oauth2:
        - write:sales
  /etickets/{eticketId}/thumbnail:
    get:
      operationId: ETicketDocument_GetETicketThumbnail
      summary: Get e-ticket thumbnail file
      tags:
      - E-Tickets
      responses:
        '200':
          description: Success. Response is `application/hal+json`.
          content:
            application/hal+json: {}
        '400':
          description: Bad Request. Error `code` may be https_required, user_agent_required, invalid_request_body, or validation_failed.
          content:
            application/hal+json: {}
        '401':
          description: Unauthorized. The request is not authenticated.
          content:
            application/hal+json: {}
        '403':
          description: Forbidden. Error `code` may be insufficient_scope, invalid_seller_listing_action, create_listing_not_allowed, or invalid_delete.
          content:
            application/hal+json: {}
        '500':
          description: Internal Server Error (`internal_server_error`).
          content:
            application/hal+json: {}
      parameters:
      - name: eticketId
        in: path
        required: true
        schema:
          type: string
      security:
      - oauth2:
        - read:sales
  /eticketuploads/{eticketUploadId}/document:
    get:
      operationId: ETicketDocument_GetETicketUploadDocument
      summary: Get e-ticket upload file
      tags:
      - E-Tickets
      responses:
        '200':
          description: Success. Response is `application/hal+json`.
          content:
            application/hal+json: {}
        '400':
          description: Bad Request. Error `code` may be https_required, user_agent_required, invalid_request_body, or validation_failed.
          content:
            application/hal+json: {}
        '401':
          description: Unauthorized. The request is not authenticated.
          content:
            application/hal+json: {}
        '403':
          description: Forbidden. Error `code` may be insufficient_scope, invalid_seller_listing_action, create_listing_not_allowed, or invalid_delete.
          content:
            application/hal+json: {}
        '500':
          description: Internal Server Error (`internal_server_error`).
          content:
            application/hal+json: {}
      parameters:
      - name: eticketUploadId
        in: path
        required: true
        schema:
          type: string
      security:
      - oauth2:
        - read:sales
  /etickets/{eticketId}/document:
    get:
      operationId: ETicketDocument_GetETicketDocument
      summary: Get e-ticket file
      tags:
      - E-Tickets
      responses:
        '200':
          description: Success. Response is `application/hal+json`.
          content:
            application/hal+json: {}
        '400':
          description: Bad Request. Error `code` may be https_required, user_agent_required, invalid_request_body, or validation_failed.
          content:
            application/hal+json: {}
        '401':
          description: Unauthorized. The request is not authenticated.
          content:
            application/hal+json: {}
        '403':
          description: Forbidden. Error `code` may be insufficient_scope, invalid_seller_listing_action, create_listing_not_allowed, or invalid_delete.
          content:
            application/hal+json: {}
        '500':
          description: Internal Server Error (`internal_server_error`).
          content:
            application/hal+json: {}
      parameters:
      - name: eticketId
        in: path
        required: true
        schema:
          type: string
      security:
      - oauth2:
        - read:sales
components:
  securitySchemes:
    oauth2:
      type: oauth2
      description: OAuth2. All API requests must be authenticated.
      flows:
        clientCredentials:
          tokenUrl: https://account.stubhub.com/oauth2/token
          scopes:
            read:events: Read-only access to events on the StubHub platform.
        authorizationCode:
          authorizationUrl: https://account.stubhub.com/authorize
          tokenUrl: https://account.stubhub.com/oauth2/token
          refreshUrl: https://account.stubhub.com/oauth2/token
          scopes:
            read:events: Read-only access to events on the StubHub platform.
            read:payment: Read-only access to the user's payments.
            read:sales: Read access to the user's sales.
            write:sales: Write access to the user's sales (confirm and fulfill sales).
            read:sellerlistings: Read access to the user's listings.
            write:sellerlistings: Write access to the user's listings (create and update listings).
            read:webhooks: Read access to the user's webhooks.
            write:webhooks: Write access to the user's webhooks.
            write:requestedevents: Write access to the user's requested events.