SoilOptix My Account API

View and make changes to your customer profile. Businesses will show what businesses you have been granted access to along with your level of permission. Invites show the active invitations you've recieved to join existing Businesses. (**Tip:** Invites must be sent by a Customer who already has administrative access to a business). Direct admin access to a Business with a Contract grants you permission to work with that Contract. (**Tip:** You must agree to the terms and conditions before you may use the API).

Operations 10

GET /api/v4/myaccount Get information about currently logged in Customer #
PATCH /api/v4/myaccount Update information about currently logged in Customer #
GET /api/v4/myaccount/businesses/ View your existing business relationships #
PATCH /api/v4/myaccount/businesses/{business_id} Make changes to your business relationship #
DELETE /api/v4/myaccount/businesses/{business_id} Remove your relationship to this business #
GET /api/v4/myaccount/invites/ Work with your pending business invites #
POST /api/v4/myaccount/invites/{invite_id} Accept business invitation #
DELETE /api/v4/myaccount/invites/{invite_id} Decline business invitation #
GET /api/v4/myaccount/notifications/ Get notifications and all unread messages #
POST /api/v4/myaccount/terms_and_conditions/ Agree to the terms and conditions to use SoilOptix Portal #

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/soiloptix:soiloptix-my-account-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

soiloptix-my-account-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: SoilOptix Client My Account API
  version: '1.0'
  description: Service to retrieve data from SoilOptix Db for Clients portal
  termsOfService: https://soiloptix.com/terms-of-service/
  contact:
    name: Get Help with this API
    url: http://www.soiloptix.com
    email: dev@soiloptix.com
    copyright: SoilOptix 2022-2025
tags:
- name: My Account
  description: View and make changes to your customer profile. Businesses will show what businesses you have been granted access to along with your level of permission. Invites show the active invitations you've recieved to join existing Businesses. (**Tip:** Invites must be sent by a Customer who already has administrative access to a business). Direct admin access to a Business with a Contract grants you permission to work with that Contract. (**Tip:** You must agree to the terms and conditions before you may use the API).
paths:
  /api/v4/myaccount:
    get:
      tags:
      - My Account
      summary: Get information about currently logged in Customer
      operationId: get_account_information_api_v4_myaccount_get
      security:
      - Authorization: []
      parameters:
      - name: include
        in: query
        required: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/CustomerRelationEnum'
          default: []
          title: Include
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Customer'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    patch:
      tags:
      - My Account
      summary: Update information about currently logged in Customer
      operationId: update_my_account_api_v4_myaccount_patch
      security:
      - Authorization: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomerUpdate'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Customer'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v4/myaccount/businesses/:
    get:
      tags:
      - My Account
      summary: View your existing business relationships
      operationId: get_business_relationships_api_v4_myaccount_businesses__get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/CustomerBusinessRelationship'
                type: array
                title: Response Get Business Relationships Api V4 Myaccount Businesses  Get
      security:
      - Authorization: []
  /api/v4/myaccount/businesses/{business_id}:
    patch:
      tags:
      - My Account
      summary: Make changes to your business relationship
      operationId: update_business_relationship_api_v4_myaccount_businesses__business_id__patch
      security:
      - Authorization: []
      parameters:
      - name: business_id
        in: path
        required: true
        schema:
          type: integer
          title: Business Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateCustomerBusinessSubscription'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    delete:
      tags:
      - My Account
      summary: Remove your relationship to this business
      operationId: remove_business_relationship_api_v4_myaccount_businesses__business_id__delete
      security:
      - Authorization: []
      parameters:
      - name: business_id
        in: path
        required: true
        schema:
          type: integer
          title: Business Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v4/myaccount/invites/:
    get:
      tags:
      - My Account
      summary: Work with your pending business invites
      operationId: get_my_invites_api_v4_myaccount_invites__get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/Invite'
                type: array
                title: Response Get My Invites Api V4 Myaccount Invites  Get
      security:
      - Authorization: []
  /api/v4/myaccount/invites/{invite_id}:
    post:
      tags:
      - My Account
      summary: Accept business invitation
      operationId: accept_invite_api_v4_myaccount_invites__invite_id__post
      security:
      - Authorization: []
      parameters:
      - name: invite_id
        in: path
        required: true
        schema:
          type: integer
          title: Invite Id
      responses:
        '204':
          description: Successful Response
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    delete:
      tags:
      - My Account
      summary: Decline business invitation
      operationId: decline_invite_api_v4_myaccount_invites__invite_id__delete
      security:
      - Authorization: []
      parameters:
      - name: invite_id
        in: path
        required: true
        schema:
          type: integer
          title: Invite Id
      responses:
        '204':
          description: Successful Response
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v4/myaccount/notifications/:
    get:
      tags:
      - My Account
      summary: Get notifications and all unread messages
      operationId: get_notifications_api_v4_myaccount_notifications__get
      security:
      - Authorization: []
      parameters:
      - name: sortBy
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/NotificationSortByEnum'
          default: CreatedOn
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 500
          minimum: 1
          description: Page size
          default: 5
          title: Limit
        description: Page size
      - name: page
        in: query
        required: false
        schema:
          type: integer
          minimum: 0
          description: Current page, starts from 0
          default: 0
          title: Page
        description: Current page, starts from 0
      - name: sortAsc
        in: query
        required: false
        schema:
          type: boolean
          description: Sort direction, ascending if true
          default: true
          title: Sortasc
        description: Sort direction, ascending if true
      - name: returnEnum
        in: query
        required: false
        schema:
          type: boolean
          description: Return short entity version, containing only Id and Name
          default: false
          title: Returnenum
        description: Return short entity version, containing only Id and Name
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Notification'
                title: Response Get Notifications Api V4 Myaccount Notifications  Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v4/myaccount/terms_and_conditions/:
    post:
      tags:
      - My Account
      summary: Agree to the terms and conditions to use SoilOptix Portal
      operationId: agree_to_terms_and_conditions_api_v4_myaccount_terms_and_conditions__post
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
      security:
      - Authorization: []
components:
  schemas:
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    CustomerBusinessRelationship:
      properties:
        Id:
          type: integer
          title: Id
        Name:
          anyOf:
          - type: string
          - type: 'null'
          title: Name
        Email:
          anyOf:
          - type: string
          - type: 'null'
          title: Email
        BusinessTypeId:
          type: integer
          title: Businesstypeid
          default: 1
        IsAdmin:
          type: boolean
          title: Isadmin
          default: false
        IsSubscribed:
          type: boolean
          title: Issubscribed
          default: false
      type: object
      required:
      - Id
      title: CustomerBusinessRelationship
    Invite:
      properties:
        Id:
          type: integer
          title: Id
        Email:
          anyOf:
          - type: string
            format: email
          - type: 'null'
          title: Email
        InvitedAsAdmin:
          type: boolean
          title: Invitedasadmin
        Business:
          $ref: '#/components/schemas/BusinessPublic'
      type: object
      required:
      - Id
      - InvitedAsAdmin
      title: Invite
    Customer:
      properties:
        FirstName:
          anyOf:
          - type: string
          - type: 'null'
          title: Firstname
        LastName:
          anyOf:
          - type: string
          - type: 'null'
          title: Lastname
        Id:
          type: integer
          title: Id
        Email:
          anyOf:
          - type: string
            format: email
          - type: 'null'
          title: Email
        Businesses:
          anyOf:
          - items:
              $ref: '#/components/schemas/CustomerBusinessRelationship'
            type: array
          - type: 'null'
          title: Businesses
        Contracts:
          anyOf:
          - items:
              $ref: '#/components/schemas/Contract'
            type: array
          - type: 'null'
          title: Contracts
        Invites:
          anyOf:
          - items:
              $ref: '#/components/schemas/Invite'
            type: array
          - type: 'null'
          title: Invites
      type: object
      required:
      - Id
      title: Customer
    BusinessPublic:
      properties:
        Name:
          type: string
          title: Name
        ContactName:
          anyOf:
          - type: string
            maxLength: 200
          - type: 'null'
          title: Contactname
        ContactEmail:
          anyOf:
          - type: string
            maxLength: 200
          - type: 'null'
          title: Contactemail
        Phone:
          anyOf:
          - type: string
          - type: 'null'
          title: Phone
        Address:
          anyOf:
          - type: string
            maxLength: 200
          - type: 'null'
          title: Address
        City:
          anyOf:
          - type: string
            maxLength: 200
          - type: 'null'
          title: City
        PostalCode:
          anyOf:
          - type: string
            maxLength: 200
          - type: 'null'
          title: Postalcode
        ProvinceState:
          anyOf:
          - type: string
            maxLength: 200
          - type: 'null'
          title: Provincestate
        CountryId:
          type: integer
          title: Countryid
        BusinessTypeId:
          type: integer
          title: Businesstypeid
          default: 1
        Id:
          type: integer
          title: Id
      type: object
      required:
      - Name
      - CountryId
      - Id
      title: BusinessPublic
    Notification:
      properties:
        Title:
          type: string
          title: Title
        MessageId:
          anyOf:
          - type: integer
          - type: 'null'
          title: Messageid
        Message:
          type: string
          title: Message
        MessageLong:
          anyOf:
          - type: string
          - type: 'null'
          title: Messagelong
        BannerType:
          anyOf:
          - type: string
          - type: 'null'
          title: Bannertype
        CreatedOn:
          type: string
          format: date-time
          title: Createdon
        AnalysisId:
          anyOf:
          - type: integer
          - type: 'null'
          title: Analysisid
        AttachedField:
          anyOf:
          - type: string
          - type: 'null'
          title: Attachedfield
        IsSiteWideNotification:
          type: boolean
          title: Issitewidenotification
          default: true
      type: object
      required:
      - Title
      - Message
      - MessageLong
      - BannerType
      title: Notification
    CustomerRelationEnum:
      type: string
      enum:
      - Businesses
      - Contracts
      - Invites
      title: CustomerRelationEnum
    UpdateCustomerBusinessSubscription:
      properties:
        IsSubscribed:
          type: boolean
          title: Issubscribed
      type: object
      required:
      - IsSubscribed
      title: UpdateCustomerBusinessSubscription
    CustomerUpdate:
      properties:
        FirstName:
          anyOf:
          - type: string
            maxLength: 100
            minLength: 1
          - type: 'null'
          title: Firstname
        LastName:
          anyOf:
          - type: string
            maxLength: 100
            minLength: 1
          - type: 'null'
          title: Lastname
      type: object
      title: CustomerUpdate
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
    NotificationSortByEnum:
      type: string
      enum:
      - CreatedOn
      title: NotificationSortByEnum
    Contract:
      properties:
        Id:
          type: integer
          title: Id
        Name:
          anyOf:
          - type: string
          - type: 'null'
          title: Name
      type: object
      required:
      - Id
      title: Contract
  securitySchemes:
    Authorization:
      type: http
      scheme: bearer