Lokki Visibility API

The Visibility API from Lokki — 12 operation(s) for visibility.

Operations 12

POST /v2/visibility/signup-form #
POST /v2/visibility/user #
POST /v2/visibility/user/setup #
POST /v2/visibility/user/validation-code/send #
POST /v2/visibility/user/validation-code/check #
GET /v2/visibility/my-data #
POST /v2/visibility/upgrade/form #
POST /v2/visibility/upgrade/help-request #
POST /v2/visibility/stripe/setup #
GET /v2/visibility/stripe/check #
GET /v2/visibility/onboarding/check #
POST /v2/visibility/products #

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/lokki-visibility-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

lokki-visibility-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Lokki Visibility API
  description: The main API powering the Lokki Dashboard and Online Store
  version: '2.0'
  contact: {}
servers: []
security:
- x-access-token: []
tags:
- name: Visibility
paths:
  /v2/visibility/signup-form:
    post:
      operationId: sendVisibilitySignupForm
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VisibilityCompleteFormInfosDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VisibilityCreateAccountResultDto'
        '201':
          description: ''
      tags:
      - Visibility
  /v2/visibility/user:
    post:
      operationId: createVisibilityUser
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VisibilityCreateUserDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
      tags:
      - Visibility
  /v2/visibility/user/setup:
    post:
      operationId: setupVisibilityUser
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VisibilitySetupUserDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VisibilitySetupUserResultDto'
        '201':
          description: ''
      tags:
      - Visibility
  /v2/visibility/user/validation-code/send:
    post:
      operationId: sendVisibilityValidationCode
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SendVisibilityValidationCodeDto'
      responses:
        '201':
          description: ''
      tags:
      - Visibility
  /v2/visibility/user/validation-code/check:
    post:
      operationId: checkVisibilityValidationCode
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CheckVisibilityValidationCodeDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CheckValidationCodeStatusReturnDto'
      tags:
      - Visibility
  /v2/visibility/my-data:
    get:
      operationId: getVisibilityData
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VisibilityCompanyData'
      tags:
      - Visibility
  /v2/visibility/upgrade/form:
    post:
      operationId: sendVisibilityUpgradeForm
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VisibilityUpgradeFormInfosDto'
      responses:
        '201':
          description: ''
      tags:
      - Visibility
  /v2/visibility/upgrade/help-request:
    post:
      operationId: sendVisibilityHelpRequest
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VisibilityHelpRequestDto'
      responses:
        '201':
          description: ''
      tags:
      - Visibility
  /v2/visibility/stripe/setup:
    post:
      operationId: setupVisibilityStripeAccount
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VisibilitySetupStripeDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StripeAccountUrlDto'
      tags:
      - Visibility
  /v2/visibility/stripe/check:
    get:
      operationId: checkVisibilityStripeSetupStatus
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CheckStripeSetupStatusReturnDto'
      tags:
      - Visibility
  /v2/visibility/onboarding/check:
    get:
      operationId: checkVisibilityOnboardingStatus
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CheckOnboardingStatusReturnDto'
      tags:
      - Visibility
  /v2/visibility/products:
    post:
      operationId: createOneVisibilityProduct
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateUpdateServiceDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Service'
      tags:
      - Visibility
components:
  schemas:
    CompanyDocumentBodyDto:
      type: object
      properties:
        id:
          type: string
        internalTitle:
          type: string
        collection:
          type: string
          enum:
          - termsAndConditions
        type:
          type: string
          enum:
          - lokkiPayment
          - lokkiVisibility
          - lokkiRent
      required:
      - id
      - internalTitle
      - collection
      - type
    UserValidationCode:
      type: object
      properties:
        code:
          type: string
        expiresAt:
          format: date-time
          type: string
      required:
      - code
      - expiresAt
    CreateUpdateServiceDto:
      type: object
      properties:
        priceModels:
          type: array
          items:
            oneOf:
            - $ref: '#/components/schemas/PriceModelSpecificDuration'
            - $ref: '#/components/schemas/PriceModelRangeDuration'
            - $ref: '#/components/schemas/PriceModelLLDDuration'
        id:
          type: string
        name:
          type: string
        rentalType:
          enum:
          - LCD
          - LLD
          type: string
        fields:
          type: array
          items:
            $ref: '#/components/schemas/ServiceField'
        tags:
          type: array
          items:
            $ref: '#/components/schemas/ServiceTag'
        imageUrl:
          type: array
          items:
            type: string
        videoLink:
          type: string
        attachedFiles:
          type: array
          items:
            $ref: '#/components/schemas/AttachedFile'
        rank:
          type: number
        isAvailable:
          type: boolean
        onlineStoreInformation:
          type: object
          properties:
            name:
              required: true
              $ref: '#/components/schemas/LocalizedContent'
            description:
              required: true
              $ref: '#/components/schemas/LocalizedContent'
        productModel:
          type: string
        relatedProducts:
          type: array
          items:
            type: string
        isRelatedProducts:
          type: boolean
        productSurveyId:
          type: string
        hideOnOnlineStore:
          type: boolean
        vat:
          type: number
        isAssuranceTulip:
          type: boolean
        verticalCategoryId:
          type: string
        attributes:
          type: array
          items:
            $ref: '#/components/schemas/ServiceAttribute'
        translationInProgress:
          type: boolean
        onlineAvailability:
          type: boolean
        printed:
          type: boolean
      required:
      - priceModels
      - name
      - rentalType
      - fields
      - tags
      - imageUrl
      - videoLink
      - attachedFiles
      - rank
      - isAvailable
      - onlineStoreInformation
      - productModel
      - relatedProducts
      - isRelatedProducts
      - productSurveyId
      - hideOnOnlineStore
      - vat
      - isAssuranceTulip
      - onlineAvailability
      - printed
    PriceModelLLDDuration:
      type: object
      properties:
        type:
          type: string
          default: LLD
          enum:
          - LLD
        calendarMonths:
          type: number
        id:
          type: string
        price:
          type:
          - number
          - 'null'
        priceLowSeason:
          type:
          - number
          - 'null'
        label:
          $ref: '#/components/schemas/LocalizedContent'
      required:
      - type
      - calendarMonths
      - id
      - price
      - priceLowSeason
      - label
    AttachedFile:
      type: object
      properties:
        name:
          type: string
        key:
          type: string
        size:
          type: number
        type:
          type: string
        uid:
          type: string
      required:
      - name
      - key
      - size
      - type
    SendVisibilityValidationCodeDto:
      type: object
      properties:
        email:
          type: string
        lang:
          type: string
          enum:
          - fr
          - en
          - es
          - pt
          - it
          - pl
          - de
          - nl
      required:
      - email
      - lang
    ItemAttribute:
      type: object
      properties:
        attribute:
          type: string
        tags:
          type: array
          items:
            type: string
      required:
      - attribute
      - tags
    PriceModelRangeDuration:
      type: object
      properties:
        type:
          type: string
          default: range
          enum:
          - range
        minDuration:
          type: number
        maxDuration:
          type: number
        durationInDays:
          type: number
        id:
          type: string
        price:
          type:
          - number
          - 'null'
        priceLowSeason:
          type:
          - number
          - 'null'
        label:
          $ref: '#/components/schemas/LocalizedContent'
      required:
      - type
      - minDuration
      - maxDuration
      - id
      - price
      - priceLowSeason
      - label
    VisibilitySetupUserDto:
      type: object
      properties:
        email:
          type: string
        lang:
          type: string
          enum:
          - fr
          - en
          - es
          - pt
          - it
          - pl
          - de
          - nl
      required:
      - email
      - lang
    ServiceTag:
      type: object
      properties:
        name:
          type: string
        value:
          type: string
      required:
      - name
      - value
    StripeAccountUrlDto:
      type: object
      properties:
        url:
          type: string
      required:
      - url
    TentativeCategorization:
      type: object
      properties:
        subcategoryName:
          type:
          - string
          - 'null'
        verticalName:
          type:
          - string
          - 'null'
      required:
      - subcategoryName
      - verticalName
    VisibilityUpgradeFormInfosDto:
      type: object
      properties:
        acceptContract:
          type: boolean
        acceptPublish:
          type: boolean
        firstName:
          type: string
        lastName:
          type: string
        email:
          type: string
        phone:
          type: string
        companyName:
          type: string
        companyBusinessName:
          type: string
        siret:
          type: string
        vatNumber:
          type: string
        siretCountry:
          type: string
          enum:
          - FR
          - BE
          - CH
          - DE
          - NL
          - ES
          - PT
          - IT
        address:
          type: string
        addressComponents:
          $ref: '#/components/schemas/CreateUpdateExternalCompanyAddressComponentsDto'
        businessAddressComponents:
          $ref: '#/components/schemas/CreateUpdateExternalCompanyAddressComponentsDto'
        lat:
          type: number
        lng:
          type: number
        country:
          type: string
        companySignatureDocument:
          $ref: '#/components/schemas/CompanyDocumentBodyDto'
      required:
      - acceptContract
      - acceptPublish
      - firstName
      - lastName
      - email
      - phone
      - companyName
      - siret
      - vatNumber
      - siretCountry
      - address
      - addressComponents
      - lat
      - lng
      - country
      - companySignatureDocument
    CheckStripeSetupStatusReturnDto:
      type: object
      properties:
        isSuccess:
          type: boolean
        url:
          type:
          - string
          - 'null'
      required:
      - isSuccess
      - url
    SelfTestUtmInfos:
      type: object
      properties:
        utm_source:
          type: string
        utm_medium:
          type: string
        utm_campaign:
          type: string
        utm_content:
          type: string
        utm_term:
          type: string
        device:
          type: string
        matchtype:
          type: string
        campaign_id:
          type: string
        adset_id:
          type: string
        ad_id:
          type: string
        GeoLoc:
          type: string
    ServiceField:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        value:
          type: string
        isTagged:
          type: boolean
      required:
      - id
      - name
      - value
      - isTagged
    VisibilityFormExternalCompanyDto:
      type: object
      properties:
        address:
          type: string
        addressComponents:
          $ref: '#/components/schemas/CreateUpdateExternalCompanyAddressComponentsDto'
        lat:
          type: number
        lng:
          type: number
      required:
      - address
      - addressComponents
      - lat
      - lng
    VisibilityCreateUserDto:
      type: object
      properties:
        email:
          type: string
        password:
          type: string
        lang:
          type: string
          enum:
          - fr
          - en
          - es
          - pt
          - it
          - pl
          - de
          - nl
        fromE2E:
          type: boolean
      required:
      - email
      - password
      - lang
    PriceModelSpecificDuration:
      type: object
      properties:
        type:
          type: string
          default: specific
          enum:
          - specific
        duration:
          type: number
        id:
          type: string
        price:
          type:
          - number
          - 'null'
        priceLowSeason:
          type:
          - number
          - 'null'
        label:
          $ref: '#/components/schemas/LocalizedContent'
      required:
      - type
      - duration
      - id
      - price
      - priceLowSeason
      - label
    VisibilityHelpRequestDto:
      type: object
      properties:
        vatNumber:
          type: string
        businessId:
          type: string
        siretCountry:
          type: string
          enum:
          - FR
          - BE
          - CH
          - DE
          - NL
          - ES
          - PT
          - IT
      required:
      - vatNumber
      - businessId
      - siretCountry
    CheckOnboardingStatusReturnDto:
      type: object
      properties:
        isSuccess:
          type: boolean
        message:
          type:
          - string
          - 'null'
      required:
      - isSuccess
      - message
    VisibilityCompleteFormInfosDto:
      type: object
      properties:
        firstName:
          type: string
        lastName:
          type: string
        email:
          type: string
        phone:
          type: string
        companyName:
          type: string
        website:
          type: string
        lang:
          type: string
          enum:
          - fr
          - en
          - es
          - pt
          - it
          - pl
          - de
          - nl
        verticales:
          type: array
          items:
            type: string
            enum:
            - BIKE
            - ELECTRIC_BIKE
            - MOPED
            - MOTORCYCLE
            - CAR
            - SCOOTER
            - SKI
            - CLIMBING
            - SNOWSHOES
            - SURF
            - PADDLE
            - CANOE_KAYAK
            - BOAT
            - EVENT
            - MOTOCULTURE
            - TOOLING
        companyInfos:
          $ref: '#/components/schemas/VisibilityFormExternalCompanyDto'
        utmInfos:
          $ref: '#/components/schemas/SelfTestUtmInfos'
      required:
      - firstName
      - lastName
      - email
      - phone
      - companyName
      - website
      - lang
      - verticales
      - companyInfos
      - utmInfos
    VisibilityCompanyData:
      type: object
      properties:
        slug:
          type: string
        name:
          type: string
        email:
          type: string
        phone:
          type: string
        website:
          type: string
        verticales:
          type: array
          items:
            type: string
            enum:
            - BIKE
            - ELECTRIC_BIKE
            - MOPED
            - MOTORCYCLE
            - CAR
            - SCOOTER
            - SKI
            - CLIMBING
            - SNOWSHOES
            - SURF
            - PADDLE
            - CANOE_KAYAK
            - BOAT
            - EVENT
            - MOTOCULTURE
            - TOOLING
        siret:
          type: string
        vatNumber:
          type: string
        siretCountry:
          type: string
          enum:
          - FR
          - BE
          - CH
          - DE
          - NL
          - ES
          - PT
          - IT
        lastUpdate:
          format: date-time
          type: string
        visits:
          type: number
        lat:
          type: number
        lng:
          type: number
        address:
          type: string
        addressComponents:
          $ref: '#/components/schemas/ExternalCompanyAddressComponents'
        claimStatus:
          type: string
          enum:
          - PENDING
          - HELP_REQUESTED
          - ACCEPTED
        upgradeStatus:
          type:
          - string
          - 'null'
          enum:
          - NOT_STARTED
          - PENDING
          - FINISHED
        visible:
          type: boolean
      required:
      - slug
      - name
      - email
      - phone
      - website
      - verticales
      - siret
      - vatNumber
      - siretCountry
      - lastUpdate
      - visits
      - lat
      - lng
      - address
      - claimStatus
      - upgradeStatus
      - visible
    VisibilitySetupUserResultDto:
      type: object
      properties:
        isSuccess:
          type: boolean
        code:
          type: string
          enum:
          - NO_ACCOUNT
          - NO_COMPANY
          - EMPLOYEE
          - OWNER
          - OWNER_DEMO
      required:
      - isSuccess
      - code
    CreateUpdateExternalCompanyAddressComponentsDto:
      type: object
      properties:
        streetNumber:
          type: string
        street:
          type: string
        postalCode:
          type: string
        city:
          type: string
        administrativeAreaLevel1:
          type: string
        administrativeAreaLevel2:
          type: string
        country:
          type: string
        placeId:
          type: string
      required:
      - streetNumber
      - street
      - postalCode
      - city
      - administrativeAreaLevel1
      - administrativeAreaLevel2
      - country
    VisibilitySetupStripeDto:
      type: object
      properties:
        from:
          enum:
          - settings
          - visibility-free
          type:
          - string
          - 'null'
        country:
          type: string
      required:
      - country
    ExternalCompanyAddressComponents:
      type: object
      properties:
        streetNumber:
          type: string
        street:
          type: string
        postalCode:
          type: string
        city:
          type: string
        administrativeAreaLevel1:
          type: string
        administrativeAreaLevel2:
          type: string
        country:
          type: string
        placeId:
          type: string
      required:
      - streetNumber
      - street
      - postalCode
      - city
      - administrativeAreaLevel1
      - administrativeAreaLevel2
      - country
    LocalizedContent:
      type: object
      additionalProperties:
        type: string
    CheckValidationCodeStatusReturnDto:
      type: object
      properties:
        isValid:
          type: boolean
      required:
      - isValid
    CheckVisibilityValidationCodeDto:
      type: object
      properties:
        email:
          type: string
        code:
          type: string
      required:
      - email
      - code
    ItemOnlineStoreInformation:
      type: object
      properties:
        name:
          $ref: '#/components/schemas/LocalizedContent'
        description:
          $ref: '#/components/schemas/LocalizedContent'
      required:
      - name
      - description
    ServiceAttribute:
      type: object
      properties:
        attribute:
          type: string
        tags:
          type: array
          items:
            type: string
      required:
      - attribute
      - tags
    User:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        email:
          type: string
        phone:
          type: string
        picture:
          type: string
        role:
          enum:
          - user
          - manager
          - admin
          - reconditioner
          type: string
        password:
          type: string
        validationCode:
          $ref: '#/components/schemas/UserValidationCode'
        isDemoAccount:
          type: boolean
        isAccountActivated:
          type: boolean
        lastConnection:
          format: date-time
          type: string
        createdFrom:
          enum:
          - admin_dashboard
          - employee
          - lokkit
          - visibility
          - self_test
          type: string
        createdAt:
          format: date-time
          type: string
        connectionAttempt:
          type: number
        availableTools:
          type: array
          items:
            type: string
            enum:
            - dashboard
            - lokkit
            - visibility
            - visibility_one
            - reconditioning
        signedUpWith:
          enum:
          - google
          - apple
          type: string
      required:
      - id
      - name
      - email
      - phone
      - picture
      - role
      - isDemoAccount
      - isAccountActivated
      - createdFrom
      - createdAt
      - connectionAttempt
      - availableTools
    Service:
      type: object
      properties:
        priceModels:
          type: array
          items:
            oneOf:
            - $ref: '#/components/schemas/PriceModelSpecificDuration'
            - $ref: '#/components/schemas/PriceModelRangeDuration'
            - $ref: '#/components/schemas/PriceModelLLDDuration'
        id:
          type: string
        rentalType:
          enum:
          - LCD
          - LLD
          type: string
        name:
          type: string
        imageUrl:
          type: array
          items:
            type: string
        videoLink:
          type: string
        attachedFiles:
          type: array
          items:
            $ref: '#/components/schemas/AttachedFile'
        companyId:
          type: string
        rank:
          type: number
        isAvailable:
          type: boolean
        onlineStoreInformation:
          $ref: '#/components/schemas/ItemOnlineStoreInformation'
        productModel:
          type: string
        fields:
          type: array
          items:
            $ref: '#/components/schemas/ServiceField'
        tags:
          type: array
          items:
            $ref: '#/components/schemas/ServiceTag'
        isRelatedProducts:
          type: boolean
        relatedProducts:
          type: array
          items:
            type: string
        productSurveyId:
          type: string
        verticalCategoryId:
          type: string
        attributes:
          type: array
          items:
            $ref: '#/components/schemas/ItemAttribute'
        aiAttributes:
          type: array
          items:
            $ref: '#/components/schemas/ItemAttribute'
        hideOnOnlineStore:
          type: boolean
        isAssuranceTulip:
          type: boolean
        onlineAvailability:
          type: boolean
        printed:
          type: boolean
        vat:
          type: number
        translationInProgress:
          type: boolean
        tentativeCategorization:
          $ref: '#/components/schemas/TentativeCategorization'
      required:
      - priceModels
      - id
      - rentalType
      - name
      - imageUrl
      - videoLink
      - attachedFiles
      - companyId
      - rank
      - isAvailable
      - onlineStoreInformation
      - productModel
      - fields
      - tags
      - isRelatedProducts
      - relatedProducts
      - productSurveyId
      - hideOnOnlineStore
      - isAssuranceTulip
      - onlineAvailability
      - printed
      - vat
      - translationInProgress
    VisibilityCreateAccountResultDto:
      type: object
      properties:
        user:
          $ref: '#/components/schemas/User'
      required:
      - user
  securitySchemes:
    x-access-token:
      scheme: bearer
      bearerFormat: JWT
      type: apiKey
      in: header
      name: x-access-token