---
openapi: 3.0.1
info:
  title: Inly Zapier API V1
  version: v1
  description: API endpoints for Zapier integration with Inly platform
paths:
  "/zapier/actions/create_client":
    post:
      summary: Create a new client
      tags:
      - Actions
      security:
      - api_key: []
      parameters:
      - name: X-API-KEY
        in: header
        required: true
        description: Zapier API key
        schema:
          type: string
      responses:
        '200':
          description: client created
          content:
            application/json:
              schema:
                type: object
                properties:
                  client_id:
                    type: string
                  name:
                    type: string
                  email:
                    type: string
                  phone:
                    type: string
                  created_at:
                    type: string
                  notes:
                    type: string
        '401':
          description: unauthorized
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                first_name:
                  type: string
                  description: Client first name
                last_name:
                  type: string
                  description: Client last name
                email:
                  type: string
                  description: Client email
                phone:
                  type: string
                  description: Client phone number
                notes:
                  type: string
                  description: Notes about the client
              required:
              - first_name
              - last_name
              - email
  "/zapier/actions/create_project":
    post:
      summary: Create a new project
      tags:
      - Actions
      security:
      - api_key: []
      parameters:
      - name: X-API-KEY
        in: header
        required: true
        description: Zapier API key
        schema:
          type: string
      responses:
        '200':
          description: project created
          content:
            application/json:
              schema:
                type: object
                properties:
                  project_id:
                    type: string
                  client_id:
                    type: string
                  title:
                    type: string
                  status:
                    type: string
        '401':
          description: unauthorized
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                client_id:
                  type: string
                  description: Client ID
                title:
                  type: string
                  description: Project title
                status:
                  type: string
                  description: Project status
                start_date:
                  type: string
                  description: Project start date
              required:
              - client_id
              - title
  "/zapier/actions/update_client":
    post:
      summary: Update an existing client
      tags:
      - Actions
      security:
      - api_key: []
      parameters:
      - name: X-API-KEY
        in: header
        required: true
        description: Zapier API key
        schema:
          type: string
      responses:
        '200':
          description: client updated
          content:
            application/json:
              schema:
                type: object
                properties:
                  client_id:
                    type: string
                  name:
                    type: string
                  email:
                    type: string
                  phone:
                    type:
                    - string
                    - 'null'
                  updated_at:
                    type: string
                  notes:
                    type:
                    - string
                    - 'null'
        '404':
          description: client not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        '401':
          description: unauthorized
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                client_id:
                  type: string
                  description: Client ID
                first_name:
                  type: string
                  description: Client first name
                last_name:
                  type: string
                  description: Client last name
                email:
                  type: string
                  description: Client email
                phone:
                  type: string
                  description: Client phone number
                notes:
                  type: string
                  description: Notes about the client
              required:
              - client_id
  "/zapier/actions/update_project":
    post:
      summary: Update an existing project
      tags:
      - Actions
      security:
      - api_key: []
      parameters:
      - name: X-API-KEY
        in: header
        required: true
        description: Zapier API key
        schema:
          type: string
      responses:
        '200':
          description: project updated
          content:
            application/json:
              schema:
                type: object
                properties:
                  project_id:
                    type: string
                  client_id:
                    type: string
                  title:
                    type: string
                  status:
                    type: string
        '404':
          description: project not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        '401':
          description: unauthorized
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                project_id:
                  type: string
                  description: Project ID
                name:
                  type: string
                  description: Project name
                status:
                  type: string
                  description: Project status
              required:
              - project_id
  "/zapier/profile":
    get:
      summary: Get business profile
      tags:
      - Profile
      security:
      - api_key: []
      parameters:
      - name: X-API-KEY
        in: header
        required: true
        description: Zapier API key
        schema:
          type: string
      responses:
        '200':
          description: profile retrieved
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    description: Business ID
                  name:
                    type: string
                    description: Business name
                  email:
                    type: string
                    description: Business email
                required:
                - id
                - name
                - email
        '401':
          description: unauthorized - invalid API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  "/zapier/samples/clients":
    get:
      summary: Get sample clients
      tags:
      - Samples
      security:
      - api_key: []
      parameters:
      - name: X-API-KEY
        in: header
        required: true
        description: Zapier API key
        schema:
          type: string
      responses:
        '200':
          description: sample clients retrieved
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    client_id:
                      type: string
                    name:
                      type: string
                    email:
                      type: string
                    phone:
                      type: string
                    created_at:
                      type: string
                    notes:
                      type: string
        '401':
          description: unauthorized
  "/zapier/samples/projects":
    get:
      summary: Get sample projects
      tags:
      - Samples
      security:
      - api_key: []
      parameters:
      - name: X-API-KEY
        in: header
        required: true
        description: Zapier API key
        schema:
          type: string
      responses:
        '200':
          description: sample projects retrieved
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    name:
                      type: string
                    project_id:
                      type: string
                    project_name:
                      type: string
                    client_id:
                      type: string
                    client_name:
                      type: string
                    client_email:
                      type: string
                    title:
                      type: string
                    status:
                      type: string
                    start_date:
                      type: string
                    created_at:
                      type: string
        '401':
          description: unauthorized
  "/zapier/samples/events":
    get:
      summary: Get sample events
      tags:
      - Samples
      security:
      - api_key: []
      parameters:
      - name: X-API-KEY
        in: header
        required: true
        description: Zapier API key
        schema:
          type: string
      responses:
        '200':
          description: sample events retrieved
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    event_id:
                      type: string
                    client_id:
                      type: string
                    project_id:
                      type: string
                    name:
                      type: string
                    start_date:
                      type: string
                    end_date:
                      type: string
                    all_day:
                      type: boolean
                    timezone:
                      type: string
        '401':
          description: unauthorized
  "/zapier/samples/flows":
    get:
      summary: Get sample flows
      tags:
      - Samples
      security:
      - api_key: []
      parameters:
      - name: X-API-KEY
        in: header
        required: true
        description: Zapier API key
        schema:
          type: string
      responses:
        '200':
          description: sample flows retrieved
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    flow_id:
                      type: string
                    client_id:
                      type: string
                    project_id:
                      type: string
                    name:
                      type: string
                    status:
                      type: string
                    created_at:
                      type: string
                    client_name:
                      type: string
                    client_email:
                      type: string
                    project_name:
                      type: string
        '401':
          description: unauthorized
  "/zapier/samples/contact_form_responses":
    get:
      summary: Get sample contact form responses
      tags:
      - Samples
      security:
      - api_key: []
      parameters:
      - name: X-API-KEY
        in: header
        required: true
        description: Zapier API key
        schema:
          type: string
      responses:
        '200':
          description: sample contact form responses retrieved
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    inquiry_id:
                      type: string
                    contact_form_id:
                      type: string
                    client_id:
                      type: string
                    data:
                      type: object
        '401':
          description: unauthorized
  "/zapier/samples/payments":
    get:
      summary: Get sample payments
      tags:
      - Samples
      security:
      - api_key: []
      parameters:
      - name: X-API-KEY
        in: header
        required: true
        description: Zapier API key
        schema:
          type: string
      responses:
        '200':
          description: sample payments retrieved
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    payment_id:
                      type: string
                    flow_id:
                      type: string
                    payment_type:
                      type: string
                    total_cents:
                      type: integer
                    tip_cents:
                      type: integer
                    processing_fee_cents:
                      type: integer
                    app_fee_cents:
                      type: integer
                    processor:
                      type: string
                    processor_id:
                      type: string
                    method_type:
                      type: string
                    method_description:
                      type: string
                    method_last4:
                      type: string
                    status:
                      type: string
                    refunded:
                      type: boolean
                    paid_at:
                      type: string
                    currency:
                      type: string
                    pass_fee:
                      type: integer
                    inly_fee_cents:
                      type: integer
                    payment_method:
                      type: string
        '401':
          description: unauthorized
  "/zapier/webhooks/subscribe":
    post:
      summary: Subscribe to webhook events
      tags:
      - Webhooks
      security:
      - api_key: []
      parameters:
      - name: X-API-KEY
        in: header
        required: true
        description: Zapier API key
        schema:
          type: string
      responses:
        '200':
          description: subscription created
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: integer
                    description: Subscription ID
                  status:
                    type: string
                    description: Subscription status
                required:
                - id
                - status
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                target_url:
                  type: string
                  description: URL to receive webhook notifications
                event:
                  type: string
                  description: Event type to subscribe to
              required:
              - target_url
              - event
  "/zapier/webhooks/unsubscribe":
    post:
      summary: Unsubscribe from webhook events
      tags:
      - Webhooks
      security:
      - api_key: []
      parameters:
      - name: X-API-KEY
        in: header
        required: true
        description: Zapier API key
        schema:
          type: string
      responses:
        '200':
          description: unsubscribed
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    description: Subscription status
                required:
                - status
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                event:
                  type: string
                  description: Event type to unsubscribe from
              required:
              - event
servers:
- url: https://api.inly.com
  description: Production server
- url: https://staging.api.inly.com
  description: Staging server
components:
  securitySchemes:
    api_key:
      type: apiKey
      name: X-API-KEY
      in: header
      description: Zapier API key for authentication
