Oden Technologies Maintenance Work Orders API
The Maintenance Work Orders API from Oden Technologies — 3 operation(s) for maintenance work orders.
The Maintenance Work Orders API from Oden Technologies — 3 operation(s) for maintenance work orders.
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/oden-technologies-maintenance-work-orders-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:
version: 2.0.0
title: Oden Maintenance Work Orders API
contact:
name: Oden Support
email: support@oden.io
url: https://oden.io/contact/
description: The Oden Private Partner API exposes RESTful API endpoints for clients to get, create and update data on the Oden Platform.
servers:
- url: https://api.oden.app
description: Oden API server
security:
- APIKeyAuth: []
tags:
- name: Maintenance Work Orders
paths:
/v2/maintenance_work_order/search:
post:
operationId: search_maintenance_work_orders
summary: Search maintenance work orders
tags:
- Maintenance Work Orders
description: 'Search for Maintenance Work Orders by:
- `id`
- `external_id`
- `line_id` with required `start_time` and `end_time` filters'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
id:
type: string
format: uuid
external_id:
type: string
line:
$ref: '#/components/schemas/Line'
start_time:
type: string
format: date-time
end_time:
type: string
format: date-time
match:
$ref: '#/components/schemas/Match'
examples:
Search by ID:
summary: Search for maintenance work order by ID
value:
id: 0012ab4d-1234-123a-8c76-6ea2344be6df
Search by external ID:
summary: Search for maintenance work order by external ID
value:
external_id: MWO-12345
line:
id: 0012ab4d-1234-123a-8c76-6ea2344be6df
Search by line with time range:
summary: Search for maintenance work orders on a line within a time range
value:
line:
id: 0012ab4d-1234-123a-8c76-6ea2344be6df
start_time: '2021-04-04T08:00:04Z'
end_time: '2021-04-10T08:00:04Z'
match: all
responses:
'200':
description: A list of maintenance work orders.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/MaintenanceWorkOrder'
'400':
$ref: '#/components/responses/ParameterError'
'401':
$ref: '#/components/responses/UnauthorizedError'
'403':
$ref: '#/components/responses/ForbiddenError'
'404':
$ref: '#/components/responses/NotFoundError'
'409':
$ref: '#/components/responses/NotUniqueError'
'500':
$ref: '#/components/responses/InternalError'
'501':
$ref: '#/components/responses/UnimplementedError'
/v2/maintenance_work_order/set:
post:
operationId: set_maintenance_work_order
summary: Create or update a maintenance work order
tags:
- Maintenance Work Orders
description: 'Create or update a Maintenance Work Order.
To **create** a new Maintenance Work Order:
- Include `name` and `line`, `external_id`, `started_at` (required)
- Omit `id` field
- include `completed_at`, `description`, `metadata`
To **update** an existing Maintenance Work Order:
- Include the `id` of the existing work order
- Include any fields to update
NOTE: Any fields not included in an update request will be left unchanged.'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/MaintenanceWorkOrder'
examples:
Create a maintenance work order:
summary: Create a new maintenance work order
value:
name: Scheduled Maintenance Q1
line:
id: 0012ab4d-1234-123a-8c76-6ea2344be6df
description: Quarterly scheduled maintenance
external_id: MWO-2024-001
started_at: '2024-01-15T08:00:00Z'
completed_at: '2024-01-15T17:00:00Z'
metadata: '{"technician": "John Doe", "priority": "high"}'
Update an existing maintenance work order:
summary: Update an existing maintenance work order
value:
id: 0012ab4d-1234-123a-8c76-6ea2344be6df
completed_at: '2024-01-15T18:30:00Z'
metadata:
technician: John Doe
priority: high
notes: Completed late due to parts delay
responses:
'200':
description: A list containing the created or updated maintenance work order.
content:
application/json:
schema:
$ref: '#/components/schemas/MaintenanceWorkOrder'
'400':
$ref: '#/components/responses/ParameterError'
'401':
$ref: '#/components/responses/UnauthorizedError'
'403':
$ref: '#/components/responses/ForbiddenError'
'404':
$ref: '#/components/responses/NotFoundError'
'409':
$ref: '#/components/responses/NotUniqueError'
'500':
$ref: '#/components/responses/InternalError'
'501':
$ref: '#/components/responses/UnimplementedError'
/v2/maintenance_work_order/delete:
post:
operationId: delete_maintenance_work_order
summary: Delete a maintenance work order
tags:
- Maintenance Work Orders
description: 'Delete a Maintenance Work Order by unique identifier:
- `id` OR `external_id`
- `match: unique` or omit (only unique is supported)'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/MaintenanceWorkOrder'
examples:
Delete by ID:
summary: Delete maintenance work order by ID
value:
id: 0012ab4d-1234-123a-8c76-6ea2344be6df
Delete by external ID:
summary: Delete maintenance work order by external ID
value:
external_id: MWO-12345
line:
id: 0012ab4d-1234-123a-8c76-6ea2344be6df
match: unique
responses:
'200':
description: A list containing the deleted maintenance work order.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/MaintenanceWorkOrder'
'400':
$ref: '#/components/responses/ParameterError'
'401':
$ref: '#/components/responses/UnauthorizedError'
'403':
$ref: '#/components/responses/ForbiddenError'
'404':
$ref: '#/components/responses/NotFoundError'
'409':
$ref: '#/components/responses/NotUniqueError'
'500':
$ref: '#/components/responses/InternalError'
'501':
$ref: '#/components/responses/UnimplementedError'
components:
responses:
NotFoundError:
description: Entity not found
content:
application/json:
schema:
$ref: '#/components/schemas/GenericError'
ParameterError:
description: An error occurred regarding one of the input parameters
content:
application/json:
schema:
type: object
required:
- error
- name
- retryable
properties:
error:
type: string
name:
type: string
retryable:
type: boolean
UnauthorizedError:
description: User has provided either no credentials or invalid credentials
content:
application/json:
schema:
$ref: '#/components/schemas/GenericError'
NotUniqueError:
description: 'A {match: "unique"} was requested, but multiple entities matched the search parameters.
'
content:
application/json:
schema:
type: object
required:
- entity_name
- num_matches
- error
- retryable
properties:
entity_name:
type: string
num_matches:
type: integer
error:
type: string
retryable:
type: boolean
UnimplementedError:
description: Endpoint is not yet implemented
content:
application/json:
schema:
$ref: '#/components/schemas/GenericError'
ForbiddenError:
description: 'User has provided valid credentials but is not authorized to access the entity
'
content:
application/json:
schema:
$ref: '#/components/schemas/GenericError'
InternalError:
description: 'An internal server error has occurred. If reporting the error to Oden, include the ID returned in this response to aid in debugging.
'
content:
application/json:
schema:
type: object
required:
- error
- retryable
- id
properties:
error:
type: string
retryable:
type: boolean
id:
type: string
format: uuid
schemas:
Factory:
type: object
description: An entity representing a factory.
properties:
id:
type: string
format: uuid
name:
type: string
secondary_name:
type:
- string
- 'null'
timezone:
type: string
match:
$ref: '#/components/schemas/Match'
Line:
type: object
description: An entity representing a single line of production.
properties:
id:
type: string
format: uuid
name:
type: string
secondary_name:
type: string
factory:
$ref: '#/components/schemas/Factory'
match:
$ref: '#/components/schemas/Match'
GenericError:
type: object
required:
- error
- retryable
properties:
error:
type: string
retryable:
type: boolean
Match:
type: string
enum:
- first
- last
- unique
- all
default: unique
description: 'Describes which item(s) to match when searching for an entity:
- `unique` (default): will return an error if the search object matches multiple entities
- `all`: will return every item that matches search entity
- `last`: will return the most recent object, where applicable
- `first`: will return the least recent object, where applicable
'
MaintenanceWorkOrder:
type: object
description: An object representing a maintenance work order on a line.
properties:
id:
type: string
format: uuid
name:
type: string
description:
type: string
external_id:
type: string
line:
$ref: '#/components/schemas/Line'
started_at:
type: string
format: date-time
completed_at:
type: string
format: date-time
metadata:
type: object
additionalProperties: true
match:
$ref: '#/components/schemas/Match'
securitySchemes:
APIKeyAuth:
type: apiKey
in: header
name: Authorization
description: Prefix the value with \"Token\" to indicate the custom authorization type