openapi: 3.0.0
servers:
  - url: https://webservice.wikipathways.org
info:
  title: WikiPathways Webservices
  version: "1.0"
  x-origin:
    - format: swagger
      url: http://webservice.wikipathways.org/index.php?swagger
      version: "2.0"
  x-providerName: wikipathways.org
paths:
  /createPathway:
    post:
      description: "createPathwayCreate a new pathway on the wiki with the given GPML code.<br>Note: To create/modify pathways via the web service, you need to have an account with web service write permissions. Please contact us to request write access for the web service."
      parameters:
        - description: The GPML code for the new pathway
          in: query
          name: gpml
          required: true
          schema:
            type: string
        - description: The authentication info
          in: query
          name: auth
          required: true
          schema:
            type: string
        - description: The user name
          in: query
          name: username
          required: true
          schema:
            type: string
        - in: query
          name: format
          required: false
          schema:
            default: xml
            enum:
              - json
              - xml
              - html
              - dump
              - jpg
              - pdf
            type: string
      responses:
        "200":
          description: everything ok
      tags:
        - All functions
        - Write (create/update/delete)
  /findInteractions:
    get:
      description: findInteractionsFind interactions defined in WikiPathways pathways.
      parameters:
        - description: The name of an entity to find interactions for (e.g. 'P53')
          in: query
          name: query
          required: true
          schema:
            type: string
        - in: query
          name: format
          required: false
          schema:
            default: xml
            enum:
              - json
              - xml
              - html
              - dump
              - jpg
              - pdf
            type: string
      responses:
        "200":
          description: everything ok
      tags:
        - Search
        - All functions
  /findPathwaysByLiterature:
    get:
      description: findPathwaysByLiterature
      parameters:
        - description: The query, can be a pubmed id, author name or title keyword.
          in: query
          name: query
          required: true
          schema:
            type: string
        - in: query
          name: format
          required: false
          schema:
            default: xml
            enum:
              - json
              - xml
              - html
              - dump
              - jpg
              - pdf
            type: string
      responses:
        "200":
          description: everything ok
      tags:
        - Search
        - All functions
  /findPathwaysByText:
    get:
      description: findPathwaysByText
      parameters:
        - description: The query, e.g. 'apoptosis'
          in: query
          name: query
          required: true
          schema:
            type: string
        - description: Optional, limit the query by species. Leave
          in: query
          name: species
          required: false
          schema:
            type: string
        - in: query
          name: format
          required: false
          schema:
            default: xml
            enum:
              - json
              - xml
              - html
              - dump
              - jpg
              - pdf
            type: string
      responses:
        "200":
          description: everything ok
      tags:
        - All functions
        - Search
  /findPathwaysByXref:
    get:
      description: findPathwaysByXref
      parameters:
        - description: string
          explode: false
          in: query
          name: ids
          required: true
          schema:
            items: {}
            type: array
          style: form
        - description: string
          explode: false
          in: query
          name: codes
          required: false
          schema:
            items: {}
            type: array
          style: form
        - in: query
          name: format
          required: false
          schema:
            default: xml
            enum:
              - json
              - xml
              - html
              - dump
              - jpg
              - pdf
            type: string
      responses:
        "200":
          description: everything ok
      tags:
        - All functions
        - Search
  /getColoredPathway:
    get:
      description: getColoredPathwayGet a colored image version of the pathway.
      parameters:
        - description: The pathway identifier
          in: query
          name: pwId
          required: true
          schema:
            type: string
        - description: The revision of the pathway (use '0' for most recent)
          in: query
          name: revision
          required: true
          schema:
            type: string
        - description: string
          explode: false
          in: query
          name: graphId
          required: true
          schema:
            items: {}
            type: array
          style: form
        - description: string
          explode: false
          in: query
          name: color
          required: true
          schema:
            items: {}
            type: array
          style: form
        - description: The image type (One of 'svg', 'pdf' or 'png').
          in: query
          name: fileType
          required: true
          schema:
            type: string
        - in: query
          name: format
          required: false
          schema:
            default: xml
            enum:
              - json
              - xml
              - html
              - dump
              - jpg
              - pdf
            type: string
      responses:
        "200":
          description: everything ok
      tags:
        - All functions
        - Download
  /getCurationTagHistory:
    get:
      description: getCurationTagHistory
      parameters:
        - description: The pathway identifier
          in: query
          name: pwId
          required: true
          schema:
            type: string
        - description: Only include history from after the given date
          in: query
          name: timestamp
          required: false
          schema:
            type: string
        - in: query
          name: format
          required: false
          schema:
            default: xml
            enum:
              - json
              - xml
              - html
              - dump
              - jpg
              - pdf
            type: string
      responses:
        "200":
          description: everything ok
      tags:
        - All functions
        - History
        - Curation tags
  /getCurationTags:
    get:
      description: getCurationTagsGet all curation tags for the given tag name. Use this method if you want to find all pathways that are tagged with a specific curation tag.
      parameters:
        - description: The pathway identifier
          in: query
          name: pwId
          required: true
          schema:
            type: string
        - in: query
          name: format
          required: false
          schema:
            default: xml
            enum:
              - json
              - xml
              - html
              - dump
              - jpg
              - pdf
            type: string
      responses:
        "200":
          description: everything ok
      tags:
        - All functions
        - Pathway information
        - Curation tags
  /getCurationTagsByName:
    get:
      description: getCurationTagsByNameGet all curation tags for the given tag name. Use this method if you want to find all pathways that are tagged with a specific curation tag.
      parameters:
        - description: The tag name
          in: query
          name: tagName
          required: true
          schema:
            type: string
        - in: query
          name: format
          required: false
          schema:
            default: xml
            enum:
              - json
              - xml
              - html
              - dump
              - jpg
              - pdf
            type: string
      responses:
        "200":
          description: everything ok
      tags:
        - All functions
        - Pathway list
        - Curation tags
  /getOntologyTermsByPathway:
    get:
      description: getOntologyTermsByPathway
      parameters:
        - description: The pathway identifier
          in: query
          name: pwId
          required: true
          schema:
            type: string
        - in: query
          name: format
          required: false
          schema:
            default: xml
            enum:
              - json
              - xml
              - html
              - dump
              - jpg
              - pdf
            type: string
      responses:
        "200":
          description: everything ok
      tags:
        - Pathway information
        - Curation tags
        - All functions
  /getPathway:
    get:
      description: getPathway
      parameters:
        - description: The pathway identifier
          in: query
          name: pwId
          required: true
          schema:
            type: string
        - description: The revision number of the pathway (use 0 for most recent)
          in: query
          name: revision
          required: false
          schema:
            type: integer
        - in: query
          name: format
          required: false
          schema:
            default: xml
            enum:
              - json
              - xml
              - html
              - dump
              - jpg
              - pdf
            type: string
      responses:
        "200":
          description: everything ok
      tags:
        - Pathway information
        - All functions
  /getPathwayAs:
    get:
      description: getPathwayAsDownload a pathway in the specified file format.
      parameters:
        - description: The file type to convert to, e.g.
          in: query
          name: fileType
          required: true
          schema:
            type: string
        - description: The pathway identifier
          in: query
          name: pwId
          required: true
          schema:
            type: string
        - description: The revision number of the pathway (use 0 for most recent)
          in: query
          name: revision
          required: false
          schema:
            type: integer
        - in: query
          name: format
          required: false
          schema:
            default: xml
            enum:
              - json
              - xml
              - html
              - dump
              - jpg
              - pdf
            type: string
      responses:
        "200":
          description: everything ok
      tags:
        - Download
        - All functions
  /getPathwayHistory:
    get:
      description: getPathwayHistoryGet the revision history of a pathway.
      parameters:
        - description: The pathway identifier
          in: query
          name: pwId
          required: true
          schema:
            type: string
        - description: Limit by time, only history items after the given
          in: query
          name: timestamp
          required: true
          schema:
            type: string
        - in: query
          name: format
          required: false
          schema:
            default: xml
            enum:
              - json
              - xml
              - html
              - dump
              - jpg
              - pdf
            type: string
      responses:
        "200":
          description: everything ok
      tags:
        - History
        - All functions
  /getPathwayInfo:
    get:
      description: getPathwayInfoGet some general info about the pathway, such as the name, species, without downloading the GPML.
      parameters:
        - description: The pathway identifier
          in: query
          name: pwId
          required: true
          schema:
            type: string
        - in: query
          name: format
          required: false
          schema:
            default: xml
            enum:
              - json
              - xml
              - html
              - dump
              - jpg
              - pdf
            type: string
      responses:
        "200":
          description: everything ok
      tags:
        - Pathway information
        - All functions
  /getPathwaysByOntologyTerm:
    get:
      description: getPathwaysByOntologyTerm
      parameters:
        - description: The Ontology term
          in: query
          name: term
          required: true
          schema:
            type: string
        - in: query
          name: format
          required: false
          schema:
            default: xml
            enum:
              - json
              - xml
              - html
              - dump
              - jpg
              - pdf
            type: string
      responses:
        "200":
          description: everything ok
      tags:
        - Pathway list
        - Ontology tags
        - All functions
  /getPathwaysByParentOntologyTerm:
    get:
      description: getPathwaysByParentOntologyTerm
      parameters:
        - description: The Ontology term
          in: query
          name: term
          required: true
          schema:
            type: string
        - in: query
          name: format
          required: false
          schema:
            default: xml
            enum:
              - json
              - xml
              - html
              - dump
              - jpg
              - pdf
            type: string
      responses:
        "200":
          description: everything ok
      tags:
        - Pathway list
        - Ontology tags
        - All functions
  /getRecentChanges:
    get:
      description: "getRecentChangesGet the recently changed pathways.<br>Note: the recent changes table only retains items for a limited time (2 months), so there is no guarantee that you will get all changes when the timestamp points to a date that is more than 2 months in the past."
      parameters:
        - description: Get the changes after this time
          in: query
          name: timestamp
          required: true
          schema:
            type: string
        - in: query
          name: format
          required: false
          schema:
            default: xml
            enum:
              - json
              - xml
              - html
              - dump
              - jpg
              - pdf
            type: string
      responses:
        "200":
          description: everything ok
      tags:
        - History
        - All functions
  /getUserByOrcid:
    get:
      description: getUserByOrcid
      parameters:
        - description: string
          in: query
          name: orcid
          required: true
          schema:
            type: string
        - in: query
          name: format
          required: false
          schema:
            default: xml
            enum:
              - json
              - xml
              - html
              - dump
              - jpg
              - pdf
            type: string
      responses:
        "200":
          description: everything ok
      tags:
        - User management
        - All functions
  /getXrefList:
    get:
      description: getXrefList
      parameters:
        - description: The pathway identifier.
          in: query
          name: pwId
          required: true
          schema:
            type: string
        - description: The database code to translate to (e.g. 'S' for UniProt).
          in: query
          name: code
          required: true
          schema:
            type: string
        - in: query
          name: format
          required: false
          schema:
            default: xml
            enum:
              - json
              - xml
              - html
              - dump
              - jpg
              - pdf
            type: string
      responses:
        "200":
          description: everything ok
      tags:
        - Download
        - All functions
  /listOrganisms:
    get:
      description: listOrganisms
      parameters:
        - in: query
          name: format
          required: false
          schema:
            default: xml
            enum:
              - json
              - xml
              - html
              - dump
              - jpg
              - pdf
            type: string
      responses:
        "200":
          description: everything ok
      tags:
        - Organism list
        - All functions
  /listPathways:
    get:
      description: listPathways
      parameters:
        - description: The organism to filter by (optional)
          in: query
          name: organism
          required: false
          schema:
            type: string
        - in: query
          name: format
          required: false
          schema:
            default: xml
            enum:
              - json
              - xml
              - html
              - dump
              - jpg
              - pdf
            type: string
      responses:
        "200":
          description: everything ok
      tags:
        - Pathway list
        - All functions
  /login:
    get:
      description: loginStart a logged in session, using an existing WikiPathways account. This function will return an authentication code that can be used to excecute methods that need authentication (e.g. updatePathway).
      parameters:
        - description: The usernameset_include_path(get_include_path().PATH_SEPARATOR.realpath('../includes').PATH_SEPARATOR.realpath('../').PATH_SEPARATOR);
          in: query
          name: name
          required: true
          schema:
            type: string
        - description: The password
          in: query
          name: pass
          required: true
          schema:
            type: string
        - in: query
          name: format
          required: false
          schema:
            default: xml
            enum:
              - json
              - xml
              - html
              - dump
              - jpg
              - pdf
            type: string
      responses:
        "200":
          description: everything ok
      tags:
        - User management
        - All functions
  /removeCurationTag:
    get:
      description: removeCurationTagRemove a curation tag from a pathway.
      parameters:
        - description: The pathway identifier
          in: query
          name: pwId
          required: true
          schema:
            type: string
        - description: The name of the tag to apply
          in: query
          name: tagName
          required: true
          schema:
            type: string
        - description: The authentication data
          in: query
          name: auth
          required: true
          schema:
            type: string
        - description: The user name
          in: query
          name: username
          required: true
          schema:
            type: string
        - in: query
          name: format
          required: false
          schema:
            default: xml
            enum:
              - json
              - xml
              - html
              - dump
              - jpg
              - pdf
            type: string
      responses:
        "200":
          description: everything ok
      tags:
        - All functions
        - Search
  /removeOntologyTag:
    get:
      description: removeOntologyTag
      parameters:
        - description: The pathway identifier
          in: query
          name: pwId
          required: true
          schema:
            type: string
        - description: The ontology term identifier in the ontology
          in: query
          name: termId
          required: true
          schema:
            type: string
        - description: The authentication key
          in: query
          name: auth
          required: true
          schema:
            type: string
        - description: The username
          in: query
          name: user
          required: true
          schema:
            type: string
        - in: query
          name: format
          required: false
          schema:
            default: xml
            enum:
              - json
              - xml
              - html
              - dump
              - jpg
              - pdf
            type: string
      responses:
        "200":
          description: everything ok
      tags:
        - Write (create/update/delete)
        - Ontology tags
        - All functions
  /saveCurationTag:
    get:
      description: saveCurationTag
      parameters:
        - description: The pathway identifier
          in: query
          name: pwId
          required: true
          schema:
            type: string
        - description: The name of the tag to apply
          in: query
          name: tagName
          required: true
          schema:
            type: string
        - description: string
          in: query
          name: text
          required: true
          schema:
            type: string
        - description: The revision this tag applies to
          in: query
          name: revision
          required: true
          schema:
            type: integer
        - description: The authentication key
          in: query
          name: auth
          required: true
          schema:
            type: string
        - description: The user name
          in: query
          name: username
          required: true
          schema:
            type: string
        - in: query
          name: format
          required: false
          schema:
            default: xml
            enum:
              - json
              - xml
              - html
              - dump
              - jpg
              - pdf
            type: string
      responses:
        "200":
          description: everything ok
      tags:
        - All functions
        - Write (create/update/delete)
        - Curation tags
  /saveOntologyTag:
    get:
      description: saveOntologyTag
      parameters:
        - description: The pathway identifier
          in: query
          name: pwId
          required: true
          schema:
            type: string
        - description: The ontology term to apply
          in: query
          name: term
          required: true
          schema:
            type: string
        - description: The identifier of the term in the ontology
          in: query
          name: termId
          required: true
          schema:
            type: string
        - description: The authentication key
          in: query
          name: auth
          required: true
          schema:
            type: string
        - description: The username
          in: query
          name: user
          required: true
          schema:
            type: string
        - in: query
          name: format
          required: false
          schema:
            default: xml
            enum:
              - json
              - xml
              - html
              - dump
              - jpg
              - pdf
            type: string
      responses:
        "200":
          description: everything ok
      tags:
        - Write (create/update/delete)
        - Ontology tags
        - All functions
  /updatePathway:
    get:
      description: "updatePathwayUpdate a pathway on the wiki with the given GPML code.<br>Note: To create/modify pathways via the web service, you need to have an account with web service write permissions. Please contact us to request write access for the web service."
      parameters:
        - description: The pathway identifier
          in: query
          name: pwId
          required: true
          schema:
            type: string
        - description: A description of the modifications
          in: query
          name: description
          required: true
          schema:
            type: string
        - description: The updated GPML code
          in: query
          name: gpml
          required: true
          schema:
            type: string
        - description: The revision the GPML code is based on
          in: query
          name: revision
          required: true
          schema:
            type: integer
        - description: The authentication key
          in: query
          name: auth
          required: true
          schema:
            type: string
        - description: The username
          in: query
          name: username
          required: true
          schema:
            type: string
        - in: query
          name: format
          required: false
          schema:
            default: xml
            enum:
              - json
              - xml
              - html
              - dump
              - jpg
              - pdf
            type: string
      responses:
        "200":
          description: everything ok
      tags:
        - Write (create/update/delete)
        - All functions
