Worders PurchaseOrders API
The PurchaseOrders API from Worders — 2 operation(s) for purchaseorders.
The PurchaseOrders API from Worders — 2 operation(s) for purchaseorders.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/worders-purchaseorders-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: 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_…`.'