PracticePanther API

RESTful API for accessing and managing all PracticePanther resources including contacts, matters, tasks, time entries, expenses, invoices, and trust accounts. Supports OData queries and uses OAuth 2 authentication.

OpenAPI Specification

practicepanther-practicepanther-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  version: v1
  title: Legacy API (v1)
  description: ''
paths:
  /api/account/{guid}:
    get:
      tags:
      - Account
      summary: Returns an account (contact)
      operationId: Account_GetAccount
      parameters:
      - name: guid
        in: path
        description: ''
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountDTO_Detail'
            text/json:
              schema:
                $ref: '#/components/schemas/AccountDTO_Detail'
      security:
      - oauth2:
        - full
  /api/account:
    get:
      tags:
      - Account
      summary: OData end point to get a list of all accounts (contacts) accessible
        by the user
      operationId: Account_GetAccounts
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AccountDTO_Export'
            text/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AccountDTO_Export'
      security:
      - oauth2:
        - full
    put:
      tags:
      - Account
      summary: Updates an existing account (Contact)
      operationId: Account_PutAccount
      requestBody:
        $ref: '#/components/requestBodies/AccountDTO_Detail'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountDTO_Detail'
            text/json:
              schema:
                $ref: '#/components/schemas/AccountDTO_Detail'
      security:
      - oauth2:
        - full
    post:
      tags:
      - Account
      summary: Created a new account (contact)
      operationId: Account_PostAccount
      requestBody:
        $ref: '#/components/requestBodies/AccountDTO_Detail'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountDTO_Detail'
            text/json:
              schema:
                $ref: '#/components/schemas/AccountDTO_Detail'
      security:
      - oauth2:
        - full
    delete:
      tags:
      - Account
      summary: Marks an existing account as deleted
      operationId: Account_DeleteAccount
      parameters:
      - name: guid
        in: query
        description: ''
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountDTO_Detail'
            text/json:
              schema:
                $ref: '#/components/schemas/AccountDTO_Detail'
      security:
      - oauth2:
        - full
  /api/internal/v1/tenants/{tenantId}/accountingsnapshot:
    get:
      tags:
      - AccountingSnapshot
      summary: Retrieves the accounting snapshot for a tenant
      operationId: AccountingSnapshot_GetSnapshot
      parameters:
      - name: tenantId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
            text/json:
              schema:
                type: object
      security:
      - oauth2:
        - full
    post:
      tags:
      - AccountingSnapshot
      summary: Generates a new accounting snapshot for a tenant
      operationId: AccountingSnapshot_GenerateSnapshot
      parameters:
      - name: tenantId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: tbRegenerate
        in: query
        required: false
        schema:
          type: boolean
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
            text/json:
              schema:
                type: object
      security:
      - oauth2:
        - full
  /api/activity/{guid}:
    get:
      tags:
      - Activity
      summary: Returns an activity (task/event/email/call)
      operationId: Activity_GetActivity
      parameters:
      - name: guid
        in: path
        description: ''
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActivityDTO_Detail'
            text/json:
              schema:
                $ref: '#/components/schemas/ActivityDTO_Detail'
      security:
      - oauth2:
        - full
  /api/activity:
    get:
      tags:
      - Activity
      summary: OData end point to get a list of all activities (tasks/events/emails/calls)
        accessible by the user
      operationId: Activity_GetActivities
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ActivityDTO'
            text/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ActivityDTO'
      security:
      - oauth2:
        - full
    put:
      tags:
      - Activity
      summary: Updates an existing account (Contact)
      operationId: Activity_PutActivity
      requestBody:
        $ref: '#/components/requestBodies/ActivityDTO_Detail'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActivityDTO_Detail'
            text/json:
              schema:
                $ref: '#/components/schemas/ActivityDTO_Detail'
      security:
      - oauth2:
        - full
    post:
      tags:
      - Activity
      summary: Creates a new activity (task/event/email/call)
      operationId: Activity_PostActivity
      requestBody:
        $ref: '#/components/requestBodies/ActivityDTO_Detail'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActivityDTO_Detail'
            text/json:
              schema:
                $ref: '#/components/schemas/ActivityDTO_Detail'
      security:
      - oauth2:
        - full
    delete:
      tags:
      - Activity
      summary: Marks an existing activity (task/event/email/call) as deleted
      operationId: Activity_DeleteActivity
      parameters:
      - name: guid
        in: query
        description: ''
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActivityDTO_Detail'
            text/json:
              schema:
                $ref: '#/components/schemas/ActivityDTO_Detail'
      security:
      - oauth2:
        - full
  /api/customfield:
    get:
      tags:
      - CustomField
      summary: OData end point to get a list of all available custom fields for an
        object
      operationId: CustomField_GetCustomFields
      parameters:
      - name: objectType
        in: query
        description: Project/Contact/Account
        required: true
        schema:
          type: string
          enum:
          - Account
          - Project
          - Contact
          - User
          - Address
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CustomFieldDTO'
            text/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CustomFieldDTO'
      security:
      - oauth2:
        - full
  /api/EmailTemplate:
    post:
      tags:
      - EmailTemplate
      operationId: EmailTemplate_Post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EmailTemplateRequest'
          text/json:
            schema:
              $ref: '#/components/schemas/EmailTemplateRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/EmailTemplateRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: string
            text/json:
              schema:
                type: string
      security:
      - oauth2:
        - full
  /api/expense/{guid}:
    get:
      tags:
      - Expense
      summary: Returns an expense
      operationId: Expense_GetExpense
      parameters:
      - name: guid
        in: path
        description: ''
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExpenseDTO_Detail'
            text/json:
              schema:
                $ref: '#/components/schemas/ExpenseDTO_Detail'
      security:
      - oauth2:
        - full
  /api/expense:
    get:
      tags:
      - Expense
      summary: OData end point to get a list of all expenses accessible by the user
      operationId: Expense_GetExpenses
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ExpenseDTO'
            text/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ExpenseDTO'
      security:
      - oauth2:
        - full
    put:
      tags:
      - Expense
      summary: Updates an existing expense
      operationId: Expense_PutExpense
      requestBody:
        $ref: '#/components/requestBodies/ExpenseDTO_Detail'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExpenseDTO_Detail'
            text/json:
              schema:
                $ref: '#/components/schemas/ExpenseDTO_Detail'
      security:
      - oauth2:
        - full
    post:
      tags:
      - Expense
      summary: Created a new expense (contact)
      operationId: Expense_PostExpense
      requestBody:
        $ref: '#/components/requestBodies/ExpenseDTO_Detail'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExpenseDTO_Detail'
            text/json:
              schema:
                $ref: '#/components/schemas/ExpenseDTO_Detail'
      security:
      - oauth2:
        - full
    delete:
      tags:
      - Expense
      summary: Marks an existing expense as deleted
      operationId: Expense_DeleteExpense
      parameters:
      - name: guid
        in: query
        description: ''
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExpenseDTO_Detail'
            text/json:
              schema:
                $ref: '#/components/schemas/ExpenseDTO_Detail'
      security:
      - oauth2:
        - full
  /api/integrations/v1/contacts/test:
    get:
      tags:
      - IntegrationBulkContactLookup
      operationId: IntegrationBulkContactLookup_Test
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: string
            text/json:
              schema:
                type: string
      security:
      - oauth2:
        - full
  /api/integrations/v1/contacts/bulk-lookup:
    post:
      tags:
      - IntegrationBulkContactLookup
      operationId: IntegrationBulkContactLookup_BulkLookup
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkContactLookupRequest'
          text/json:
            schema:
              $ref: '#/components/schemas/BulkContactLookupRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/BulkContactLookupRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
            text/json:
              schema:
                type: object
      security:
      - oauth2:
        - full
  /api/integrations/v1/contacts/search:
    get:
      tags:
      - IntegrationContacts
      operationId: IntegrationContacts_Search
      parameters:
      - name: search_text
        in: query
        required: false
        schema:
          type: string
      - name: page
        in: query
        required: false
        schema:
          type: integer
          format: int32
      - name: page_size
        in: query
        required: false
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
            text/json:
              schema:
                type: object
      security:
      - oauth2:
        - full
  /api/integrations/v1/contacts/{id}:
    get:
      tags:
      - IntegrationContacts
      operationId: IntegrationContacts_GetById
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
            text/json:
              schema:
                type: object
      security:
      - oauth2:
        - full
  /api/invoice/{guid}:
    get:
      tags:
      - Invoice
      summary: Returns an invoice
      operationId: Invoice_GetInvoice
      parameters:
      - name: guid
        in: path
        description: ''
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SaleDocumentDTO_Detail'
            text/json:
              schema:
                $ref: '#/components/schemas/SaleDocumentDTO_Detail'
      security:
      - oauth2:
        - full
  /api/invoice:
    get:
      tags:
      - Invoice
      summary: OData end point to get a list of all invoices accessible by the user
      operationId: Invoice_GetInvoices
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SaleDocumentDTO'
            text/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SaleDocumentDTO'
      security:
      - oauth2:
        - full
    delete:
      tags:
      - Invoice
      summary: Marks an existing invoice as deleted, will remove all amounts applied
        on invoices.
      operationId: Invoice_DeleteInvoice
      parameters:
      - name: guid
        in: query
        description: ''
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SaleDocumentDTO_Detail'
            text/json:
              schema:
                $ref: '#/components/schemas/SaleDocumentDTO_Detail'
      security:
      - oauth2:
        - full
  /api/item/{guid}:
    get:
      tags:
      - Item
      summary: Returns a item
      operationId: Item_GetItem
      parameters:
      - name: guid
        in: path
        description: ''
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ItemDTO'
            text/json:
              schema:
                $ref: '#/components/schemas/ItemDTO'
      security:
      - oauth2:
        - full
  /api/item:
    get:
      tags:
      - Item
      summary: OData end point to get a list of all items
      operationId: Item_GetItems
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ItemDTO'
            text/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ItemDTO'
      security:
      - oauth2:
        - full
    put:
      tags:
      - Item
      summary: Updates an existing item
      operationId: Item_PutItem
      requestBody:
        $ref: '#/components/requestBodies/ItemDTO'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ItemDTO'
            text/json:
              schema:
                $ref: '#/components/schemas/ItemDTO'
      security:
      - oauth2:
        - full
    post:
      tags:
      - Item
      summary: Created a new item
      operationId: Item_PostItem
      requestBody:
        $ref: '#/components/requestBodies/ItemDTO'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ItemDTO'
            text/json:
              schema:
                $ref: '#/components/schemas/ItemDTO'
      security:
      - oauth2:
        - full
    delete:
      tags:
      - Item
      summary: Marks an existing item as deleted
      operationId: Item_DeleteItem
      parameters:
      - name: guid
        in: query
        description: ''
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ItemDTO'
            text/json:
              schema:
                $ref: '#/components/schemas/ItemDTO'
      security:
      - oauth2:
        - full
  /api/payment/{guid}:
    get:
      tags:
      - Payment
      summary: Returns a payment
      operationId: Payment_GetPayment
      parameters:
      - name: guid
        in: path
        description: ''
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentDTO_Detail'
            text/json:
              schema:
                $ref: '#/components/schemas/PaymentDTO_Detail'
      security:
      - oauth2:
        - full
  /api/payment:
    get:
      tags:
      - Payment
      summary: OData end point to get a list of all payments accessible by the user
      operationId: Payment_GetPayments
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PaymentDTO'
            text/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PaymentDTO'
      security:
      - oauth2:
        - full
    post:
      tags:
      - Payment
      summary: Created a new payment
      operationId: Payment_PostPayment
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentDTO_Detail'
          text/json:
            schema:
              $ref: '#/components/schemas/PaymentDTO_Detail'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PaymentDTO_Detail'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentDTO_Detail'
            text/json:
              schema:
                $ref: '#/components/schemas/PaymentDTO_Detail'
      security:
      - oauth2:
        - full
    delete:
      tags:
      - Payment
      summary: Marks an existing payment as deleted, will remove all amounts applied
        on invoices.
      operationId: Payment_DeletePayment
      parameters:
      - name: guid
        in: query
        description: ''
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentDTO_Detail'
            text/json:
              schema:
                $ref: '#/components/schemas/PaymentDTO_Detail'
      security:
      - oauth2:
        - full
  /api/project/{guid}:
    get:
      tags:
      - Project
      summary: Returns a project (matter)
      operationId: Project_GetProject
      parameters:
      - name: guid
        in: path
        description: ''
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectDTO_Detail'
            text/json:
              schema:
                $ref: '#/components/schemas/ProjectDTO_Detail'
      security:
      - oauth2:
        - full
  /api/project:
    get:
      tags:
      - Project
      summary: OData end point to get a list of all projects (matters) accessible
        by the user
      operationId: Project_GetProjects
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProjectDTO'
            text/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProjectDTO'
      security:
      - oauth2:
        - full
    put:
      tags:
      - Project
      summary: Updates an existing project (matter)
      operationId: Project_PutProject
      requestBody:
        $ref: '#/components/requestBodies/ProjectDTO_Detail'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectDTO_Detail'
            text/json:
              schema:
                $ref: '#/components/schemas/ProjectDTO_Detail'
      security:
      - oauth2:
        - full
    post:
      tags:
      - Project
      summary: Creates a new project (matter)
      operationId: Project_PostProject
      requestBody:
        $ref: '#/components/requestBodies/ProjectDTO_Detail'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectDTO_Detail'
            text/json:
              schema:
                $ref: '#/components/schemas/ProjectDTO_Detail'
      security:
      - oauth2:
        - full
    delete:
      tags:
      - Project
      summary: Marks an existing project (matter) as deleted
      operationId: Project_DeleteProject
      parameters:
      - name: guid
        in: query
        description: ''
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectDTO_Detail'
            text/json:
              schema:
                $ref: '#/components/schemas/ProjectDTO_Detail'
      security:
      - oauth2:
        - full
  /api/relationship/{guid}:
    get:
      tags:
      - Relationship
      summary: Returns a relationshi
      operationId: Relationship_GetRelationship
      parameters:
      - name: guid
        in: path
        description: ''
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RelationshipDTO_Detail'
            text/json:
              schema:
                $ref: '#/components/schemas/RelationshipDTO_Detail'
      security:
      - oauth2:
        - full
  /api/relationship:
    get:
      tags:
      - Relationship
      summary: OData end point to get a list of all relationships for contacts accessible
        by the user
      operationId: Relationship_GetRelationships
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RelationshipDTO'
            text/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RelationshipDTO'
      security:
      - oauth2:
        - full
    put:
      tags:
      - Relationship
      summary: Updates an existing relationship
      operationId: Relationship_PutRelationship
      requestBody:
        $ref: '#/components/requestBodies/RelationshipDTO_Detail'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RelationshipDTO_Detail'
            text/json:
              schema:
                $ref: '#/components/schemas/RelationshipDTO_Detail'
      security:
      - oauth2:
        - full
    post:
      tags:
      - Relationship
      summary: Creates a new relationship
      operationId: Relationship_PostRelationship
      requestBody:
        $ref: '#/components/requestBodies/RelationshipDTO_Detail'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RelationshipDTO_Detail'
            text/json:
              schema:
                $ref: '#/components/schemas/RelationshipDTO_Detail'
      security:
      - oauth2:
        - full
    delete:
      tags:
      - Relationship
      summary: Deletes an existing relationship
      operationId: Relationship_DeleteRelationship
      parameters:
      - name: guid
        in: query
        description: ''
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RelationshipDTO_Detail'
            text/json:
              schema:
                $ref: '#/components/schemas/RelationshipDTO_Detail'
      security:
      - oauth2:
        - full
  /api/salestax/{guid}:
    get:
      tags:
      - SalesTax
      summary: Returns a sales tax
      operationId: SalesTax_GetSalesTax
      parameters:
      - name: guid
        in: path
        description: ''
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SalesTaxDTO'
            text/json:
              schema:
                $ref: '#/components/schemas/SalesTaxDTO'
      security:
      - oauth2:
        - full
  /api/salestax:
    get:
      tags:
      - SalesTax
      summary: OData end point to get a list of all sales taxes accessible by the
        user
      operationId: SalesTax_GetSalesTaxs
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SalesTaxDTO'
            text/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SalesTaxDTO'
      security:
      - oauth2:
        - full
    put:
      tags:
      - SalesTax
      summary: Updates an existing sales tax
      operationId: SalesTax_PutSalesTax
      requestBody:
        $ref: '#/components/requestBodies/SalesTaxDTO'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SalesTaxDTO'
            text/json:
              schema:
                $ref: '#/components/schemas/SalesTaxDTO'
      security:
      - oauth2:
        - full
    post:
      tags:
      - SalesTax
      summary: Created a new sales tax (contact)
      operationId: SalesTax_PostSalesTax
      requestBody:
        $ref: '#/components/requestBodies/SalesTaxDTO'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SalesTaxDTO'
            text/json:
              schema:
                $ref: '#/components/schemas/SalesTaxDTO'
      security:
      - oauth2:
        - full
    delete:
      tags:
      - SalesTax
      summary: Marks an existing sales tax as deleted
      operationId: SalesTax_DeleteSalesTax
      parameters:
      - name: guid
        in: query
        description: ''
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SalesTaxDTO'
            text/json:
              schema:
                $ref: '#/components/schemas/SalesTaxDTO'
      security:
      - oauth2:
        - full
  /api/tag:
    get:
      tags:
      - Tag
      summary: OData end point to get a list of all tags
      operationId: Tag_GetTags
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TagDTO'
            text/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TagDTO'
      security:
      - oauth2:
        - full
  /api/timeentry/{guid}:
    get:
      tags:
      - TimeEntry
      summary: Returns a time entry
      operationId: TimeEntry_GetTimeEntry
      parameters:
      - name: guid
        in: path
        description: ''
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/component

# --- truncated at 32 KB (461 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/practicepanther/refs/heads/main/openapi/practicepanther-practicepanther-api-openapi.yml