Xerox Sites API

Site discovery and management for print locations

OpenAPI Specification

xerox-sites-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Xerox Public Print EULA Sites API
  description: REST API for managing print jobs through the Xerox Public Print Service. Provides endpoints for job creation, status monitoring, site discovery, provider management, EULA handling, and print history management. All secure calls require xrxauth, user-email, and appid headers. If user-email is omitted the request is treated as an application request.
  version: 5.5.0
  contact:
    name: Xerox Developer Program
    url: https://www.xerox.com/en-us/about/developer-program
    email: xerox.global.developer.program@xerox.com
  termsOfService: https://www.xerox.com/en-us/about/legal
servers:
- url: https://publicprintapi.services.xerox.com/api/v1
  description: Xerox Public Print API Production Server
security:
- xrxauth: []
tags:
- name: Sites
  description: Site discovery and management for print locations
paths:
  /Sites:
    get:
      operationId: getSite
      summary: Get Site
      description: Retrieves details of a specific print site.
      tags:
      - Sites
      security:
      - xrxauth: []
        appId: []
      parameters:
      - name: id
        in: query
        required: true
        description: The unique identifier of the site
        schema:
          type: string
      - name: filterDeleted
        in: query
        required: false
        description: Filter out deleted sites
        schema:
          type: boolean
      responses:
        '200':
          description: Site details retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Site'
        '404':
          description: Site not found
    put:
      operationId: createSite
      summary: Create Site
      description: Creates a new print site.
      tags:
      - Sites
      security:
      - xrxauth: []
        appId: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Site'
      responses:
        '201':
          description: Site created successfully
        '400':
          description: Bad request
    post:
      operationId: updateSite
      summary: Update Site
      description: Updates an existing print site.
      tags:
      - Sites
      security:
      - xrxauth: []
        appId: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Site'
      responses:
        '200':
          description: Site updated successfully
        '400':
          description: Bad request
    delete:
      operationId: deleteSite
      summary: Delete Site
      description: Deletes a specified print site.
      tags:
      - Sites
      security:
      - xrxauth: []
        appId: []
      parameters:
      - name: id
        in: query
        required: true
        description: The unique identifier of the site to delete
        schema:
          type: string
      responses:
        '204':
          description: Site deleted successfully
        '404':
          description: Site not found
  /Sites/Search:
    get:
      operationId: searchSitesByLocation
      summary: Search Sites By Location
      description: Searches for print sites within a specified radius of a location.
      tags:
      - Sites
      security:
      - xrxauth: []
        appId: []
      parameters:
      - name: longitude
        in: query
        required: true
        description: Longitude of the center point
        schema:
          type: number
          format: double
      - name: latitude
        in: query
        required: true
        description: Latitude of the center point
        schema:
          type: number
          format: double
      - name: range
        in: query
        required: true
        description: Search radius in meters
        schema:
          type: number
      responses:
        '200':
          description: Sites found within range
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SiteListResponse'
  /Sites/SearchByName:
    get:
      operationId: searchSitesByName
      summary: Search Sites By Name
      description: Searches for print sites by name with pagination.
      tags:
      - Sites
      security:
      - xrxauth: []
        appId: []
      parameters:
      - name: name
        in: query
        required: true
        description: Site name to search for
        schema:
          type: string
      - name: $skip
        in: query
        required: false
        schema:
          type: integer
      - name: $take
        in: query
        required: false
        schema:
          type: integer
      responses:
        '200':
          description: Matching sites retrieved
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SiteListResponse'
  /Sites/SearchByRemoteId:
    get:
      operationId: searchSitesByRemoteId
      summary: Search Sites By Remote Id
      description: Searches for a site by its ID in a remote system.
      tags:
      - Sites
      security:
      - xrxauth: []
        appId: []
      parameters:
      - name: remoteId
        in: query
        required: true
        description: The remote system identifier
        schema:
          type: string
      responses:
        '200':
          description: Matching site retrieved
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Site'
  /Sites/Favorite:
    put:
      operationId: addFavoriteSite
      summary: Add Favorite Site
      description: Marks a site as a favorite for the current user.
      tags:
      - Sites
      security:
      - xrxauth: []
        userEmail: []
        appId: []
      parameters:
      - name: id
        in: query
        required: true
        description: The unique identifier of the site
        schema:
          type: string
      responses:
        '200':
          description: Site added to favorites
    delete:
      operationId: removeFavoriteSite
      summary: Remove Favorite Site
      description: Removes a site from the current user's favorites.
      tags:
      - Sites
      security:
      - xrxauth: []
        userEmail: []
        appId: []
      parameters:
      - name: id
        in: query
        required: true
        description: The unique identifier of the site
        schema:
          type: string
      responses:
        '204':
          description: Site removed from favorites
  /Sites/Favorites:
    get:
      operationId: listFavoriteSites
      summary: List Favorite Sites
      description: Lists all sites marked as favorites by the current user.
      tags:
      - Sites
      security:
      - xrxauth: []
        userEmail: []
        appId: []
      responses:
        '200':
          description: Favorite sites retrieved
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SiteListResponse'
  /Sites/Sync:
    post:
      operationId: syncSites
      summary: Sync Sites
      description: Merges site data with the system.
      tags:
      - Sites
      security:
      - xrxauth: []
        appId: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SyncSitesRequest'
      responses:
        '200':
          description: Sites synced successfully
  /Sites/UpdateSites:
    get:
      operationId: updateSitesFromProvider
      summary: Update Sites From Provider
      description: Synchronizes sites from a provider into the system.
      tags:
      - Sites
      security:
      - xrxauth: []
        appId: []
      parameters:
      - name: providerId
        in: query
        required: true
        description: The unique identifier of the provider
        schema:
          type: string
      responses:
        '200':
          description: Sites updated from provider
components:
  schemas:
    GeoLocation:
      type: object
      description: Geographic coordinates
      properties:
        latitude:
          type: number
          format: double
        longitude:
          type: number
          format: double
    SiteListResponse:
      type: object
      description: List of sites
      properties:
        total:
          type: integer
        items:
          type: array
          items:
            $ref: '#/components/schemas/Site'
    SyncSitesRequest:
      type: object
      description: Request to sync site data
      properties:
        sites:
          type: array
          items:
            $ref: '#/components/schemas/Site'
    Site:
      type: object
      description: A print site (location with printers)
      properties:
        id:
          type: string
          description: Unique identifier
        name:
          type: string
          description: Site name
        providerId:
          type: string
          description: ID of the provider managing this site
        address:
          $ref: '#/components/schemas/Address'
        location:
          $ref: '#/components/schemas/GeoLocation'
        remoteId:
          type: string
          description: ID in the remote provider system
        isDeleted:
          type: boolean
          description: Whether the site has been deleted
    Address:
      type: object
      description: Physical address
      properties:
        street:
          type: string
        city:
          type: string
        state:
          type: string
        postalCode:
          type: string
        country:
          type: string
  securitySchemes:
    xrxauth:
      type: apiKey
      in: header
      name: xrxauth
      description: Xerox authentication credentials
    userEmail:
      type: apiKey
      in: header
      name: user-email
      description: User email address for user-context requests
    appId:
      type: apiKey
      in: header
      name: appid
      description: Application identifier
externalDocs:
  description: Xerox Public Print API Documentation
  url: https://publicprintapi.services.xerox.com/