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.
openapi: 3.2.0
info:
version: 1.0.0-oas3
title: Fortellis Event Relay Webhook Events API
description: Provides an Event Sink the ability to receive event through Fortellis Event Relay.
contact:
name: Fortellis Team
url: https://fortellis.io
email: support@fortellis.io
servers:
- url: /v1/webhook
tags:
- name: events
paths:
/event/{channel}:
post:
summary: Post an event.
description: Event delivery endpoint to be implemented on the client-side.
operationId: postEvent
tags:
- events
parameters:
- name: channel
in: path
description: the channel/path used when the event was posted by the source. Please consult the related AsyncAPI specification.
required: true
schema:
type: integer
- $ref: '#/components/parameters/header.X-Request-Id'
- $ref: '#/components/parameters/header.Fortellis-Event-Id'
- $ref: '#/components/parameters/header.Authorization'
- $ref: '#/components/parameters/header.Data-Owner-Id'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Event'
description: "The event payload as it was received from the event's Source. \nWhile the message's payload should adhere to the corresponding AsyncAPI specification, the payload is not validated by Fortellis Event Relay upon receipt. The platform considers the message payload and its specification a contract between the source and the sink. As such, issues with that format should be addressed by those parties, and source request id and Fortellis Event Id are provided to facilitate that conversation. \nRejection of an event will place the record and its partition on hold and trigger us to attempt retransmission until we succeed. **We will not move forward to the next record when we receive an error.** Failed attempts at transmission may be billable, and placing a subscription in an extended pause period increases the possibility of duplicate record delivery. Synchronous Validation of any elements other than the headers is discouraged."
required: true
responses:
'202':
$ref: '#/components/responses/EventReceived'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalServerError'
'503':
$ref: '#/components/responses/ServiceUnavailable'
components:
responses:
BadRequest:
description: '400 - Bad Request Rejection of an event will place the record and its partition on hold and trigger us to attempt retransmission until we succeed. **We will not move forward to the next record when we receive an error.** Failed attempts at transmission may be billable, and placing a subscription in an extended pause period increases the possibility of duplicate record delivery. Synchronous Validation of any elements other than the headers is discouraged.
'
headers:
X-Request-Id:
description: Invalid Event received
schema:
type: string
content:
'*/*':
schema:
$ref: '#/components/schemas/ErrorResponse'
NotFound:
description: 404 - Not Found
headers:
X-Request-Id:
description: The matching correlation identifier to the request by the client.
schema:
type: string
content:
'*/*':
schema:
$ref: '#/components/schemas/ErrorResponse'
Forbidden:
description: 403 - Forbidden
headers:
X-Request-Id:
description: The matching correlation identifier to the request by the client.
schema:
type: string
content:
'*/*':
schema:
$ref: '#/components/schemas/ErrorResponse'
Unauthorized:
description: 401 - Unauthorized
headers:
X-Request-Id:
description: The matching correlation identifier to the request by the client.
schema:
type: string
content:
'*/*':
schema:
$ref: '#/components/schemas/ErrorResponse'
InternalServerError:
description: 500 - Internal Server Error
headers:
X-Request-Id:
description: The matching correlation identifier to the request by the client.
schema:
type: string
content:
'*/*':
schema:
$ref: '#/components/schemas/ErrorResponse'
EventReceived:
description: Accepted the event for asynchronous processing.
headers:
X-Request-Id:
description: The matching correlation identifier to the request by the client.
schema:
type: string
ServiceUnavailable:
description: 503 - Service Unavailable
headers:
X-Request-Id:
description: The matching correlation identifier to the request by the client.
schema:
type: string
content:
'*/*':
schema:
$ref: '#/components/schemas/ErrorResponse'
schemas:
ErrorResponse:
description: Common error response object.
properties:
code:
type: integer
format: int32
message:
type: string
required:
- code
- message
example:
code: 400
message: Bad Request
Event:
description: A single event record matching the schema defined in the corrisponding AsyncAPI.
type: object
example:
key1: value1
key2: value2
key3:
- arr-value1
- arr-value2
- arr-value3
key4:
sub-key1: sub-value1
sub-key2: sub-value2
parameters:
header.Fortellis-Event-Id:
name: Fortellis-Event-Id
in: header
required: true
description: This is a unique ID for the event assigned by Fortellis at time receipt and provided to the event source.
schema:
type: string
format: uuid
header.Authorization:
name: Authorization
in: header
required: true
description: 'Contains credentials that allows the caller to authenticate itself with the
API. See RFC 7235 and RFC 7617 for more details.
'
schema:
type: string
header.X-Request-Id:
name: X-Request-Id
in: header
description: 'A correlation ID that should mirror the value of the X-Request-Id request
header provided by the client.
'
schema:
type: string
format: uuid
header.Data-Owner-Id:
name: Data-Owner-Id
in: header
required: false
description: 'A Fortellis Organization Id that identifies the organization represented by the event.
'
schema:
type: string
format: uuid