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.
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/wove-webhooks-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
openapi: 3.2.0
info:
title: Wove External Webhooks API
version: 1.0.0
description: '# Wove External API Documentation
The Wove External API allows you to programmatically access document processing, shipment management, and validation capabilities.'
contact:
name: Wove API Support
email: api-support@wove.com
url: https://docs.wove.com
license:
name: Proprietary
url: https://wove.com/terms
servers:
- url: https://api.wove.com
description: Production server
- url: https://staging-api.wove.com
description: Staging server
- url: http://localhost:4000
description: Development server
security:
- bearerAuth: []
tags:
- name: Webhooks
description: Webhook management for async notifications
paths:
/api/v1/external/webhooks:
get:
tags:
- Webhooks
summary: List webhooks
description: 'Retrieve all configured webhooks for your organization.
## Webhook Events
The following events can trigger webhooks:
- `extraction.completed` - Document extraction successful
- `extraction.failed` - Document extraction failed
- `validation.completed` - Cross-validation completed
- `validation.failed` - Cross-validation failed
- `merge.completed` - Document merge completed
- `merge.failed` - Document merge failed
- `document.uploaded` - New document uploaded
- `document.deleted` - Document deleted
- `shipment.created` - Shipment created
- `shipment.updated` - Shipment updated
- `source.processing.completed` - Rate sheet source processing completed
- `source.processing.failed` - Rate sheet source processing failed
## Payload Format
All webhook payloads follow this structure:
```json
{
"event": "extraction.completed",
"timestamp": "2024-01-15T10:30:00.000Z",
"data": { /* event-specific data */ }
}
```
See the schemas section for detailed payload structures for each event type.'
security:
- bearerAuth: []
responses:
'200':
description: Webhooks retrieved successfully
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
data:
type: array
items:
$ref: '#/components/schemas/Webhook'
operationId: getApiV1ExternalWebhooks
x-operation-id-source: derived
post:
tags:
- Webhooks
summary: Create webhook
description: 'Create a new webhook endpoint for receiving notifications.
## Example Payloads
### extraction.completed
```json
{
"event": "extraction.completed",
"timestamp": "2024-01-15T10:30:00.000Z",
"data": {
"document": { /* WebhookDocument object */ },
"entityType": "shipments",
"entityId": "1014560123456789012"
}
}
```
### validation.completed
```json
{
"event": "validation.completed",
"timestamp": "2024-01-15T10:30:00.000Z",
"data": {
"jobId": "1014560123456789012",
"entityId": "1014560123456789012",
"entityType": "shipments",
"documents": [ /* array of WebhookDocument objects */ ],
"validationResult": { /* validation results */ },
"itemsValidated": 15,
"issuesFound": 2,
"completedAt": "2024-01-15T10:30:00.000Z",
"type": "cross-validation"
}
}
```'
security:
- bearerAuth: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateWebhookRequest'
examples:
allEvents:
summary: Subscribe to all document events
value:
url: https://your-app.com/webhooks
events:
- extraction.completed
- extraction.failed
- validation.completed
- validation.failed
- merge.completed
- merge.failed
description: Production webhook for document processing
extractionOnly:
summary: Subscribe to extraction events only
value:
url: https://your-app.com/webhooks/extraction
events:
- extraction.completed
- extraction.failed
description: Extraction notifications
responses:
'201':
description: Webhook created successfully
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
data:
allOf:
- $ref: '#/components/schemas/Webhook'
- type: object
properties:
secret:
type: string
description: Webhook secret for signature verification
example: whsec_1234567890abcdef
'400':
description: Invalid request parameters
operationId: postApiV1ExternalWebhooks
x-operation-id-source: derived
/api/v1/external/webhooks/{webhookId}:
get:
tags:
- Webhooks
summary: Get webhook details
description: Retrieve details of a specific webhook.
security:
- bearerAuth: []
parameters:
- name: webhookId
in: path
required: true
schema:
type: string
description: Unique webhook identifier
responses:
'200':
description: Webhook details retrieved successfully
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
data:
$ref: '#/components/schemas/Webhook'
'404':
description: Webhook not found
operationId: getApiV1ExternalWebhooksByWebhookId
x-operation-id-source: derived
put:
tags:
- Webhooks
summary: Update webhook
description: Update webhook configuration.
security:
- bearerAuth: []
parameters:
- name: webhookId
in: path
required: true
schema:
type: string
description: Unique webhook identifier
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
url:
type: string
format: uri
events:
type: array
items:
type: string
active:
type: boolean
description:
type: string
headers:
type: object
additionalProperties:
type: string
responses:
'200':
description: Webhook updated successfully
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
data:
$ref: '#/components/schemas/Webhook'
'404':
description: Webhook not found
operationId: putApiV1ExternalWebhooksByWebhookId
x-operation-id-source: derived
delete:
tags:
- Webhooks
summary: Delete webhook
description: Delete a webhook endpoint.
security:
- bearerAuth: []
parameters:
- name: webhookId
in: path
required: true
schema:
type: string
description: Unique webhook identifier
responses:
'200':
description: Webhook deleted successfully
content:
application/json:
schema:
$ref: '#/components/schemas/SuccessResponse'
'404':
description: Webhook not found
operationId: deleteApiV1ExternalWebhooksByWebhookId
x-operation-id-source: derived
/api/v1/external/webhooks/{webhookId}/test:
post:
tags:
- Webhooks
summary: Test webhook
description: Send a test event to the webhook endpoint.
security:
- bearerAuth: []
parameters:
- name: webhookId
in: path
required: true
schema:
type: string
description: Unique webhook identifier
responses:
'200':
description: Test completed
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
data:
type: object
properties:
status:
type: string
enum:
- success
- failed
statusCode:
type: integer
duration:
type: integer
description: Response time in milliseconds
response:
type: string
description: Response body from webhook endpoint
'404':
description: Webhook not found
operationId: postApiV1ExternalWebhooksByWebhookIdTest
x-operation-id-source: derived
/api/v1/external/webhooks/test:
post:
tags:
- Webhooks
summary: Test webhook URL
description: Test a webhook URL before creating it.
security:
- bearerAuth: []
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
url:
type: string
format: uri
description: HTTPS URL to test
event:
type: string
description: Event type to simulate
default: webhook.test
required:
- url
responses:
'200':
description: Test completed successfully
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
data:
type: object
properties:
message:
type: string
payload:
type: object
description: The test payload that was sent
'400':
description: Invalid URL or test failed
operationId: postApiV1ExternalWebhooksTest
x-operation-id-source: derived
/api/v1/external/webhooks/{webhookId}/deliveries:
get:
tags:
- Webhooks
summary: Get webhook deliveries
description: Retrieve delivery history for a webhook.
security:
- bearerAuth: []
parameters:
- name: webhookId
in: path
required: true
schema:
type: string
description: Unique webhook identifier
- name: limit
in: query
schema:
type: integer
minimum: 1
maximum: 100
default: 20
description: Number of deliveries to return
responses:
'200':
description: Delivery history retrieved successfully
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
data:
type: array
items:
type: object
properties:
id:
type: string
url:
type: string
status:
type: string
enum:
- success
- failed
- pending
attempt:
type: integer
responseStatus:
type: integer
error:
type: string
description: Error message if failed
createdAt:
type: string
format: date-time
completedAt:
type: string
format: date-time
'404':
description: Webhook not found
operationId: getApiV1ExternalWebhooksByWebhookIdDeliveries
x-operation-id-source: derived
components:
schemas:
Webhook:
type: object
properties:
id:
type: string
example: '1014560123456789012'
url:
type: string
format: uri
example: https://your-app.com/webhook
events:
type: array
items:
type: string
enum:
- extraction.completed
- extraction.failed
- validation.completed
- validation.failed
- merge.completed
- merge.failed
- document.uploaded
- document.deleted
- shipment.created
- shipment.updated
- source.processing.completed
- source.processing.failed
- webhook.test
description:
type: string
isActive:
type: boolean
createdAt:
type: string
format: date-time
lastTriggeredAt:
type: string
format: date-time
CreateWebhookRequest:
type: object
properties:
url:
type: string
format: uri
description: HTTPS URL to receive webhook notifications
events:
type: array
items:
type: string
enum:
- extraction.completed
- extraction.failed
- validation.completed
- validation.failed
- merge.completed
- merge.failed
- document.uploaded
- document.deleted
- shipment.created
- shipment.updated
- source.processing.completed
- source.processing.failed
- webhook.test
minItems: 1
description:
type: string
required:
- url
- events
SuccessResponse:
type: object
properties:
success:
type: boolean
example: true
data:
type: object
description: Response data (varies by endpoint)
message:
type: string
description: Optional success message
required:
- success
- data
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
description: OAuth 2.0 Bearer token obtained from /auth/token endpoint