Submission API
- Base URL:
https://submission.sls.epilot.io - Full API Docs: https://docs.epilot.io/api/submission
Usageโ
import { epilot } from '@epilot/sdk'
epilot.authorize(() => '<token>')
const { data } = await epilot.submission.createSubmission(...)
Tree-shakeable importโ
import { getClient, authorize } from '@epilot/sdk/submission'
const submissionClient = getClient()
authorize(submissionClient, () => '<token>')
const { data } = await submissionClient.createSubmission(...)
Operationsโ
Submissions
Schemas
createSubmissionโ
Creates a submission from a public facing Journey
POST /v1/submission/submissions
const { data } = await client.createSubmission(
null,
{
organization_id: '123',
journey_submit_id: '123',
source_type: 'journey',
source_id: 'ce99875f-fba9-4fe2-a8f9-afaf52059051',
opt_ins: [
{
topic: 'EMAIL_MARKETING',
identifier: 'example@email.com',
meta: {}
}
],
entities: [
{
_schema: 'submission',
description: 'Submission created via API',
contact_first_name: 'First',
contact_last_name: 'Last',
contact_email: 'example@submission.com',
request: 'I would like to know more about electric vehicles',
files: [
{
s3ref: {
bucket: 'epilot-user-content',
key: 'temp/123/4d689aeb-1497-4410-a9fe-b36ca9ac4389/document.pdf'
},
filename: 'document.pdf'
}
]
}
],
_ivy_opportunity_ids: ['string']
},
)
getNonceโ
Check if a nonce was already used (aka exists in storage)
GET /v1/submission/nonce/{nonce_id}
const { data } = await client.getNonce({
nonce_id: 'example',
})
Response
{
"nonce": "string",
"submission_id": "string",
"organization_id": "string",
"ttl": 0,
"exists": true
}
Schemasโ
SubmissionNonceโ
type SubmissionNonce = {
nonce: string
submission_id: string
organization_id: string
ttl?: number
}
SubmissionPayloadโ
Holds content and meta information
type SubmissionPayload = {
organization_id?: string
journey_submit_id?: string
source_type: string
source_id: string
opt_ins?: Array<{
topic?: string
identifier?: string
meta?: Record<string, unknown>
}>
entities: Array<{
_schema: "submission"
description?: string
files?: Array<{
s3ref: { ... }
filename?: { ... }
_tags?: { ... }
relation_tags?: { ... }
}>
}>
_ivy_opportunity_ids?: string[]
}
SubmissionEntityโ
The submission entity to create
type SubmissionEntity = {
_schema: "submission"
description?: string
files?: Array<{
s3ref: {
bucket: { ... }
key: { ... }
}
filename?: string
_tags?: string[]
relation_tags?: string[]
}>
}
OptInโ
type OptIn = {
topic?: string
identifier?: string
meta?: Record<string, unknown>
}
S3Referenceโ
S3 Reference from File API
type S3Reference = {
bucket: string
key: string
}