Worders PurchaseOrders API

The PurchaseOrders API from Worders — 2 operation(s) for purchaseorders.

Operations 2

GET /V1/freelancers/{freelancer_id}/purchase_orders List purchase orders for a freelancer
GET /V1/purchase_orders/{po_number} PO detail with all its jobs

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/worders-purchaseorders-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

worders-purchaseorders-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Worders API V1 Customers Purchase Orders API
  version: v1
  description: Worders API endpoints (freelance invoice verification, webhooks, ...).
servers:
- url: https://api.worders.net
tags:
- name: PurchaseOrders
paths:
  /V1/freelancers/{freelancer_id}/purchase_orders:
    parameters:
    - name: freelancer_id
      in: path
      required: true
      schema:
        type: string
        format: uuid
    get:
      summary: List purchase orders for a freelancer
      tags:
      - PurchaseOrders
      description: List purchase orders attached to a freelancer over a period. By default `deleted` and `deprecated` POs are excluded.
      security:
      - cookie_session: []
      - bearer_auth: []
      parameters:
      - name: period_start
        in: query
        required: false
        schema:
          type: string
          format: date
      - name: period_end
        in: query
        required: false
        schema:
          type: string
          format: date
      - name: status
        in: query
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
        description: Optional status filter, e.g. status[]=generated&status[]=paid
      - name: page
        in: query
        required: false
        schema:
          type: integer
          default: 1
      - name: per_page
        in: query
        required: false
        schema:
          type: integer
          default: 50
      responses:
        '200':
          description: 'pagination: second page returns correct slice'
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/PurchaseOrderSummary'
                  meta:
                    $ref: '#/components/schemas/PaginationMeta'
        '404':
          description: freelancer not found
  /V1/purchase_orders/{po_number}:
    parameters:
    - name: po_number
      in: path
      required: true
      schema:
        type: string
      description: PO number, e.g. PO-2025-001234
    get:
      summary: PO detail with all its jobs
      tags:
      - PurchaseOrders
      description: Returns the PO with its freelancer and all attached jobs (price, currency, language pair, order reference, delivery date). Used when an invoice cites a PO number.
      security:
      - cookie_session: []
      - bearer_auth: []
      responses:
        '200':
          description: PO found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PurchaseOrderDetail'
        '404':
          description: PO not found
        '401':
          description: unauthenticated
components:
  schemas:
    PurchaseOrderSummary:
      type: object
      properties:
        id:
          type: string
          format: uuid
        internal_id:
          type:
          - string
          - 'null'
          format: uuid
          description: Same as id
        po_number:
          type: string
          example: PO-2025-001234
        currency:
          type: string
          example: EUR
        status:
          type: string
          example: generated
        created_at:
          type: string
          format: date-time
        total_amount:
          type: number
          format: float
          example: 1250.0
        jobs_count:
          type: integer
          example: 5
        freelancer:
          type: object
          properties:
            id:
              type: string
              format: uuid
            full_name:
              type: string
    PurchaseOrderDetail:
      type: object
      properties:
        id:
          type: string
          format: uuid
        internal_id:
          type:
          - string
          - 'null'
          format: uuid
          description: Same as id
        po_number:
          type: string
        currency:
          type: string
        status:
          type: string
        created_at:
          type: string
          format: date-time
        total_amount:
          type: number
          format: float
        freelancer:
          type:
          - object
          - 'null'
          properties:
            id:
              type: string
              format: uuid
            full_name:
              type: string
        jobs:
          type: array
          items:
            $ref: '#/components/schemas/Job'
    PaginationMeta:
      type: object
      properties:
        total:
          type: integer
          example: 42
        page:
          type: integer
          example: 1
        per_page:
          type: integer
          example: 50
    Job:
      type: object
      properties:
        id:
          type: string
          format: uuid
        internal_id:
          type:
          - string
          - 'null'
          format: uuid
          description: Same as id
        plunet_id:
          type:
          - string
          - 'null'
        job_no:
          type:
          - string
          - 'null'
        short_job_type:
          type:
          - string
          - 'null'
          example: TRA
        status:
          type: string
          example: approved
        price:
          type:
          - number
          - 'null'
          format: float
        currency:
          type:
          - string
          - 'null'
        language_pair:
          type:
          - string
          - 'null'
          example: en > fr
        order_reference:
          type:
          - string
          - 'null'
        delivered_on:
          type:
          - string
          - 'null'
          format: date-time
  securitySchemes:
    cookie_session:
      type: apiKey
      in: cookie
      name: _worders_session
      description: Authenticated Devise session cookie (api.worders.net).
    bearer_auth:
      type: http
      scheme: bearer
      description: 'Service API key issued from the admin UI. Sent as `Authorization: Bearer wrd_live_…`.'