Pixepi Apps API

The Apps API from Pixepi — 11 operation(s) for apps.

Operations 13

GET /api/v1/apps Tool catalog #
GET /api/v1/apps/{slug} Tool contract #
POST /api/v1/apps/{slug}/run Run the tool #
GET /api/v1/apps/gelir-gider-defteri/categories Lists categories (shared system categories plus your own) #
POST /api/v1/apps/gelir-gider-defteri/categories Adds a new category #
POST /api/v1/apps/gelir-gider-defteri/categories/{id} Updates a category #
POST /api/v1/apps/gelir-gider-defteri/categories/{id}/archive Archives a category; calling it again does not change the status #
GET /api/v1/apps/gelir-gider-defteri/entries Lists entries; filters by date, type, category and note #
POST /api/v1/apps/gelir-gider-defteri/entries Adds a new entry #
POST /api/v1/apps/gelir-gider-defteri/entries/{id} Updates an entry #
POST /api/v1/apps/gelir-gider-defteri/entries/{id}/delete Deletes an entry #
GET /api/v1/apps/gelir-gider-defteri/summary Summary breakdown: by month, category or type #
GET /api/v1/apps/gelir-gider-defteri/export.csv Exports entries as CSV #

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/pixepi:pixepi-apps-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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

pixepi-apps-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Pixepi Apps API
  version: 1.0.0
  description: 'External developer API for Pixepi tools. Auth: Authorization: Bearer .'
servers:
- url: https://api.pixepi.com
security:
- bearerAuth: []
tags:
- name: Apps
paths:
  /api/v1/apps:
    get:
      summary: Tool catalog
      security: []
      responses:
        '200':
          description: Tool list
      tags:
      - Apps
      operationId: getApiV1Apps
      x-operation-id-source: derived
  /api/v1/apps/{slug}:
    get:
      summary: Tool contract
      security: []
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Input/output/option contract
      tags:
      - Apps
      operationId: getApiV1AppsBySlug
      x-operation-id-source: derived
  /api/v1/apps/{slug}/run:
    post:
      summary: Run the tool
      description: File input is sent as multipart/form-data; options take the form options[field]. Text input travels in the same form or as a {"input":"...","options":{...}} JSON body.
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Job finished
        '401':
          description: Missing/invalid auth
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '422':
          description: Input error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Quota/rate limit
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      tags:
      - Apps
      operationId: postApiV1AppsBySlugRun
      x-operation-id-source: derived
  /api/v1/apps/gelir-gider-defteri/categories:
    get:
      summary: Lists categories (shared system categories plus your own)
      responses:
        '200':
          description: Success
        '401':
          description: Missing/invalid auth
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Record not found (404 also for cross-account access)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '422':
          description: Input error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      tags:
      - Apps
      operationId: getApiV1AppsGelirGiderDefteriCategories
      x-operation-id-source: derived
    post:
      summary: Adds a new category
      responses:
        '200':
          description: Success
        '401':
          description: Missing/invalid auth
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Record not found (404 also for cross-account access)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '422':
          description: Input error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
      tags:
      - Apps
      operationId: postApiV1AppsGelirGiderDefteriCategories
      x-operation-id-source: derived
  /api/v1/apps/gelir-gider-defteri/categories/{id}:
    post:
      summary: Updates a category
      responses:
        '200':
          description: Success
        '401':
          description: Missing/invalid auth
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Record not found (404 also for cross-account access)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '422':
          description: Input error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
      tags:
      - Apps
      operationId: postApiV1AppsGelirGiderDefteriCategoriesById
      x-operation-id-source: derived
  /api/v1/apps/gelir-gider-defteri/categories/{id}/archive:
    post:
      summary: Archives a category; calling it again does not change the status
      responses:
        '200':
          description: Success
        '401':
          description: Missing/invalid auth
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Record not found (404 also for cross-account access)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '422':
          description: Input error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
      tags:
      - Apps
      operationId: postApiV1AppsGelirGiderDefteriCategoriesByIdArchive
      x-operation-id-source: derived
  /api/v1/apps/gelir-gider-defteri/entries:
    get:
      summary: Lists entries; filters by date, type, category and note
      responses:
        '200':
          description: Success
        '401':
          description: Missing/invalid auth
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Record not found (404 also for cross-account access)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '422':
          description: Input error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      tags:
      - Apps
      operationId: getApiV1AppsGelirGiderDefteriEntries
      x-operation-id-source: derived
    post:
      summary: Adds a new entry
      responses:
        '200':
          description: Success
        '401':
          description: Missing/invalid auth
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Record not found (404 also for cross-account access)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '422':
          description: Input error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
      tags:
      - Apps
      operationId: postApiV1AppsGelirGiderDefteriEntries
      x-operation-id-source: derived
  /api/v1/apps/gelir-gider-defteri/entries/{id}:
    post:
      summary: Updates an entry
      responses:
        '200':
          description: Success
        '401':
          description: Missing/invalid auth
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Record not found (404 also for cross-account access)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '422':
          description: Input error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
      tags:
      - Apps
      operationId: postApiV1AppsGelirGiderDefteriEntriesById
      x-operation-id-source: derived
  /api/v1/apps/gelir-gider-defteri/entries/{id}/delete:
    post:
      summary: Deletes an entry
      responses:
        '200':
          description: Success
        '401':
          description: Missing/invalid auth
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Record not found (404 also for cross-account access)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '422':
          description: Input error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
      tags:
      - Apps
      operationId: postApiV1AppsGelirGiderDefteriEntriesByIdDelete
      x-operation-id-source: derived
  /api/v1/apps/gelir-gider-defteri/summary:
    get:
      summary: 'Summary breakdown: by month, category or type'
      responses:
        '200':
          description: Success
        '401':
          description: Missing/invalid auth
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Record not found (404 also for cross-account access)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '422':
          description: Input error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      tags:
      - Apps
      operationId: getApiV1AppsGelirGiderDefteriSummary
      x-operation-id-source: derived
  /api/v1/apps/gelir-gider-defteri/export.csv:
    get:
      summary: Exports entries as CSV
      responses:
        '200':
          description: Success
        '401':
          description: Missing/invalid auth
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Record not found (404 also for cross-account access)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '422':
          description: Input error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      tags:
      - Apps
      operationId: getApiV1AppsGelirGiderDefteriExportCsv
      x-operation-id-source: derived
components:
  schemas:
    Error:
      type: object
      properties:
        ok:
          type: boolean
          const: false
        error:
          type: string
        code:
          type: string
        request_id:
          type: string
      required:
      - ok
      - error
      - code
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: An API key created from your Pixepi account.
x-apps:
- slug: gorsel-kucult
  name: ImageShrink
  runnable: true
  run_url: https://api.pixepi.com/api/v1/apps/gorsel-kucult/run
  endpoints: []
  docs_url: https://image.pixepi.com/shrink/api-docs
  input:
    type: file
    name: file
    accept:
    - .jpg
    - .jpeg
    - .png
    - .webp
    mime:
    - image/jpeg
    - image/png
    - image/webp
    multiple: true
    label: Drop your images here
    hint: JPG, PNG or WebP · up to 100 MB each
    required: true
    placeholder: ''
  options:
  - key: quality
    type: range
    label: Quality
    default: 82
    choices: []
    min: 40
    max: 95
  - key: max_side
    type: number
    label: Long-edge limit (optional)
    default: ''
    choices: []
    min: 0
    max: 6000
  - key: format
    type: radio
    label: Output format
    default: same
    choices:
    - value: same
      label: Same format
      hint: The file type you uploaded is kept
    - value: jpeg
      label: JPG
      hint: Smallest size, for photos
    - value: webp
      label: WebP
      hint: Smaller file at the same quality
    - value: png
      label: PNG
      hint: Transparency is kept, size grows
    min: null
    max: null
  - key: auto_rotate
    type: switch
    label: Auto-correct phone orientation
    default: true
    choices: []
    min: null
    max: null
  batch:
    mode: files
    columns: []
  output:
    type: zip
    mime: application/zip
    ext: zip
    label: Download your images
  max_upload_mb: 100
- slug: gelir-gider-defteri
  name: Income-Expense Ledger
  runnable: false
  run_url: null
  endpoints:
  - method: GET
    path: /categories
    summary: Lists categories (shared system categories plus your own).
    write: false
  - method: POST
    path: /categories
    summary: Adds a new category.
    write: true
  - method: POST
    path: /categories/{id}
    summary: Updates a category.
    write: true
  - method: POST
    path: /categories/{id}/archive
    summary: Archives a category; calling it again does not change the status.
    write: true
  - method: GET
    path: /entries
    summary: Lists entries; filters by date, type, category and note.
    write: false
  - method: POST
    path: /entries
    summary: Adds a new entry.
    write: true
  - method: POST
    path: /entries/{id}
    summary: Updates an entry.
    write: true
  - method: POST
    path: /entries/{id}/delete
    summary: Deletes an entry.
    write: true
  - method: GET
    path: /summary
    summary: 'Summary breakdown: by month, category or type.'
    write: false
  - method: GET
    path: /export.csv
    summary: Exports entries as CSV.
    write: false
  docs_url: https://cashbook.pixepi.com/api-docs
  input:
    type: file
    name: file
    accept: []
    mime: []
    multiple: false
    label: ''
    hint: ''
    required: true
    placeholder: ''
  options: []
  batch:
    mode: files
    columns: []
  output:
    type: file
    mime: application/octet-stream
    ext: bin
    label: Sonucu indir
  max_upload_mb: 100
- slug: gorsel-donustur
  name: ImageConvert
  runnable: true
  run_url: https://api.pixepi.com/api/v1/apps/gorsel-donustur/run
  endpoints: []
  docs_url: https://image.pixepi.com/convert/api-docs
  input:
    type: file
    name: file
    accept:
    - .jpg
    - .jpeg
    - .png
    - .webp
    - .gif
    - .heic
    - .heif
    - .avif
    mime:
    - image/jpeg
    - image/png
    - image/webp
    - image/gif
    - image/heic
    - image/heif
    - image/avif
    multiple: true
    label: Drop your images here
    hint: JPG, PNG, WebP, GIF, HEIC or AVIF · up to 100 MB each
    required: true
    placeholder: ''
  options:
  - key: format
    type: radio
    label: Output format
    default: jpeg
    choices:
    - value: jpeg
      label: JPG
      hint: The universal photo format; transparency is filled
    - value: png
      label: PNG
      hint: Lossless; transparency is kept
    - value: webp
      label: WebP
      hint: Small file, keeps transparency
    - value: avif
      label: AVIF
      hint: Newest format; smallest file on modern devices
    min: null
    max: null
  - key: quality
    type: range
    label: Quality
    default: 85
    choices: []
    min: 40
    max: 95
  - key: background
    type: text
    label: Background color (for JPG)
    default: '#ffffff'
    choices: []
    min: null
    max: null
  batch:
    mode: files
    columns: []
  output:
    type: zip
    mime: application/zip
    ext: zip
    label: Download your images
  max_upload_mb: 100
- slug: pdfsplit
  name: PdfSplit
  runnable: true
  run_url: https://api.pixepi.com/api/v1/apps/pdfsplit/run
  endpoints: []
  docs_url: https://pdf.pixepi.com/split/api-docs
  input:
    type: file
    name: file
    accept:
    - .pdf
    mime:
    - application/pdf
    multiple: false
    label: Drop your PDF here
    hint: One PDF file · up to 100 MB
    required: true
    placeholder: ''
  options:
  - key: mode
    type: radio
    label: Split mode
    default: pages
    choices:
    - value: pages
      label: Split every page separately
      hint: Every page becomes its own single-page PDF
    - value: range
      label: Page range / selected pages
      hint: E.g. 1-3, 5, 7-9
    - value: chunks
      label: Split every N pages
      hint: The document is split into chunks with an equal number of pages
    min: null
    max: null
  - key: page_range
    type: text
    label: Page ranges
    default: 1-3
    choices: []
    min: null
    max: null
  - key: chunk_size
    type: number
    label: Chunk size
    default: 5
    choices: []
    min: 1
    max: 500
  - key: merge_output
    type: switch
    label: Merge ranges into one PDF
    default: false
    choices: []
    min: null
    max: null
  batch:
    mode: files
    columns: []
  output:
    type: file
    mime: application/pdf
    ext: pdf
    label: Download the result
  max_upload_mb: 100
- slug: pdfmerge
  name: PdfMerge
  runnable: true
  run_url: https://api.pixepi.com/api/v1/apps/pdfmerge/run
  endpoints: []
  docs_url: https://pdf.pixepi.com/merge/api-docs
  input:
    type: file
    name: file
    accept:
    - .pdf
    mime:
    - application/pdf
    multiple: true
    label: Drop your PDFs here
    hint: 2 to 20 PDF files · up to 100 MB each
    required: true
    placeholder: ''
  options: []
  batch:
    mode: files
    columns: []
  output:
    type: file
    mime: application/pdf
    ext: pdf
    label: Download merged PDF
  max_upload_mb: 100