openapi: 3.0.3
info:
title: Affinda Search and Match API
version: 3.0.0
description: "Affinda Search and Match API \u2014 subset of the Affinda v3 Document Processing API."
servers:
- url: https://{region}.affinda.com
description: 'Select the correct server for your instance: api (AUS/Global), api.us1 (US), or api.eu1 (EU).'
variables:
region:
default: api
description: The instance region. Use 'api' for AUS/Global, 'api.us1' for US, or 'api.eu1' for EU. You can find your
region in the Affinda web app URL.
enum:
- api
- api.eu1
- api.us1
x-ms-parameter-location: client
security:
- ApiKeyAuth: []
paths:
/v3/documents/create_from_data:
post:
tags:
- Search & Match
summary: Create a document from raw data
operationId: createDocumentFromData
description: '
Creates a document directly from structured resume or job description data for use in Search & Match functionality.
This endpoint is specifically designed for programmatic document creation without file uploads.
If you want to upload a document with a file or URL, see the main [POST /v3/documents](#post-/v3/documents) endpoint
under the Documents tag.
When successful, returns an `identifier` in the response for subsequent use with the [/documents/{identifier}](#get-/v3/documents/-identifier-)
endpoint to check processing status and retrieve results.
'
responses:
'200':
description: Only returned when wait=True, will return the created document
content:
application/json:
schema:
$ref: '#/components/schemas/Document'
'201':
description: Only returned when wait=False, will return document uploaded and identifier created
x-summary: Document uploaded and created, use document.meta.identifier to poll for processing status
content:
application/json:
schema:
$ref: '#/components/schemas/Document'
'400':
$ref: '#/components/responses/400Error'
'401':
$ref: '#/components/responses/401Error'
'403':
$ref: '#/components/responses/403Error'
default:
$ref: '#/components/responses/DefaultError'
parameters:
- in: query
name: snake_case
required: false
description: Whether to return the response in snake_case instead of camelCase. Default is false.
schema:
type: boolean
requestBody:
description: Resume or job description data to create a document from
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/DocumentCreateFromData'
/v3/documents/{identifier}/update_data:
post:
tags:
- Search & Match
summary: Update a document's data
operationId: updateDocumentData
description: 'Update data of a document.
Only applicable for resumes and job descriptions. For other document types, please use the `PATCH /annotations/{id}`
endpoint or the `POST /annotations/batch_update` endpoint.'
parameters:
- in: path
required: true
name: identifier
description: Resume or Job Description identifier
schema:
$ref: '#/components/schemas/Identifier'
requestBody:
description: Resume data to update
required: true
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/ResumeData'
- $ref: '#/components/schemas/JobDescriptionDataUpdate'
responses:
'200':
description: Successfully updated resume data
content:
application/json:
schema:
$ref: '#/components/schemas/Document'
'400':
$ref: '#/components/responses/400Error'
'401':
$ref: '#/components/responses/401Error'
default:
$ref: '#/components/responses/DefaultError'
/v3/occupation_groups:
get:
tags:
- Search & Match
summary: List occupation groups
operationId: listOccupationGroups
description: Returns the list of searchable occupation groups.
responses:
'200':
description: Will return matching documents
x-summary: Will return matching documents
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/OccupationGroup'
'400':
$ref: '#/components/responses/400Error'
'401':
$ref: '#/components/responses/401Error'
default:
$ref: '#/components/responses/DefaultError'
/v3/resume_search:
post:
tags:
- Search & Match
summary: Search through parsed resumes
operationId: createResumeSearch
description: "Searches through parsed resumes. Users have 3 options to create a search:
1.\tMatch to a job\
\ description - a parsed job description is used to find candidates that suit it
2.\tMatch to a resume - a parsed\
\ resume is used to find other candidates that have similar attributes
3.\tSearch using custom criteria
Users should only populate 1 of jobDescription, resume or the custom criteria."
parameters:
- $ref: '#/components/parameters/offsetParam'
- in: query
name: limit
required: false
schema:
type: integer
minimum: 1
maximum: 50
example: 20
description: The numbers of results to return.
x-ms-parameter-location: method
responses:
'201':
description: Will return matching documents
x-summary: Will return matching documents
content:
application/json:
schema:
$ref: '#/components/schemas/ResumeSearch'
'400':
$ref: '#/components/responses/400Error'
'401':
$ref: '#/components/responses/401Error'
default:
$ref: '#/components/responses/DefaultError'
requestBody:
description: Search parameters
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ResumeSearchParameters'
/v3/resume_search/details/{identifier}:
post:
tags:
- Search & Match
summary: Get search result of specific resume
operationId: getResumeSearchDetail
description: 'This contains more detailed information about the matching score of the search criteria, or which search
criteria is missing in this resume.
The `identifier` is the unique ID returned via the [/resume_search](#post-/resume_search) endpoint.'
parameters:
- in: path
required: true
name: identifier
description: Resume identifier
schema:
type: string
example: ELglqBbT
responses:
'200':
description: Successfully retrieved detail search result.
content:
application/json:
schema:
$ref: '#/components/schemas/ResumeSearchDetail'
'400':
$ref: '#/components/responses/400Error'
'401':
$ref: '#/components/responses/401Error'
default:
$ref: '#/components/responses/DefaultError'
requestBody:
description: Search parameters
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ResumeSearchParameters'
/v3/resume_search/config:
get:
tags:
- Search & Match
summary: Get the config for the logged in user's embeddable resume search tool
operationId: getResumeSearchConfig
description: Return configurations such as which fields can be displayed in the logged in user's embeddable resume search
tool, what are their weights, what is the maximum number of results that can be returned, etc.
responses:
'200':
description: The config for the logged in user's embedable search tool.
content:
application/json:
schema:
$ref: '#/components/schemas/ResumeSearchConfig'
'401':
$ref: '#/components/responses/401Error'
default:
$ref: '#/components/responses/DefaultError'
patch:
tags:
- Search & Match
summary: Update the config for the logged in user's embeddable resume search tool
operationId: updateResumeSearchConfig
description: Update configurations such as which fields can be displayed in the logged in user's embeddable resume search
tool, what are their weights, what is the maximum number of results that can be returned, etc.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ResumeSearchConfig'
responses:
'200':
description: Successfully updated configurations.
content:
application/json:
schema:
$ref: '#/components/schemas/ResumeSearchConfig'
'400':
$ref: '#/components/responses/400Error'
'401':
$ref: '#/components/responses/401Error'
default:
$ref: '#/components/responses/DefaultError'
/v3/resume_search/embed:
post:
tags:
- Search & Match
summary: Create a signed URL for the embeddable resume search tool
operationId: createResumeSearchEmbedUrl
description: Create and return a signed URL of the resume search tool which then can be embedded on a web page. An optional
parameter `config_override` can be passed to override the user-level configurations of the embeddable resume search
tool.
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
configOverride:
$ref: '#/components/schemas/ResumeSearchConfig'
responses:
'200':
description: Successfully created a signed URL.
content:
application/json:
schema:
$ref: '#/components/schemas/ResumeSearchEmbed'
'401':
$ref: '#/components/responses/401Error'
default:
$ref: '#/components/responses/DefaultError'
/v3/resume_search/match:
get:
tags:
- Search & Match
summary: Match a single resume and job description
operationId: getResumeSearchMatch
description: Get the matching score between a resume and a job description. The score ranges between 0 and 1, with 0
being not a match at all, and 1 being perfect match.
Note, this score will not directly match the score returned
from POST [/resume_search/details/{identifier}](#post-/resume_search/details/-identifier-).
parameters:
- in: query
name: resume
required: true
schema:
type: string
description: Identify the resume to match.
example: ytBrHSmF
- in: query
name: job_description
required: true
schema:
type: string
description: Identify the job description to match.
example: fkAmLQQz
- in: query
name: index
required: false
schema:
type: string
description: Optionally, specify an index to search in. If not specified, will search in all indexes.
example: my-custom-index
- in: query
name: search_expression
required: false
schema:
type: string
description: Add keywords to the search criteria.
- in: query
name: job_titles_weight
required: false
schema:
type: number
minimum: 0
maximum: 1
description: How important is this criteria to the matching score, range from 0 to 1.
- in: query
name: years_experience_weight
required: false
schema:
type: number
minimum: 0
maximum: 1
description: How important is this criteria to the matching score, range from 0 to 1.
- in: query
name: locations_weight
required: false
schema:
type: number
minimum: 0
maximum: 1
description: How important is this criteria to the matching score, range from 0 to 1.
- in: query
name: languages_weight
required: false
schema:
type: number
minimum: 0
maximum: 1
description: How important is this criteria to the matching score, range from 0 to 1.
- in: query
name: skills_weight
required: false
schema:
type: number
minimum: 0
maximum: 1
description: How important is this criteria to the matching score, range from 0 to 1.
- in: query
name: education_weight
required: false
schema:
type: number
minimum: 0
maximum: 1
description: How important is this criteria to the matching score, range from 0 to 1.
- in: query
name: search_expression_weight
required: false
schema:
type: number
minimum: 0
maximum: 1
description: How important is this criteria to the matching score, range from 0 to 1.
- in: query
name: soc_codes_weight
required: false
schema:
type: number
minimum: 0
maximum: 1
description: How important is this criteria to the matching score, range from 0 to 1.
- in: query
name: management_level_weight
required: false
schema:
type: number
minimum: 0
maximum: 1
description: How important is this criteria to the matching score, range from 0 to 1.
responses:
'200':
description: The matching score between the provided resume and job description.
content:
application/json:
schema:
$ref: '#/components/schemas/ResumeSearchMatch'
'400':
$ref: '#/components/responses/400Error'
'401':
$ref: '#/components/responses/401Error'
default:
$ref: '#/components/responses/DefaultError'
/v3/resume_search/suggestion_job_title:
get:
tags:
- Search & Match
summary: Get job title suggestions based on provided job title(s)
operationId: getResumeSearchSuggestionJobTitle
description: Provided one or more job titles, get related suggestions for your search.
parameters:
- in: query
name: job_titles
required: true
style: form
explode: true
schema:
type: array
items:
type: string
example:
- Software Developer
- Team Lead
description: Job title to query suggestions for
responses:
'200':
description: Successfully fetched related job titles.
content:
application/json:
schema:
type: array
items:
type: string
example: Web Developer
'400':
$ref: '#/components/responses/400Error'
'401':
$ref: '#/components/responses/401Error'
default:
$ref: '#/components/responses/DefaultError'
/v3/resume_search/suggestion_skill:
get:
tags:
- Search & Match
summary: Get skill suggestions based on provided skill(s)
operationId: getResumeSearchSuggestionSkill
description: Provided one or more skills, get related suggestions for your search.
parameters:
- in: query
name: skills
required: true
style: form
explode: true
schema:
type: array
items:
type: string
example:
- Javascript
- python
description: Skill to query suggestions for
responses:
'200':
description: Successfully fetched related skills.
content:
application/json:
schema:
type: array
items:
type: string
example: SQL (Programming Language)
'400':
$ref: '#/components/responses/400Error'
'401':
$ref: '#/components/responses/401Error'
default:
$ref: '#/components/responses/DefaultError'
/v3/job_description_search:
post:
tags:
- Search & Match
summary: Search through parsed job descriptions
operationId: createJobDescriptionSearch
description: Searches through parsed job descriptions. You can search with custom criterias or a resume.
parameters:
- $ref: '#/components/parameters/offsetParam'
- $ref: '#/components/parameters/limitParam'
responses:
'201':
description: Will return matching documents
x-summary: Will return matching documents
content:
application/json:
schema:
$ref: '#/components/schemas/JobDescriptionSearch'
'400':
$ref: '#/components/responses/400Error'
'401':
$ref: '#/components/responses/401Error'
default:
$ref: '#/components/responses/DefaultError'
requestBody:
description: Search parameters
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/JobDescriptionSearchParameters'
/v3/job_description_search/details/{identifier}:
post:
tags:
- Search & Match
summary: Get search result of specific job description
operationId: getJobDescriptionSearchDetail
description: 'This contains more detailed information about the matching score of the search criteria, or which search
criteria is missing in this job description.
The `identifier` is the unique ID returned via the [/job_description_search](#post-/job_description_search) endpoint.'
parameters:
- in: path
required: true
name: identifier
description: Job Description identifier
schema:
type: string
example: ELgrnBbM
responses:
'200':
description: Successfully retrieved detail search result.
content:
application/json:
schema:
$ref: '#/components/schemas/JobDescriptionSearchDetail'
'400':
$ref: '#/components/responses/400Error'
'401':
$ref: '#/components/responses/401Error'
default:
$ref: '#/components/responses/DefaultError'
requestBody:
description: Search parameters
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/JobDescriptionSearchParameters'
/v3/job_description_search/config:
get:
tags:
- Search & Match
summary: Get the config for the logged in user's embeddable job description search tool
operationId: getJobDescriptionSearchConfig
description: Return configurations such as which fields can be displayed in the logged in user's embeddable job description
search tool, what are their weights, what is the maximum number of results that can be returned, etc.
responses:
'200':
description: The config for the logged in user's embeddable job description search tool.
content:
application/json:
schema:
$ref: '#/components/schemas/JobDescriptionSearchConfig'
'401':
$ref: '#/components/responses/401Error'
default:
$ref: '#/components/responses/DefaultError'
patch:
tags:
- Search & Match
summary: Update the config for the logged in user's embeddable job description search tool
operationId: updateJobDescriptionSearchConfig
description: Update configurations such as which fields can be displayed in the logged in user's embeddable job description
search tool, what are their weights, what is the maximum number of results that can be returned, etc.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/JobDescriptionSearchConfig'
responses:
'200':
description: Successfully updated configurations.
content:
application/json:
schema:
$ref: '#/components/schemas/JobDescriptionSearchConfig'
'400':
$ref: '#/components/responses/400Error'
'401':
$ref: '#/components/responses/401Error'
default:
$ref: '#/components/responses/DefaultError'
/v3/job_description_search/embed:
post:
tags:
- Search & Match
summary: Create a signed URL for the embeddable job description search tool
operationId: createJobDescriptionSearchEmbedUrl
description: Create and return a signed URL of the job description search tool which then can be embedded on a web page.
An optional parameter `config_override` can be passed to override the user-level configurations of the embeddable
search tool.
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
configOverride:
$ref: '#/components/schemas/JobDescriptionSearchConfig'
responses:
'200':
description: Successfully created a signed URL.
content:
application/json:
schema:
$ref: '#/components/schemas/JobDescriptionSearchEmbed'
'401':
$ref: '#/components/responses/401Error'
default:
$ref: '#/components/responses/DefaultError'
/v3/index:
get:
tags:
- Search & Match
summary: Get list of all indexes
operationId: getAllIndexes
description: Returns all the indexes
parameters:
- $ref: '#/components/parameters/offsetParam'
- $ref: '#/components/parameters/limitParam'
- in: query
name: document_type
required: false
schema:
type: string
enum:
- resumes
- job_descriptions
description: Filter indices by a document type
x-ms-parameter-location: method
- in: query
name: name
required: false
schema:
type: string
description: Filter indices by name
x-ms-parameter-location: method
responses:
'200':
description: All indexes for user
content:
application/json:
schema:
type: object
required:
- results
- count
allOf:
- $ref: '#/components/schemas/PaginatedResponse'
- type: object
properties:
results:
type: array
items:
$ref: '#/components/schemas/Index'
'400':
$ref: '#/components/responses/400Error'
'401':
$ref: '#/components/responses/401Error'
default:
$ref: '#/components/responses/DefaultError'
post:
tags:
- Search & Match
summary: Create a new index
operationId: createIndex
description: Create an index for the search tool
responses:
'201':
description: Returns the created index
links:
deleteIndexName:
operationId: deleteIndex
parameters:
name: $response.body#/name
getAllIndexDocumentsName:
operationId: getAllIndexDocuments
parameters:
name: $response.body#/name
createIndexDocumentName:
operationId: createIndexDocument
parameters:
name: $response.body#/name
deleteIndexDocumentName:
operationId: deleteIndexDocument
parameters:
name: $response.body#/name
content:
application/json:
schema:
$ref: '#/components/schemas/Index'
'400':
$ref: '#/components/responses/400Error'
'401':
$ref: '#/components/responses/401Error'
default:
$ref: '#/components/responses/DefaultError'
requestBody:
description: Index to create
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/IndexCreate'
/v3/index/{name}:
patch:
tags:
- Search & Match
summary: Update an index
operationId: updateIndex
description: Updates the specified index
parameters:
- in: path
required: true
name: name
description: Index name
schema:
$ref: '#/components/schemas/Index_properties-name'
requestBody:
description: Index data to update
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/IndexUpdate'
responses:
'200':
description: Successfully updated index data.
content:
application/json:
schema:
$ref: '#/components/schemas/Index'
'400':
$ref: '#/components/responses/400Error'
'401':
$ref: '#/components/responses/401Error'
default:
$ref: '#/components/responses/DefaultError'
delete:
tags:
- Search & Match
summary: Delete an index
operationId: deleteIndex
description: Deletes the specified index from the database
parameters:
- in: path
required: true
name: name
description: Index name
schema:
$ref: '#/components/schemas/Index_properties-name'
responses:
'204':
$ref: '#/components/responses/204NoContent'
'400':
$ref: '#/components/responses/400Error'
'401':
$ref: '#/components/responses/401Error'
default:
$ref: '#/components/responses/DefaultError'
/v3/index/{name}/documents:
get:
tags:
- Search & Match
summary: Get indexed documents for a specific index
operationId: getAllIndexDocuments
description: Returns all the indexed documents for that index
parameters:
- $ref: '#/components/parameters/offsetParam'
- $ref: '#/components/parameters/limitParam'
- in: path
required: true
name: name
description: Index name
schema:
type: string
description: Unique index name
example: all-resumes
responses:
'200':
description: Successfully retrieved list of indexed documents
content:
application/json:
schema:
type: object
additionalProperties: false
properties:
count:
type: integer
example: 1
minimum: 1
description: Number of indexed documents in result
next:
type: string
nullable: true
description: URL to request next page of results
previous:
type: string
nullable: true
description: URL to request previous page of results
results:
type: array
items:
type: object
additionalProperties: false
properties:
document:
type: string
'400':
$ref: '#/components/responses/400Error'
'401':
$ref: '#/components/responses/401Error'
default:
$ref: '#/components/responses/DefaultError'
post:
tags:
- Search & Match
summary: Index a new document
operationId: createIndexDocument
description: Create an indexed document for the search tool
parameters:
- in: path
required: true
name: name
description: Index name
schema:
type: string
description: Unique index name
example: my-index
responses:
'201':
description: Returns the created indexed document
content:
application/json:
schema:
type: object
additionalProperties: false
properties:
document:
type: string
example: EhglqBoT
description: Unique identifier for the document.
'400':
$ref: '#/components/responses/400Error'
'401':
$ref: '#/components/responses/401Error'
default:
$ref: '#/components/responses/DefaultError'
requestBody:
description: Document to index
required: true
content:
application/json:
schema:
type: object
additionalProperties: false
properties:
document:
type: string
example: EhglqBoT
/v3/index/{name}/documents/{identifier}:
delete:
tags:
- Search & Match
summary: Delete an indexed document
operationId: deleteIndexDocument
description: Delete the specified indexed document from the database
parameters:
- in: path
required: true
name: name
description: Index name
schema:
type: string
description: Unique index name
example: my-index
- in: path
required: true
name: identifier
description: Document identifier
schema:
$ref: '#/components/schemas/Identifier'
responses:
'204':
$ref: '#/components/responses/204NoContent'
'400':
$ref: '#/components/responses/400Error'
'401':
$ref: '#/components/responses/401Error'
default:
$ref: '#/components/responses/DefaultError'
/v3/index/{name}/documents/{identifier}/re_index:
post:
tags:
- Search & Match
summary: Re-index a document
operationId: reIndexDocument
description: 'Re-index a document.
This is relevant if you updated the document''s data via the /annotations endpoint, and want to refresh
the document''s data in the search index.
'
parameters:
- in: path
required: true
name: name
description: Index name
schema:
type: string
description: Unique index name
example: my-index
- in: path
required: true
name: identifier
description: Document identifier
schema:
$ref: '#/components/schemas/Identifier'
responses:
'200':
description: Document successfully re-indexed
'400':
$ref: '#/components/responses/400Error'
'401':
$ref: '#/components/responses/401Error'
default:
$ref: '#/components/responses/DefaultError'
components:
securitySchemes:
ApiKeyAuth:
type: http
scheme: bearer
description: 'Basic authentication using an API key, e.g. `{Authorization: Bearer aff_0bb4fbdf97b7e4111ff6c0015471094155f91}`.
You can find your API key within the Settings page of the [Affinda web app](https://app.affinda.com/). You can obtain
an API key by [signing up for a free trial](https://app.affinda.com/auth/register).'
schemas:
Resume:
allOf:
- $ref: '#/components/schemas/Document'
- type: object
properties:
data:
$ref: '#/components/schemas/ResumeData'
x-ms-discriminator-value: resume
Invoice:
allOf:
- $ref: '#/components/schemas/Document'
- type: object
properties:
data:
$ref: '#/components/schemas/InvoiceData'
x-ms-discriminator-value: invoice
JobDescription:
allOf:
- $ref: '#/components/schemas/Document'
- type: object
properties:
data:
$ref: '#/components/schemas/JobDescriptionData'
x-ms-discriminator-value: job-description
ResumeRedact:
allOf:
- $ref: '#/components/schemas/Document'
- type: object
properties:
data:
type: object
properties:
redactedPdf:
type: string
description: URL to download the redacted resume.
x-ms-discriminator-value: resume-redact
DateRangeAnnotation:
type: object
nullable: true
allOf:
- $ref: '#/components/schemas/Annotation'
- type: object
properties:
parsed:
type: object
properties:
start:
$ref: '#/components/schemas/DateRangeValue'
end:
$ref: '#/components/schemas/DateRangeValue'
PhoneNumberAnnotation:
type: object
nullable: true
allOf:
- $ref: '#/components/schemas/Annotation'
- type: object
properties:
parsed:
type: object
properties:
rawText:
type: string
nullable: false
example: '+61412632636'
deprecated: true
formattedNumber:
type: string
nullable: true
example: +61 412 632 636
countryCode:
type: string
nullable: true
example: AU
internationalCountryCode:
type: integer
nullable: true
example: 61
minimum: 1
nationalNumber:
type: string
nullable: true
example: 0412 632 636
UrlAnnotation:
type: object
nullable: true
allOf:
- $ref: '#/components/schemas/Annotation'
- type: object
properties:
parsed:
type: object
properties:
url:
type: string
nullable: true
example: https://2nb9s.com/hello/world?foo=bar#baz
domain:
type: string
nullable: true
example: 2nb9s.com
identifier:
type: string
description: Uniquely identify a workspace.
example: mEFayXdO
properties-identifier:
type: string
description: Uniquely identify a collection.
example: mEFayXdO
DocumentState:
type: string
enum:
- uploaded
- review
- validated
- archived
- rejected
id:
type: integer
description: Uniquely identify a tag.
example: 1
minimum: 1
DateRange:
type: string
enum:
- today
- yesterday
- week
- month
- year
DocumentMeta_properties-identifier:
type: string
description: Unique identifier for the document
RequestError:
type: object
additionalProperties: false
required:
- type
- errors
properties:
type:
type: string
example: validation_error
errors:
type: array
items:
type: object
required:
- attr
- code
- detail
properties:
attr:
type: string
nullable: true
example: non_field_errors
code:
type: string
example: unique
detail:
type: string
example: This index name has already been used
PaginatedResponse:
type: object
required:
- count
properties:
count:
type: integer
example: 10
description: Number of items in results.
minimum: 0
next:
type: string
nullable: true
description: URL to request next page of results.
previous:
type: string
nullable: true
description: URL to request previous page of results.
FileName:
type: string
nullable: true
description: Optional filename of the file
example: Document.pdf
ExpiryTime:
type: string
nullable: true
format: date-time
description: The date/time in ISO-8601 format when the document will be automatically deleted. Defaults to no expiry.
customIdentifier:
type: string
nullable: true
description: Optional identifier for the document that you can set to track the document in the Affinda system. Is
not required to be unique.
example: 46ab8b02-0e5b-420c-877c-8b678d46a834
PageMeta:
type: object
required:
- id
- pageIndex
- image
- width
- height
- rotation
properties:
id:
type: integer
minimum: 1
pageIndex:
type: integer
example: 0
minimum: 0
description: Page number within the document, starts from 0.
image:
type: string
nullable: true
example: https://affinda-api.s3.amazonaws.com/media/pages/Page.png?AWSAccessKeyId=KEY&Signature=SIG&Expires=1663302062
description: The URL to the image of the page.
imageTranslated:
type: string
nullable: true
example: https://affinda-api.s3.amazonaws.com/media/pages/PageTranslated.png?AWSAccessKeyId=KEY&Signature=SIG&Expires=1663302062
description: The URL to the translated image of the page.
height:
type: number
example: 700
description: Height of the page's image in px.
width:
type: number
example: 500
description: Width of the page's image in px.
rotation:
type: integer
example: 90
minimum: -360
maximum: 360
description: The degree of rotation applied to the page. Greater than 0 indicates clockwise rotation. Less than
0 indicates counter-clockwise rotation.
name:
type: string
Extractor_properties-identifier:
type: string
description: Uniquely identify an extractor.
example: resume
validatable:
type: boolean
Identifier:
type: string
description: A random string that uniquely identify the resource.
ValidationRule:
type: object
additionalProperties: false
nullable: false
description: A validation rule for a collection
required:
- slug
- dataPoints
properties:
slug:
type: string
description: The slug of the validation rule, in lowercase snake_case
pattern: ^[a-z0-9_]+$
example: supplier_name_is_alphanumeric
dataPoints:
type: array
description: The data point identifier that this validation rule applies to, can be an empty list if the rule doens't
use any data points as sources
items:
$ref: '#/components/schemas/Identifier'
UserNullable:
type: object
nullable: true
properties:
id:
type: integer
description: Uniquely identify a user.
example: 1
minimum: 1
name:
type: string
example: Carl Johnson
username:
type: string
example: carljohnson
email:
type: string
example: carljohnson@grove.street
avatar:
type: string
nullable: true
description: URL of the user's avatar.
example: https://affinda-api.s3.amazonaws.com/media/user-avatar.png?AWSAccessKeyId=KEY&Signature=SIG
errorCode:
type: string
nullable: true
example: document_conversion_failed
errorDetail:
type: string
nullable: true
example: Unable to convert word document
Tag:
type: object
required:
- id
- name
- workspace
- documentCount
properties:
id:
type: integer
description: Uniquely identify a tag.
example: 1
minimum: 1
name:
type: string
workspace:
$ref: '#/components/schemas/identifier'
documentCount:
type: integer
minimum: 0
description: Number of documents tagged with this.
User:
type: object
properties:
id:
type: integer
description: Uniquely identify a user.
example: 1
minimum: 1
name:
type: string
example: Carl Johnson
username:
type: string
example: carljohnson
email:
type: string
example: carljohnson@grove.street
avatar:
type: string
nullable: true
description: URL of the user's avatar.
example: https://affinda-api.s3.amazonaws.com/media/user-avatar.png?AWSAccessKeyId=KEY&Signature=SIG
RegionBias:
type: object
nullable: true
properties:
country:
type: string
nullable: true
description: A single alpha-2 country code (e.g. AU) used by google geocoding service
countries:
type: array
items:
type: string
nullable: true
description: A list of alpha-2 country codes used by Pelias
squareCoordinates:
type: array
items:
type: number
nullable: true
description: A list of coordinates used by Pelias in the shape of [min_lon, min_lat, max_lon, max_lat]
strict:
type: boolean
description: 'If true, the location must be within the region, as opposed to prefering locations within the region.
Default to false.
'
example: true
DocumentMeta:
type: object
required:
- identifier
- pages
- workspace
properties:
identifier:
type: string
description: Unique identifier for the document
customIdentifier:
type: string
nullable: true
description: Optional identifier for the document that you can set to track the document in the Affinda system. Is
not required to be unique.
example: 46ab8b02-0e5b-420c-877c-8b678d46a834
fileName:
$ref: '#/components/schemas/FileName'
ready:
type: boolean
nullable: false
example: true
description: If true, the document has finished processing. Particularly useful if an endpoint request specified
wait=False, when polling use this variable to determine when to stop polling
readyDt:
type: string
format: date-time
example: '2020-12-10T01:43:32.276724Z'
nullable: true
description: The datetime when the document was ready
failed:
type: boolean
nullable: false
example: false
description: If true, some exception was raised during processing. Check the 'error' field of the main return object.
expiryTime:
$ref: '#/components/schemas/ExpiryTime'
language:
type: string
nullable: true
example: en
description: The document's language.
pdf:
type: string
nullable: true
example: https://affinda-api.s3.amazonaws.com/media/documents/Document.pdf?AWSAccessKeyId=KEY&Signature=SIG&Expires=1663302062
description: The URL to the document's pdf (if the uploaded document is not already pdf, it's converted to pdf as
part of the parsing process).
parentDocument:
type: object
nullable: true
description: If this document is part of a splitted document, this attribute points to the original document that
this document is splitted from.
properties:
identifier:
$ref: '#/components/schemas/DocumentMeta_properties-identifier'
customIdentifier:
$ref: '#/components/schemas/customIdentifier'
childDocuments:
type: array
description: If this document has been splitted into a number of child documents, this attribute points to those
child documents.
items:
type: object
properties:
identifier:
$ref: '#/components/schemas/DocumentMeta_properties-identifier'
customIdentifier:
$ref: '#/components/schemas/customIdentifier'
pages:
type: array
items:
$ref: '#/components/schemas/PageMeta'
description: The document's pages.
isOcrd:
type: boolean
ocrConfidence:
type: number
nullable: true
reviewUrl:
type: string
nullable: true
documentType:
type: string
description: The document type's identifier. Provide if you already know the document type.
nullable: true
collection:
type: object
nullable: true
required:
- identifier
properties:
identifier:
$ref: '#/components/schemas/properties-identifier'
name:
$ref: '#/components/schemas/name'
extractor:
type: object
nullable: true
properties:
identifier:
$ref: '#/components/schemas/Extractor_properties-identifier'
name:
$ref: '#/components/schemas/name'
baseExtractor:
type: string
description: Base extractor's identifier.
nullable: true
validatable:
$ref: '#/components/schemas/validatable'
validationRules:
type: array
items:
$ref: '#/components/schemas/ValidationRule'
autoRefreshValidationResults:
type: boolean
description: If True, validation results are refreshed whenever annotations are changed.
workspace:
type: object
required:
- identifier
properties:
identifier:
$ref: '#/components/schemas/identifier'
name:
$ref: '#/components/schemas/name'
archivedDt:
type: string
format: date-time
nullable: true
isArchived:
type: boolean
skipParse:
type: boolean
confirmedDt:
type: string
format: date-time
nullable: true
confirmedBy:
$ref: '#/components/schemas/UserNullable'
isConfirmed:
type: boolean
rejectedDt:
type: string
format: date-time
nullable: true
rejectedBy:
$ref: '#/components/schemas/UserNullable'
archivedBy:
$ref: '#/components/schemas/UserNullable'
isRejected:
type: boolean
createdDt:
type: string
format: date-time
errorCode:
$ref: '#/components/schemas/errorCode'
errorDetail:
$ref: '#/components/schemas/errorDetail'
file:
type: string
nullable: true
description: URL to view the file.
html:
type: string
nullable: true
description: URL to view the file converted to HTML.
llmHint:
type: string
nullable: true
description: Optional hint inserted into the LLM prompt when processing this document.
tags:
type: array
items:
$ref: '#/components/schemas/Tag'
createdBy:
$ref: '#/components/schemas/User'
sourceEmail:
type: string
nullable: true
description: If the document is created via email ingestion, this field stores the email file's URL.
sourceEmailAddress:
type: string
nullable: true
description: If the document is created via email ingestion, this field stores the email's From address.
regionBias:
$ref: '#/components/schemas/RegionBias'
DocumentError:
type: object
additionalProperties: false
properties:
errorCode:
type: string
nullable: true
example: document_conversion_failed
errorDetail:
type: string
nullable: true
example: Unable to convert word document
DocumentWarning:
type: object
additionalProperties: false
properties:
warningCode:
type: string
nullable: true
example: too_many_pages
warningDetail:
type: string
nullable: true
example: File exceeds maximum number of pages allowed, parsing the first 10 pages only.
Document:
type: object
required:
- meta
- extractor
properties:
data:
type: object
extractor:
type: string
meta:
$ref: '#/components/schemas/DocumentMeta'
error:
$ref: '#/components/schemas/DocumentError'
warnings:
type: array
items:
$ref: '#/components/schemas/DocumentWarning'
discriminator:
propertyName: extractor
x-csharp-usage: input,output
File:
type: string
format: binary
description: 'File as binary data blob. Supported formats: PDF, DOC, DOCX, TXT, RTF, HTML, PNG, JPG, TIFF, ODT, XLS,
XLSX'
Wait:
type: boolean
description: If "true" (default), will return a response only after processing has completed. If "false", will return
an empty data object which can be polled at the GET endpoint until processing is complete.
example: true
default: true
nullable: false
Language:
type: string
nullable: true
description: Language code in ISO 639-1 format. Must specify zh-cn or zh-tw for Chinese.
example: en
RejectDuplicatesMaybeString:
type: boolean
description: If "true", parsing will fail when the uploaded document is duplicate of an existing document, no credits
will be consumed. If "false", will parse the document normally whether its a duplicate or not. If not provided, will
fallback to the workspace settings.
example: true
nullable: true
DocumentCreate:
type: object
properties:
file:
$ref: '#/components/schemas/File'
url:
type: string
nullable: true
description: URL to download the document.
example: https://api.affinda.com/static/sample_resumes/example.docx
collection:
$ref: '#/components/schemas/properties-identifier'
documentType:
type: string
description: The document type's identifier. Provide if you already know the document type.
nullable: true
workspace:
$ref: '#/components/schemas/identifier'
wait:
$ref: '#/components/schemas/Wait'
identifier:
type: string
description: Deprecated in favor of `customIdentifier`.
deprecated: true
customIdentifier:
type: string
description: Specify a custom identifier for the document if you need one, not required to be unique.
fileName:
$ref: '#/components/schemas/FileName'
expiryTime:
$ref: '#/components/schemas/ExpiryTime'
language:
$ref: '#/components/schemas/Language'
rejectDuplicates:
$ref: '#/components/schemas/RejectDuplicatesMaybeString'
regionBias:
type: string
description: A JSON representation of the RegionBias object.
example: '{"country": "vn"}'
lowPriority:
type: boolean
description: Explicitly mark this document as low priority.
example: true
compact:
type: boolean
description: If true, the returned parse result (assuming `wait` is also true) will be a compact version of the
full result.
example: true
deleteAfterParse:
type: boolean
description: 'If true, no data will be stored after parsing. Only compatible with requests where wait: True.'
example: true
enableValidationTool:
type: boolean
description: If true, the document will be viewable in the Affinda Validation Tool. Set to False to optimize parsing
speed.
example: true
useOcr:
type: boolean
nullable: true
description: If true, the document will be treated like an image, and the text will be extracted using OCR. If false,
the document will be treated like a PDF, and the text will be extracted using the parser. If not set, we will
determine whether to use OCR based on whether words are found in the document.
llmHint:
type: string
nullable: true
description: Optional hint inserted into the LLM prompt when processing this document.
limitToExamples:
type: array
nullable: true
description: Restrict LLM example selection to the specified document identifiers.
items:
type: string
warningMessages:
type: array
items:
$ref: '#/components/schemas/DocumentWarning'
DocumentFormat:
type: string
enum:
- json
- xml
- hr-xml
isConfirmed:
type: boolean
isRejected:
type: boolean
isArchived:
type: boolean
skipParse:
type: boolean
DocumentUpdate:
type: object
properties:
collection:
$ref: '#/components/schemas/properties-identifier'
workspace:
$ref: '#/components/schemas/identifier'
documentType:
type: string
description: The document type's identifier. Provide if you already know the document type.
nullable: true
fileName:
$ref: '#/components/schemas/FileName'
expiryTime:
$ref: '#/components/schemas/ExpiryTime'
isConfirmed:
$ref: '#/components/schemas/isConfirmed'
isRejected:
$ref: '#/components/schemas/isRejected'
isArchived:
$ref: '#/components/schemas/isArchived'
skipParse:
$ref: '#/components/schemas/skipParse'
language:
$ref: '#/components/schemas/Language'
identifier:
type: string
description: Deprecated in favor of `customIdentifier`.
deprecated: true
customIdentifier:
type: string
description: Specify a custom identifier for the document if you need one, not required to be unique.
llmHint:
type: string
nullable: true
description: Optional hint inserted into the LLM prompt when processing this document.
warningMessages:
type: array
items:
$ref: '#/components/schemas/DocumentWarning'
Organization_properties-identifier:
type: string
description: Uniquely identify an organization.
example: mEFayXdO
OrganizationRole:
type: string
enum:
- admin
- member
example: admin
PaletteColorOptions:
type: object
required:
- main
properties:
main:
type: string
light:
type: string
dark:
type: string
contrastText:
type: string
ThemeConfig:
type: object
properties:
palette:
type: object
properties:
mode:
type: string
enum:
- light
- dark
background:
oneOf:
- type: string
- type: object
properties:
default:
type: string
paper:
type: string
text:
type: object
properties:
primary:
type: string
secondary:
type: string
disabled:
type: string
divider:
type: string
primary:
$ref: '#/components/schemas/PaletteColorOptions'
secondary:
$ref: '#/components/schemas/PaletteColorOptions'
success:
$ref: '#/components/schemas/PaletteColorOptions'
annotation:
$ref: '#/components/schemas/PaletteColorOptions'
error:
$ref: '#/components/schemas/PaletteColorOptions'
info:
$ref: '#/components/schemas/PaletteColorOptions'
warning:
$ref: '#/components/schemas/PaletteColorOptions'
typography:
type: object
properties:
fontFamily:
type: string
fontSize:
oneOf:
- type: string
- type: number
fontWeightRegular:
type: string
fontWeightMedium:
type: string
fontWeightBold:
type: string
borderRadius:
type: number
fontUrl:
type: string
Organization:
type: object
properties:
identifier:
type: string
description: Uniquely identify an organization.
example: mEFayXdO
name:
type: string
example: Grove Street King
userRole:
type: string
allOf:
- $ref: '#/components/schemas/OrganizationRole'
nullable: true
description: The role of the logged in user within the organization.
avatar:
type: string
nullable: true
description: URL of the organization's avatar.
example: https://affinda-api.s3.amazonaws.com/media/org-avatar.png?AWSAccessKeyId=KEY&Signature=SIG
resthookSignatureKey:
type: string
nullable: true
description: Used to sign webhook payloads so you can verify their integrity.
example: 465c6598bd34c0558f0ce256c43209d49fa85b0ff3e4c18b24e408b7563143ad
isTrial:
type: boolean
validationToolConfig:
type: object
nullable: true
description: Configuration of the embeddable validation tool.
properties:
theme:
$ref: '#/components/schemas/ThemeConfig'
hideActions:
type: boolean
description: Hide the confirm document button and other actions.
hideCollection:
type: boolean
description: Hide the collection selector.
hideEditPages:
type: boolean
description: Hide the edit pages button.
hideExport:
type: boolean
description: Hide the export menu.
hideFilename:
type: boolean
description: Hide the filename input.
hideShowRawValues:
type: boolean
description: Hide the toggle for showing raw annotation values.
hideReject:
type: boolean
description: Hide the reject document button.
hideReparse:
type: boolean
description: Hide the reparse button.
hideRunOcr:
type: boolean
description: Hide the run OCR button.
hideTags:
type: boolean
description: Hide the tags editor.
hideWarnings:
type: boolean
description: Hide the warnings panel.
restrictDocumentSplitting:
type: boolean
description: Disable the page editor after a document has been split once.
disableCurrencyFormatting:
type: boolean
description: Disable currency formatting of decimals values.
disableEditDocumentMetadata:
type: boolean
description: Disable editing document metadata. Makes the collection selector, filename input and tags editor
read only.
disableManualAnnotationEditing:
type: boolean
description: Disable manual editing of annotation values via the validation popover.
hideDocumentStatus:
type: boolean
description: Hide the document status indicator in the toolbar.
showCustomFieldCreation:
type: boolean
description: Whether to show the custom field creation in the UI.
WorkspaceVisibility:
type: string
enum:
- organization
- private
description: Visibility "organization" means everyone in the organization can access the workspace. Visibility "private"
means only people explicitly added can access the workspace.
example: organization
namePlural:
type: string
isCustom:
type: boolean
createdDt:
type: string
format: date-time
baseExtractor:
type: object
nullable: true
required:
- identifier
- name
- namePlural
- validatable
properties:
identifier:
$ref: '#/components/schemas/Extractor_properties-identifier'
name:
$ref: '#/components/schemas/name'
namePlural:
$ref: '#/components/schemas/namePlural'
validatable:
$ref: '#/components/schemas/validatable'
isCustom:
$ref: '#/components/schemas/isCustom'
createdDt:
$ref: '#/components/schemas/createdDt'
category:
type: string
nullable: true
example: Recruitment
unvalidatedDocsCount:
type: integer
nullable: true
minimum: 0
description: Number of unvalidated documents in the collection.
confirmedDocsCount:
type: integer
nullable: true
minimum: 0
description: Number of validated documents in the collection.
RejectDuplicates:
type: boolean
description: If "true", parsing will fail when the uploaded document is duplicate of an existing document, no credits
will be consumed. If "false", will parse the document normally whether its a duplicate or not. If not provided, will
fallback to the workspace settings.
example: true
nullable: true
DocumentSplitter_properties-identifier:
type: string
description: Uniquely identify a document splitter.
example: NqIvMvZl
WorkspaceDocumentSplitter:
type: object
required:
- identifier
- name
properties:
identifier:
$ref: '#/components/schemas/DocumentSplitter_properties-identifier'
name:
$ref: '#/components/schemas/name'
Workspace:
type: object
required:
- identifier
properties:
identifier:
type: string
description: Uniquely identify a workspace.
example: mEFayXdO
organization:
$ref: '#/components/schemas/Organization'
name:
type: string
visibility:
$ref: '#/components/schemas/WorkspaceVisibility'
collections:
type: array
items:
type: object
required:
- identifier
- name
- extractor
properties:
identifier:
$ref: '#/components/schemas/properties-identifier'
name:
$ref: '#/components/schemas/name'
extractor:
type: object
required:
- identifier
- name
- namePlural
- validatable
properties:
identifier:
$ref: '#/components/schemas/Extractor_properties-identifier'
name:
$ref: '#/components/schemas/name'
namePlural:
$ref: '#/components/schemas/namePlural'
baseExtractor:
$ref: '#/components/schemas/baseExtractor'
category:
$ref: '#/components/schemas/category'
validatable:
$ref: '#/components/schemas/validatable'
createdDt:
$ref: '#/components/schemas/createdDt'
unvalidatedDocsCount:
$ref: '#/components/schemas/unvalidatedDocsCount'
confirmedDocsCount:
$ref: '#/components/schemas/confirmedDocsCount'
documentTypes:
type: array
description: Document types associated with this workspace
items:
$ref: '#/components/schemas/properties-identifier'
rejectInvalidDocuments:
type: boolean
description: If true, the uploaded document will be rejected if it's of the wrong document type, or if its document
type cannot be determined. No credits will be consumed.
rejectDuplicates:
$ref: '#/components/schemas/RejectDuplicates'
members:
type: array
items:
$ref: '#/components/schemas/User'
unvalidatedDocsCount:
type: integer
minimum: 0
description: Number of unvalidated documents in the workspace.
confirmedDocsCount:
type: integer
minimum: 0
description: Number of validated documents in the workspace.
ingestEmail:
type: string
description: When you send email to this address, any document attached in the body will be uploaded to this workspace.
whitelistIngestAddresses:
type: array
nullable: true
description: If specified, only emails from these addresses will be ingested for parsing. Wild cards are allowed,
e.g. "*@eyefind.info".
items:
type: string
example: '*@eyefind.info'
documentSplitter:
$ref: '#/components/schemas/WorkspaceDocumentSplitter'
nullable: true
rejectInvalidDocuments:
type: boolean
description: If true, the uploaded document will be rejected if it's of the wrong document type, or if its document
type cannot be determined. No credits will be consumed.
whitelistIngestAddresses:
type: array
nullable: true
description: If specified, only emails from these addresses will be ingested for parsing. Wild cards are allowed, e.g.
"*@eyefind.info".
items:
type: string
example: '*@eyefind.info'
WorkspaceCreate:
type: object
required:
- organization
- name
properties:
organization:
$ref: '#/components/schemas/Organization_properties-identifier'
name:
$ref: '#/components/schemas/name'
visibility:
$ref: '#/components/schemas/WorkspaceVisibility'
rejectInvalidDocuments:
$ref: '#/components/schemas/rejectInvalidDocuments'
rejectDuplicates:
$ref: '#/components/schemas/RejectDuplicates'
documentTypes:
type: array
description: Document types to associate with this workspace
items:
$ref: '#/components/schemas/properties-identifier'
whitelistIngestAddresses:
$ref: '#/components/schemas/whitelistIngestAddresses'
documentSplitter:
$ref: '#/components/schemas/DocumentSplitter_properties-identifier'
nullable: true
WorkspaceUpdate:
type: object
properties:
name:
$ref: '#/components/schemas/name'
visibility:
$ref: '#/components/schemas/WorkspaceVisibility'
rejectInvalidDocuments:
$ref: '#/components/schemas/rejectInvalidDocuments'
rejectDuplicates:
$ref: '#/components/schemas/RejectDuplicates'
documentTypes:
type: array
description: Document types to associate with this workspace
items:
$ref: '#/components/schemas/properties-identifier'
whitelistIngestAddresses:
$ref: '#/components/schemas/whitelistIngestAddresses'
documentSplitter:
$ref: '#/components/schemas/DocumentSplitter_properties-identifier'
nullable: true
UsageByWorkspace:
type: object
description: Monthly credits consumption
required:
- month
- count
properties:
month:
type: string
description: Month of the usage
example: 2023-07
count:
type: integer
description: Usage count
example: 100
additionalProperties: false
UsageByWorkspaceResponse:
type: array
description: Monthly credits consumption
items:
$ref: '#/components/schemas/UsageByWorkspace'
WorkspaceMembership:
type: object
properties:
identifier:
type: string
description: Uniquely identify a membership.
example: mEFayXdO
workspace:
$ref: '#/components/schemas/identifier'
user:
$ref: '#/components/schemas/User'
properties-id:
type: integer
description: Uniquely identify a user.
example: 1
minimum: 1
WorkspaceMembershipCreate:
type: object
properties:
workspace:
$ref: '#/components/schemas/identifier'
user:
$ref: '#/components/schemas/properties-id'
WorkspaceMembership_properties-identifier:
type: string
description: Uniquely identify a membership.
example: mEFayXdO
DocumentType:
type: object
required:
- identifier
- name
- organization
properties:
identifier:
type: string
description: Uniquely identify a document type.
example: mEFayXdO
name:
type: string
description: The name of the document type.
description:
type: string
nullable: true
description: A description of the document type.
ingest_email:
type: string
description: The email address that can be used to email documents directly to this document type.
organization:
type: string
description: The identifier of the organization this document type belongs to.
DocumentTypeCreate:
type: object
required:
- name
- organization
properties:
name:
type: string
description: The name of the document type.
description:
type: string
nullable: true
description: A description of the document type.
organization:
type: string
description: The identifier of the organization this document type belongs to.
DocumentTypeUpdate:
type: object
properties:
name:
type: string
description: The new name of the document type.
description:
type: string
nullable: true
description: A new description of the document type.
DocumentType_properties-identifier:
type: string
description: Uniquely identify a document type.
example: mEFayXdO
PydanticModelsResponse:
type: object
required:
- code
properties:
code:
type: string
description: Pydantic model code
properties-name:
type: string
example: My supplier list
nullable: true
MappingDataSource_properties-identifier:
type: string
description: Uniquely identify a mapping data source.
example: mEFayXdO
readOnly: true
MappingDataSource:
type: object
description: A mapping data source is used to map from raw data found by our AI models to records in your database.
required:
- identifier
- organization
- workspace
- keyProperty
- displayProperty
properties:
identifier:
type: string
description: Uniquely identify a mapping data source.
example: mEFayXdO
readOnly: true
name:
type: string
example: My supplier list
nullable: true
keyProperty:
type: string
example: value
description: Attribute in the schema which uniquely identifiers the value
displayProperty:
type: string
example: value
description: Attribute in the schema which is used to display the value
organization:
type: string
example: mewlkWEKL
description: The organization that this mapping data source belongs to.
nullable: true
workspace:
type: string
example: mewlkWEKL
description: The workspace that this mapping data source belongs to.
nullable: true
schema:
type: object
description: The schema of the mapping data source.
example:
type: object
$schema: http://json-schema.org/draft-07/schema#
required:
- label
properties:
label:
type: string
description:
type: string
MappingDataSourceCreate:
type: object
description: A mapping data source is used to map from raw data found by our AI models to records in your database.
required:
- identifier
properties:
name:
type: string
example: My supplier list
nullable: true
organization:
type: string
example: mewlkWEKL
description: The organization that this mapping data source belongs to.
nullable: true
workspace:
type: string
example: mewlkWEKL
description: The workspace that this mapping data source belongs to.
nullable: true
keyProperty:
type: string
example: value
description: Attribute in the schema which uniquely identifiers the value
displayProperty:
type: string
example: label
description: Attribute in the schema which is used to display the value
values:
type: array
writeOnly: true
items:
type: object
schema:
type: object
description: The schema of the mapping data source.
example:
type: object
$schema: http://json-schema.org/draft-07/schema#
required:
- label
properties:
label:
type: string
description:
type: string
ValidationResult:
type: object
additionalProperties: false
nullable: false
description: Validation result arising from a ValidationRule
required:
- id
- annotations
- passed
- ruleSlug
- message
- document
properties:
id:
type: integer
description: Validation Result's ID
example: 1
minimum: 1
annotations:
type: array
items:
type: integer
description: List of annotation ids that were validated
nullable: false
example:
- 1
- 2
- 3
passed:
type: boolean
description: Whether the validation passed or not, null if the validation was not applicable
example: true
nullable: true
ruleSlug:
type: string
description: The kebab-case slug of the validation rule that was applied
example: supplier-name-is-alphanumeric
pattern: ^[a-z0-9][a-z0-9-]*[a-z0-9]$
message:
type: string
description: Message explaining why the validation failed
example: Expected 'ThisInputShouldMatch' to match regex pattern '[0-9]*
document:
$ref: '#/components/schemas/DocumentMeta_properties-identifier'
annotations:
type: array
items:
type: integer
description: List of annotation ids that were validated
nullable: false
example:
- 1
- 2
- 3
passed:
type: boolean
description: Whether the validation passed or not, null if the validation was not applicable
example: true
nullable: true
ruleSlug:
type: string
description: The kebab-case slug of the validation rule that was applied
example: supplier-name-is-alphanumeric
pattern: ^[a-z0-9][a-z0-9-]*[a-z0-9]$
message:
type: string
description: Message explaining why the validation failed
example: Expected 'ThisInputShouldMatch' to match regex pattern '[0-9]*
ValidationResultCreate:
type: object
required:
- annotations
- ruleSlug
- message
- document
properties:
annotations:
$ref: '#/components/schemas/annotations'
passed:
$ref: '#/components/schemas/passed'
ruleSlug:
$ref: '#/components/schemas/ruleSlug'
message:
$ref: '#/components/schemas/message'
document:
$ref: '#/components/schemas/DocumentMeta_properties-identifier'
ValidationResult_properties-id:
type: integer
description: Validation Result's ID
example: 1
minimum: 1
ValidationResultUpdate:
type: object
properties:
annotations:
$ref: '#/components/schemas/annotations'
passed:
$ref: '#/components/schemas/passed'
ruleSlug:
$ref: '#/components/schemas/ruleSlug'
message:
$ref: '#/components/schemas/message'
document:
$ref: '#/components/schemas/DocumentMeta_properties-identifier'
BatchDeleteValidationResultsRequest:
type: object
additionalProperties: false
required:
- ids
properties:
ids:
type: array
items:
type: integer
description: List of validation result IDs to delete.
example:
- 123
- 124
- 125
Organization_properties-name:
type: string
example: Grove Street King
resthookSignatureKey:
type: string
nullable: true
description: Used to sign webhook payloads so you can verify their integrity.
example: 465c6598bd34c0558f0ce256c43209d49fa85b0ff3e4c18b24e408b7563143ad
OrganizationCreate:
type: object
required:
- name
properties:
name:
$ref: '#/components/schemas/Organization_properties-name'
avatar:
type: string
format: binary
description: Upload avatar for the organization.
resthookSignatureKey:
$ref: '#/components/schemas/resthookSignatureKey'
avatar:
type: string
format: binary
description: Upload avatar for the organization.
validationToolConfig:
type: object
nullable: true
description: Configuration of the embeddable validation tool.
properties:
theme:
$ref: '#/components/schemas/ThemeConfig'
hideActions:
type: boolean
description: Hide the confirm document button and other actions.
hideCollection:
type: boolean
description: Hide the collection selector.
hideEditPages:
type: boolean
description: Hide the edit pages button.
hideExport:
type: boolean
description: Hide the export menu.
hideFilename:
type: boolean
description: Hide the filename input.
hideShowRawValues:
type: boolean
description: Hide the toggle for showing raw annotation values.
hideReject:
type: boolean
description: Hide the reject document button.
hideReparse:
type: boolean
description: Hide the reparse button.
hideRunOcr:
type: boolean
description: Hide the run OCR button.
hideTags:
type: boolean
description: Hide the tags editor.
hideWarnings:
type: boolean
description: Hide the warnings panel.
restrictDocumentSplitting:
type: boolean
description: Disable the page editor after a document has been split once.
disableCurrencyFormatting:
type: boolean
description: Disable currency formatting of decimals values.
disableEditDocumentMetadata:
type: boolean
description: Disable editing document metadata. Makes the collection selector, filename input and tags editor read
only.
disableManualAnnotationEditing:
type: boolean
description: Disable manual editing of annotation values via the validation popover.
hideDocumentStatus:
type: boolean
description: Hide the document status indicator in the toolbar.
OrganizationUpdate:
type: object
properties:
name:
$ref: '#/components/schemas/Organization_properties-name'
avatar:
$ref: '#/components/schemas/avatar'
resthookSignatureKey:
$ref: '#/components/schemas/resthookSignatureKey'
validationToolConfig:
$ref: '#/components/schemas/validationToolConfig'
UsageItem:
type: object
description: Daily credits consumption for a single date in the requested period.
required:
- date
- count
properties:
date:
type: string
format: date
description: The day this usage was recorded against, in YYYY-MM-DD.
example: '2025-04-15'
count:
type: integer
description: Credits consumed on this day.
example: 123
additionalProperties: false
UsageResponse:
type: object
description: Daily credits consumption for an organization over a date range, optionally scoped to a single workspace
or document type.
required:
- scope
- scopeIdentifier
- start
- end
- total
- items
properties:
scope:
type: string
description: What the usage was scoped to.
enum:
- organization
- workspace
- documentType
scopeIdentifier:
type: string
description: Identifier of the scoped entity (organization, workspace, or document type).
start:
type: string
format: date
description: Inclusive start of the reported period (YYYY-MM-DD).
example: '2025-04-01'
end:
type: string
format: date
description: Inclusive end of the reported period (YYYY-MM-DD).
example: '2025-04-30'
total:
type: integer
description: Total credits consumed over the period.
example: 4320
items:
type: array
description: Per-day breakdown. Days with zero usage are omitted.
items:
$ref: '#/components/schemas/UsageItem'
additionalProperties: false
TagCreate:
type: object
required:
- name
- workspace
properties:
name:
$ref: '#/components/schemas/name'
workspace:
$ref: '#/components/schemas/identifier'
TagUpdate:
type: object
properties:
name:
$ref: '#/components/schemas/name'
workspace:
$ref: '#/components/schemas/identifier'
BatchAddTagRequest:
type: object
properties:
identifiers:
type: array
items:
$ref: '#/components/schemas/DocumentMeta_properties-identifier'
description: List of documents to tag
tag:
type: integer
example: 1
description: The tag's ID
BatchRemoveTagRequest:
type: object
properties:
identifiers:
type: array
items:
$ref: '#/components/schemas/DocumentMeta_properties-identifier'
description: List of documents to remove tag from
tag:
type: integer
description: The tag's ID
Rectangle:
type: object
additionalProperties: false
nullable: false
required:
- x0
- y0
- x1
- y1
properties:
pageIndex:
type: integer
nullable: false
example: 1
minimum: 0
x0:
type: number
nullable: false
example: 2.43
y0:
type: number
nullable: false
example: 4.55
x1:
type: number
nullable: false
example: 4.56
y1:
type: number
nullable: false
example: 6.32
AnnotationContentType:
type: string
description: The different data types of annotations
enum:
- text
- integer
- float
- decimal
- date
- datetime
- daterange
- boolean
- enum
- location
- phonenumber
- json
- table
- expectedremuneration
- jobtitle
- language
- skill
- yearsexperience
- group
- table_deprecated
- url
- image
- docclf
Annotation:
type: object
additionalProperties: true
nullable: true
required:
- id
- rectangle
- rectangles
- document
- pageIndex
- raw
- confidence
- classificationConfidence
- textExtractionConfidence
- isVerified
- isClientVerified
- isAutoVerified
- contentType
properties:
id:
type: integer
description: Annotation's ID
example: 1
minimum: 1
rectangle:
$ref: '#/components/schemas/Rectangle'
nullable: true
description: x/y coordinates for the rectangular bounding box containing the data
rectangles:
type: array
items:
$ref: '#/components/schemas/Rectangle'
description: x/y coordinates for the rectangles containing the data. An annotation can be contained within multiple
rectangles.
document:
$ref: '#/components/schemas/DocumentMeta_properties-identifier'
pageIndex:
type: integer
nullable: true
example: 0
minimum: 0
description: The page number within the document, starting from 0.
raw:
type: string
nullable: true
description: Raw data extracted from the before any post-processing
confidence:
type: number
nullable: true
example: 0.86
description: The overall confidence that the model's prediction is correct
classificationConfidence:
type: number
nullable: true
example: 0.95
description: The model's confidence that the text has been classified correctly
textExtractionConfidence:
type: number
nullable: true
example: 0.9
description: If the document was submitted as an image, this is the confidence that the text in the image has been
correctly read by the model
isVerified:
type: boolean
description: Indicates whether the data has been validated, either by a human using our validation tool or through
auto-validation rules
isClientVerified:
type: boolean
description: Indicates whether the data has been validated by a human
isAutoVerified:
type: boolean
description: Indicates whether the data has been auto-validated
dataPoint:
type: string
description: Data point's identifier
field:
type: string
description: Field's identifier
nullable: true
contentType:
$ref: '#/components/schemas/AnnotationContentType'
parent:
type: integer
description: The parent annotation's ID
nullable: true
rectangles:
type: array
items:
$ref: '#/components/schemas/Rectangle'
description: x/y coordinates for the rectangles containing the data. An annotation can be contained within multiple
rectangles.
pageIndex:
type: integer
nullable: true
example: 0
minimum: 0
description: The page number within the document, starting from 0.
dataPoint:
type: string
description: Data point's identifier
field:
type: string
description: Field's identifier
nullable: true
raw:
type: string
nullable: true
description: Raw data extracted from the before any post-processing
AnnotationCreate:
type: object
required:
- document
- pageIndex
properties:
rectangles:
$ref: '#/components/schemas/rectangles'
document:
$ref: '#/components/schemas/DocumentMeta_properties-identifier'
pageIndex:
$ref: '#/components/schemas/pageIndex'
dataPoint:
$ref: '#/components/schemas/dataPoint'
field:
$ref: '#/components/schemas/field'
raw:
$ref: '#/components/schemas/raw'
parsed:
oneOf:
- type: string
nullable: true
- type: integer
nullable: true
- type: number
nullable: true
- type: boolean
nullable: true
- type: object
nullable: true
additionalProperties: true
- type: array
nullable: true
items:
$ref: '#/components/schemas/AnnotationCreate'
isClientVerified:
$ref: '#/components/schemas/isClientVerified'
parent:
type: integer
description: The parent annotation's ID
nullable: true
validationResults:
type: array
description: The validation results created, changed or deleted as a result of creating the annotation.
items:
$ref: '#/components/schemas/ChangedValidationResults'
isClientVerified:
type: boolean
description: Indicates whether the data has been validated by a human
ChangedValidationResults:
type: object
additionalProperties: true
nullable: true
properties:
created:
type: array
description: List of validation results created during this operation.
items:
$ref: '#/components/schemas/ValidationResult'
updated:
type: array
description: List of validation results updated during this operation.
items:
$ref: '#/components/schemas/ValidationResult'
deleted:
type: array
description: List of validation results deleted during this operation.
items:
$ref: '#/components/schemas/ValidationResult'
AnnotationWithValidationResults:
type: object
nullable: true
allOf:
- $ref: '#/components/schemas/Annotation'
- type: object
properties:
validationResults:
type: array
description: List of validation results for this annotation.
items:
$ref: '#/components/schemas/ValidationResult'
Annotation_properties-id:
type: integer
description: Annotation's ID
example: 1
minimum: 1
AnotationDelete:
type: object
properties:
validationResults:
type: object
description: The validation results created, changed or deleted as a result of deleting the annotation.
items:
$ref: '#/components/schemas/ChangedValidationResults'
parent:
type: integer
description: The parent annotation's ID
nullable: true
AnnotationUpdate:
type: object
properties:
rectangles:
$ref: '#/components/schemas/rectangles'
document:
$ref: '#/components/schemas/DocumentMeta_properties-identifier'
pageIndex:
$ref: '#/components/schemas/pageIndex'
raw:
$ref: '#/components/schemas/raw'
parsed:
oneOf:
- type: string
nullable: true
- type: integer
nullable: true
- type: number
nullable: true
- type: boolean
nullable: true
- type: object
nullable: true
additionalProperties: true
- type: array
nullable: true
items:
$ref: '#/components/schemas/AnnotationCreate'
isClientVerified:
$ref: '#/components/schemas/isClientVerified'
dataPoint:
$ref: '#/components/schemas/dataPoint'
field:
$ref: '#/components/schemas/field'
parent:
$ref: '#/components/schemas/parent'
validationResults:
type: array
description: The validation results created, changed or deleted as a result of updating the annotation.
items:
$ref: '#/components/schemas/ChangedValidationResults'
BatchCreateAnnotationsRequest:
type: array
items:
$ref: '#/components/schemas/AnnotationCreate'
BatchCreateAnnotationsResponse:
type: array
items:
$ref: '#/components/schemas/Annotation'
parsed:
oneOf:
- type: string
nullable: true
- type: integer
nullable: true
- type: number
nullable: true
- type: boolean
nullable: true
- type: object
nullable: true
additionalProperties: true
- type: array
nullable: true
items:
$ref: '#/components/schemas/AnnotationCreate'
validationResults:
type: array
description: The validation results created, changed or deleted as a result of updating the annotation.
items:
$ref: '#/components/schemas/ChangedValidationResults'
AnnotationBatchUpdate:
type: object
required:
- id
properties:
id:
$ref: '#/components/schemas/Annotation_properties-id'
rectangles:
$ref: '#/components/schemas/rectangles'
document:
$ref: '#/components/schemas/DocumentMeta_properties-identifier'
pageIndex:
$ref: '#/components/schemas/pageIndex'
raw:
$ref: '#/components/schemas/raw'
parsed:
$ref: '#/components/schemas/parsed'
isClientVerified:
$ref: '#/components/schemas/isClientVerified'
dataPoint:
$ref: '#/components/schemas/dataPoint'
parent:
$ref: '#/components/schemas/parent'
validationResults:
$ref: '#/components/schemas/validationResults'
BatchUpdateAnnotationsRequest:
type: array
items:
$ref: '#/components/schemas/AnnotationBatchUpdate'
BatchUpdateAnnotationsResponse:
type: array
items:
$ref: '#/components/schemas/Annotation'
BatchDeleteAnnotationsRequest:
type: array
description: Array of annotation IDs to be deleted
items:
$ref: '#/components/schemas/Annotation_properties-id'
BatchDeleteAnnotationsResponse:
type: object
properties:
validationResults:
type: object
description: The validation results created, changed or deleted as a result of deleting the annotations.
items:
$ref: '#/components/schemas/ChangedValidationResults'
ResthookEvent:
type: string
enum:
- resume.parse.succeeded
- resume.parse.failed
- resume.parse.completed
- invoice.parse.succeeded
- invoice.parse.failed
- invoice.parse.completed
- invoice.validate.completed
- document.parse.succeeded
- document.parse.failed
- document.parse.completed
- document.validate.completed
- document.classify.succeeded
- document.classify.failed
- document.classify.completed
- document.rejected
- annotation.validated
description: The event name to subscribe to.
example: document.parse.succeeded
ResthookSubscriptionWorkspace:
type: object
required:
- identifier
- name
- organization
properties:
identifier:
$ref: '#/components/schemas/identifier'
name:
$ref: '#/components/schemas/name'
organization:
$ref: '#/components/schemas/Organization'
ResthookSubscription:
type: object
required:
- id
- event
- organization
- workspace
- targetUrl
- active
- autoDeactivated
- autoDeactivateReason
- version
properties:
id:
type: integer
description: Resthook subscription's ID.
event:
$ref: '#/components/schemas/ResthookEvent'
organization:
$ref: '#/components/schemas/Organization'
nullable: true
workspace:
$ref: '#/components/schemas/ResthookSubscriptionWorkspace'
nullable: true
targetUrl:
type: string
description: URL of the resthook's receiver.
example: https://my-site.com/receive
active:
type: boolean
description: Resthooks only fire for active subscriptions.
example: true
autoDeactivated:
type: boolean
description: Resthook subscriptions can be auto deactivated if the receiver continuously returns error status code
over a period of time.
example: true
autoDeactivateReason:
type: string
description: The reason for the subscription being auto deactivated. May contains the error response that the receiver
returned.
example: 'Resthook fails after 10 retries. The last error received was: 500 - Internal server error.'
version:
type: string
enum:
- v1
- v2
- v3
description: Version of the resthook subscription. Determines the resthook body being fired.
example: v3
targetUrl:
type: string
description: URL of the resthook's receiver.
example: https://my-site.com/receive
version:
type: string
enum:
- v1
- v2
- v3
description: Version of the resthook subscription. Determines the resthook body being fired.
example: v3
ResthookSubscriptionCreate:
type: object
required:
- targetUrl
- event
properties:
targetUrl:
$ref: '#/components/schemas/targetUrl'
event:
$ref: '#/components/schemas/ResthookEvent'
organization:
type: string
allOf:
- $ref: '#/components/schemas/Organization_properties-identifier'
- type: string
description: Specify to create an organization scope resthook. Not required if you're a member of only 1 organization.
workspace:
type: string
allOf:
- $ref: '#/components/schemas/identifier'
- type: string
description: Specify to create a workspace scope resthook.
version:
$ref: '#/components/schemas/version'
ResthookSubscription_properties-id:
type: integer
description: Resthook subscription's ID.
ResthookSubscriptionUpdate:
type: object
properties:
event:
$ref: '#/components/schemas/ResthookEvent'
organization:
$ref: '#/components/schemas/Organization_properties-identifier'
workspace:
$ref: '#/components/schemas/identifier'
version:
$ref: '#/components/schemas/version'
Location:
type: object
nullable: true
required:
- rawInput
properties:
formatted:
type: string
nullable: true
readOnly: true
example: Blacksburg, VA, USA
postalCode:
type: string
readOnly: true
example: '3124'
nullable: true
state:
type: string
readOnly: true
nullable: true
example: Virginia
stateCode:
type: string
nullable: true
readOnly: true
example: TX
country:
type: string
readOnly: true
nullable: true
example: United States
countryCode:
type: string
nullable: true
readOnly: true
example: US
description: Two letter country code (ISO 3166-1 alpha-2)
rawInput:
type: string
example: Blacksburg, VA
streetNumber:
type: string
nullable: true
readOnly: true
example: '1'
street:
type: string
nullable: true
readOnly: true
example: Smith St
apartmentNumber:
type: string
nullable: true
readOnly: true
example: '12'
city:
type: string
nullable: true
readOnly: true
example: Blacksburg
latitude:
type: number
nullable: true
readOnly: true
example: '67.0124'
longitude:
type: number
nullable: true
readOnly: true
example: '67.0124'
poBox:
type: string
nullable: true
readOnly: true
example: P.O. Box 123
Accreditation:
type: object
nullable: true
additionalProperties: false
properties:
education:
type: string
example: Bachelor of Science
inputStr:
type: string
readOnly: true
example: Bachelor of Science, Mechanical Engineering, expected
matchStr:
type: string
nullable: true
readOnly: true
example: Bachelor of Science
educationLevel:
type: string
nullable: true
readOnly: true
example: bachelors
Education:
type: object
properties:
id:
type: integer
nullable: false
minimum: 1
organization:
type: string
nullable: true
example: Virginia Polytechnic Institute and State University (Virginia Tech)
accreditation:
$ref: '#/components/schemas/Accreditation'
grade:
type: object
additionalProperties: true
nullable: true
properties:
raw:
type: string
example: 'GPA : 3.35'
metric:
type: string
example: GPA
nullable: true
value:
type: string
example: '3.35'
location:
$ref: '#/components/schemas/Location'
dates:
type: object
nullable: true
additionalProperties: false
properties:
completionDate:
type: string
format: date
example: '2021-05-01'
isCurrent:
type: boolean
startDate:
type: string
format: date
nullable: true
example: '2019-05-01'
rawText:
type: string
example: May-Aug '18
ManagementLevel:
type: string
example: Low
nullable: true
enum:
- None
- Low
- Mid
- Upper
x-ms-enum:
name: managementLevel
ResumeData:
type: object
additionalProperties:
anyOf:
- type: object
nullable: true
- type: string
nullable: true
- type: integer
nullable: true
- type: number
nullable: true
- type: boolean
nullable: true
- type: array
items: {}
description: 'For fields with multiple entries, use lists. E.g. ''multipleField'': [''entry1'', ''entry2'']'
nullable: true
description: 'For custom fields. E.g. ''isAvailable'': true'
not:
type: object
nullable: true
description: A JSON-encoded string of the `ResumeData` object.
properties:
name:
type: object
nullable: true
additionalProperties: false
properties:
raw:
type: string
example: Tim A. Smith
first:
type: string
example: Tim
last:
type: string
example: Smith
middle:
type: string
example: A.
title:
type: string
example: Dr
phoneNumbers:
type: array
items:
type: string
example:
- (704) 996-9966
- '+61412632636'
phoneNumberDetails:
type: array
items:
type: object
properties:
rawText:
type: string
nullable: false
example: '+61412632636'
formattedNumber:
type: string
nullable: true
example: +61 412 632 636
countryCode:
type: string
nullable: true
example: AU
internationalCountryCode:
type: integer
nullable: true
example: 61
minimum: 1
nationalNumber:
type: string
nullable: true
example: 0412 632 636
websites:
type: array
items:
type: string
example:
- www.timsmith.com
emails:
type: array
items:
type: string
format: email
example:
- timsmith@vt.edu
dateOfBirth:
type: string
example: '1992-01-01'
nullable: true
location:
$ref: '#/components/schemas/Location'
objective:
type: string
default: ''
nullable: true
languages:
type: array
items:
type: string
enum:
- Ainu
- Akan
- Akkadian
- Amharic
- Anam
- Arabic
- Aramaic
- Arem
- Armenian
- Awadhi
- Aymara
- Azari
- Bagheli
- Bagri
- Bahasa
- Bahasa Indonesian
- Bambara
- Bangala
- Bardi
- Bassa
- Batak
- Belarusian
- Bemba
- Benga
- Bengali
- Berber
- Bhojpuri
- Bislama
- Brahui
- Bulgarian
- Bunu
- Cambodian
- Carew
- Carib
- Catalan
- Cebuano
- Chakma
- Chamorro
- Chango
- Chewa
- Croatian
- Czech
- Dagbani
- Danish
- Dari
- Dayi
- Dhatki
- Dhivehi
- Dinka
- Dogri
- Duala
- Dutch
- English
- Esperanto
- Estonian
- Ewondo
- Faroese
- Filipino
- Finnish
- Formula
- French
- Frisian
- Friulian
- Fula
- Gaelic
- Galo
- Garhwali
- Garifuna
- German
- Gikuyu
- Gujarati
- Gujerati
- Gwere
- Hawaiian
- Haya
- Hebrew
- Hindi
- Hmu
- Hokkien
- Hopi
- Hungarian
- Hup
- Ibanag
- Igbo
- Ilokano
- Indonesian
- Intermediate
- Irish
- Italian
- Japanese
- Jiba
- Kachin
- Kalenjin
- Kamayo
- Kannada
- Kaonde
- Kayan
- Khandeshi
- Khmer
- Kikuyu
- Kodava
- Koma
- Kongo
- Konkani
- Korean
- Korwa
- Kreyol
- Krio
- Kumaoni
- Kurdish
- Kurukh
- Kwa
- Ladino
- Lango
- Latvian
- Lawa
- Lingala
- Lithuanian
- Lule
- Luxembourgish
- Magahi
- Maithili
- Malay
- Malayalam
- Malaysian
- Malvi
- Maninka
- Manipuri
- Manx
- Marathi
- Mayan
- Medumba
- Memoni
- Mewari
- Mizo
- Montenegrin
- Mwan
- Mwanga
- Ndebele
- Nepali
- Nimadi
- Oriya
- Oromo
- Ovambo
- Pamona
- Pangasinan
- Pashto
- Phoenician
- Polish
- Portuguese
- Pulaar
- Pular
- Punjabi
- Quecha
- Rajasthani
- Romanian
- Russian
- Sakha
- Sango
- Santhali
- Saraiki
- Seim
- Shading
- Shama
- Shan
- Shona
- Silesian
- Sindhi
- Slovak
- Slovene
- Soga
- Sogdian
- Sotho
- Spanish
- Sudanese
- Sumerian
- Surajpuri
- Surigaonon
- Swati
- Swazi
- Swedish
- Tagalog
- Tamil
- Tausug
- Telugu
- Tetum
- Tharu
- Tibetan
- Tigrinya
- Tripuri
- Tswana
- Tulu
- Turkish
- Tuwali
- Ubi
- Ukrainian
- Urdu
- Veps
- Vietnamese
- Wagdi
- Waziri
- Xhosa
- Yiddish
- Yoruba
example:
- English
- French
- Arabic
languageCodes:
type: array
items:
type: string
readOnly: true
example:
- en
- fr
- ar
summary:
type: string
default: ''
nullable: true
totalYearsExperience:
type: integer
example: 13
nullable: true
minimum: 0
headShot:
type: string
format: byte
nullable: true
readOnly: true
description: base64 encoded string
education:
type: array
items:
$ref: '#/components/schemas/Education'
profession:
type: string
example: Software Developer
description: Prediction of the candidate's profession based on recent work experience
nullable: true
readOnly: true
linkedin:
type: string
example: https://www.linkedin.com/in/user-name
description: Linkedin account associated with the candidate
nullable: true
readOnly: true
workExperience:
type: array
items:
type: object
additionalProperties: false
properties:
id:
type: integer
nullable: false
minimum: 1
jobTitle:
type: string
nullable: true
example: Sales and retail assistants
socCode:
type: string
nullable: true
readOnly: true
example: '7111'
socName:
type: string
nullable: true
readOnly: true
example: Sales and retail assistants
organization:
type: string
nullable: true
example: General Motors
industry:
type: string
nullable: true
readOnly: true
example: Automotive
location:
$ref: '#/components/schemas/Location'
jobDescription:
type: string
nullable: true
example: Interned with supercar Development from May 2017 to August 2017.
dates:
type: object
additionalProperties: false
nullable: true
properties:
startDate:
type: string
format: date
nullable: true
example: '2018-05-01'
endDate:
type: string
format: date
nullable: true
example: '2018-08-01'
monthsInPosition:
type: integer
nullable: true
minimum: 0
isCurrent:
type: boolean
rawText:
type: string
example: May-Aug '18
occupation:
type: object
additionalProperties: false
nullable: false
readOnly: true
properties:
jobTitle:
type: string
nullable: true
example: Sr. Software Developer
description: The raw (not normalized) job title pulled from the work experience entry
jobTitleNormalized:
type: string
example: Software Developer
nullable: true
description: Mapped onto the EMSI job title taxonomy if a sufficiently close match exists.
emsiId:
type: string
nullable: true
example: ETE2AD3A1C11B4EC9B
description: EMSI id of the normalised job title.
managementLevel:
$ref: '#/components/schemas/ManagementLevel'
classification:
type: object
additionalProperties: false
nullable: true
properties:
title:
type: string
example: Book-keepers, payroll managers and wages clerks
description: SOC2020 classification for this job title
minorGroup:
type: string
example: 'Administrative Occupations: Finance'
description: SOC2020 minor group
subMajorGroup:
type: string
example: ADMINISTRATIVE OCCUPATIONS
description: SOC2020 sub major group
majorGroup:
type: string
example: ADMINISTRATIVE AND SECRETARIAL OCCUPATIONS
description: SOC2020 major group
socCode:
type: integer
example: 4122
minimum: 1
maximum: 9999
description: The 4 digit code representing the SOC2020 classification for this job title
minorGroupCode:
type: integer
example: 4122
minimum: 1
maximum: 9999
description: The 4 digit code representing the SOC2020 classification for this job title
subMajorGroupCode:
type: integer
example: 4122
minimum: 1
maximum: 9999
description: The 4 digit code representing the SOC2020 classification for this job title
majorGroupCode:
type: integer
example: 4122
minimum: 1
maximum: 9999
description: The 4 digit code representing the SOC2020 classification for this job title
skills:
type: array
items:
type: object
additionalProperties: false
properties:
id:
type: integer
nullable: false
minimum: 1
emsiId:
type: string
nullable: true
readOnly: true
example: KS1218W78FGVPVP2KXPX
description: EMSI id of this skill.
name:
type: string
example: Applied Mechanics
lastUsed:
nullable: true
type: string
example: '2012-01-01'
numberOfMonths:
type: integer
nullable: true
example: 12
minimum: 0
type:
type: string
readOnly: true
example: hard_skill
count:
type: integer
nullable: true
readOnly: true
example: 16
minimum: 0
weighting:
type: number
nullable: true
readOnly: true
example: 0.057699221573302296
sources:
type: array
readOnly: true
items:
type: object
additionalProperties: false
properties:
section:
type: string
example: WorkExperience
position:
type: integer
nullable: true
example: 0
description: If this skill is extracted from a "workExperience" section, the "position" is the index
of the work experience where this skill is found, with 0 being the first work experience, 1 being
the second work experience, and so on.
workExperienceId:
type: integer
nullable: true
example: 1234
description: If this skill is extracted from a "workExperience" section, the "workExperienceId" is the
id of the work experience where this skill is found.
certifications:
type: array
items:
type: string
example:
- Certificate in AWS
publications:
type: array
items:
type: string
example:
- Tim Smith et al., Investigations of nanoparticles in the pathology of the human eye, Cell 2014
referees:
type: array
items:
type: object
additionalProperties: true
properties:
name:
type: string
example: Stephen Smith
nullable: true
text:
type: string
example: 'Stephen Smith, Team Member/Mentor, Company Power Generation: stephen.smith@company.com'
email:
type: string
format: email
example: stephen.smith@company.com
nullable: true
number:
type: string
example: '+61490667215'
nullable: true
position:
type: string
nullable: true
example: Principal
sections:
type: array
readOnly: true
items:
type: object
additionalProperties: false
properties:
sectionType:
type: string
example: PersonalDetails
bbox:
type: array
items:
type: number
example:
- 0
- 36.392
- 612
- 111.056
minItems: 4
maxItems: 4
pageIndex:
type: integer
text:
type: string
example:
isResumeProbability:
type: integer
readOnly: true
nullable: true
example: 98
description: Probability that the given document is a resume. Values below 30 suggest that the document is not a
resume.
rawText:
type: string
example: Christopher Nolan 3210 fake street '... '
description: All of the raw text of the parsed resume, example is shortened for readability
redactedText:
type: string
example: '**** Objective: To obtain a job ''... '''
description: Redacted version of the text in the resume, removing PII.
JobTitleAnnotation:
type: object
nullable: true
allOf:
- $ref: '#/components/schemas/Annotation'
- properties:
parsed:
type: object
nullable: true
description: Years of experience range
properties:
name:
type: string
nullable: true
managementLevel:
type: string
nullable: true
example: Mid
classification:
type: object
nullable: true
properties:
socCode:
type: number
example: 2463
title:
type: string
example: Clergy
minorGroup:
type: string
example: Welfare Professionals
subMajorGroup:
type: string
example: BUSINESS, MEDIA AND PUBLIC SERVICE PROFESSIONALS
majorGroup:
type: string
example: PROFESSIONAL OCCUPATIONS
minorGroupCode:
type: integer
example: 4122
minimum: 1
maximum: 9999
description: The 4 digit code representing the SOC2020 classification for this job title
subMajorGroupCode:
type: integer
example: 4122
minimum: 1
maximum: 9999
description: The 4 digit code representing the SOC2020 classification for this job title
majorGroupCode:
type: integer
example: 4122
minimum: 1
maximum: 9999
description: The 4 digit code representing the SOC2020 classification for this job title
TextAnnotation:
type: object
nullable: true
allOf:
- $ref: '#/components/schemas/Annotation'
- type: object
properties:
parsed:
type: string
nullable: true
DateAnnotation:
type: object
nullable: true
allOf:
- $ref: '#/components/schemas/Annotation'
- type: object
properties:
parsed:
type: string
format: date
nullable: true
example: '2022-02-09'
LanguageAnnotation:
type: object
nullable: true
allOf:
- $ref: '#/components/schemas/Annotation'
- type: object
properties:
parsed:
type: string
readOnly: true
nullable: true
example: Basket weaving
SkillAnnotation:
type: object
nullable: true
allOf:
- $ref: '#/components/schemas/Annotation'
- type: object
properties:
parsed:
type: string
readOnly: true
nullable: true
example: Mandarin Chinese
ExpectedRemunerationAnnotation:
type: object
nullable: true
allOf:
- $ref: '#/components/schemas/Annotation'
- type: object
properties:
parsed:
type: object
properties:
minimum:
type: number
nullable: true
example: '3455343.50'
maximum:
type: number
nullable: true
example: '55545343.50'
currency:
type: string
nullable: true
example: USD
unit:
type: string
nullable: true
example: Annually
LocationAnnotation:
type: object
nullable: true
allOf:
- $ref: '#/components/schemas/Annotation'
- type: object
properties:
parsed:
$ref: '#/components/schemas/Location'
YearsExperienceAnnotation:
type: object
nullable: true
allOf:
- $ref: '#/components/schemas/Annotation'
- type: object
properties:
parsed:
type: object
description: Years of experience range
properties:
minimum:
type: number
nullable: true
description: Minimum years of experience
example: 0.5
maximum:
type: number
nullable: true
description: Maximum years of experience
example: 5
JobDescriptionData:
type: object
additionalProperties:
anyOf:
- type: string
nullable: true
- type: integer
nullable: true
- type: number
nullable: true
- type: boolean
nullable: true
- type: array
items: {}
description: 'For fields with multiple entries, use lists. E.g. ''multipleField'': [''entry1'', ''entry2'']'
nullable: true
description: 'For custom fields. E.g. ''isAvailable'': true'
not:
type: object
nullable: true
description: A JSON-encoded string of the `JobDescriptionData` object.
properties:
jobTitle:
$ref: '#/components/schemas/JobTitleAnnotation'
contactEmail:
$ref: '#/components/schemas/TextAnnotation'
contactName:
$ref: '#/components/schemas/TextAnnotation'
contactPhone:
$ref: '#/components/schemas/TextAnnotation'
startDate:
$ref: '#/components/schemas/DateAnnotation'
endDate:
$ref: '#/components/schemas/DateAnnotation'
jobType:
$ref: '#/components/schemas/TextAnnotation'
languages:
type: array
items:
$ref: '#/components/schemas/LanguageAnnotation'
skills:
type: array
items:
$ref: '#/components/schemas/SkillAnnotation'
organizationName:
$ref: '#/components/schemas/TextAnnotation'
organizationWebsite:
$ref: '#/components/schemas/TextAnnotation'
educationLevel:
$ref: '#/components/schemas/TextAnnotation'
educationAccreditation:
$ref: '#/components/schemas/TextAnnotation'
expectedRemuneration:
$ref: '#/components/schemas/ExpectedRemunerationAnnotation'
location:
$ref: '#/components/schemas/LocationAnnotation'
certifications:
type: array
items:
$ref: '#/components/schemas/TextAnnotation'
yearsExperience:
$ref: '#/components/schemas/YearsExperienceAnnotation'
rawText:
type: string
example: Human Resources Assistant Switzerland '... '
description: All of the raw text of the parsed job description, example is shortened for readability
x-csharp-usage: output
DocumentCreateFromData:
type: object
required:
- data
properties:
data:
description: Create resume or job description directly from data.
oneOf:
- $ref: '#/components/schemas/ResumeData'
- $ref: '#/components/schemas/JobDescriptionData'
AnnotationBase:
type: object
additionalProperties: true
nullable: true
properties:
id:
type: integer
rectangle:
$ref: '#/components/schemas/Rectangle'
nullable: true
rectangles:
type: array
readOnly: true
items:
$ref: '#/components/schemas/Rectangle'
nullable: true
pageIndex:
type: integer
nullable: true
example: 0
raw:
type: string
nullable: true
example: 2/9/2022
confidence:
type: number
nullable: true
example: 0.86
description: The overall confidence that the model's prediction is correct
classificationConfidence:
type: number
nullable: true
example: 0.95
description: The model's confidence that the text has been classified correctly
textExtractionConfidence:
type: number
nullable: true
example: 0.9
description: If the document was submitted as an image, this is the confidence that the text in the image has been
correctly read by the model.
isVerified:
type: boolean
isClientVerified:
type: boolean
isAutoVerified:
type: boolean
dataPoint:
type: string
contentType:
type: string
JobTitleParsed:
type: object
properties:
parsed:
type: object
nullable: true
description: Matching job title to extracted text
readOnly: true
properties:
name:
type: string
nullable: true
managementLevel:
type: string
nullable: true
example: Mid
classification:
type: object
nullable: true
properties:
socCode:
type: number
example: 2463
title:
type: string
example: Clergy
minorGroup:
type: string
example: Welfare Professionals
subMajorGroup:
type: string
example: BUSINESS, MEDIA AND PUBLIC SERVICE PROFESSIONALS
majorGroup:
type: string
example: PROFESSIONAL OCCUPATIONS
minorGroupCode:
type: integer
example: 4122
description: The 4 digit code representing the SOC2020 classification for this job title
subMajorGroupCode:
type: integer
example: 4122
description: The 4 digit code representing the SOC2020 classification for this job title
majorGroupCode:
type: integer
example: 4122
description: The 4 digit code representing the SOC2020 classification for this job title
JobTitleAnnotationUpdate:
type: object
nullable: true
allOf:
- $ref: '#/components/schemas/AnnotationBase'
- $ref: '#/components/schemas/JobTitleParsed'
TextAnnotationUpdate:
type: object
nullable: true
allOf:
- $ref: '#/components/schemas/AnnotationBase'
- type: object
properties:
parsed:
type: string
nullable: true
example: John Smith
DateAnnotationUpdate:
type: object
nullable: true
allOf:
- $ref: '#/components/schemas/AnnotationBase'
- type: object
properties:
parsed:
type: string
format: date
nullable: true
example: '2022-02-09'
LanguageAnnotationUpdate:
type: object
nullable: true
allOf:
- $ref: '#/components/schemas/AnnotationBase'
- type: object
properties:
parsed:
type: string
readOnly: true
nullable: true
example: Mandarin Chinese
SkillAnnotationUpdate:
type: object
nullable: true
allOf:
- $ref: '#/components/schemas/AnnotationBase'
- type: object
properties:
parsed:
type: string
readOnly: true
nullable: true
example: Basket weaving
ExpectedRemunerationAnnotationUpdate:
type: object
nullable: true
allOf:
- $ref: '#/components/schemas/AnnotationBase'
- type: object
properties:
parsed:
type: object
properties:
minimum:
type: number
nullable: true
example: '3455343.50'
maximum:
type: number
nullable: true
example: '55545343.50'
currency:
type: string
nullable: true
example: USD
unit:
type: string
nullable: true
example: Annually
LocationAnnotationUpdate:
type: object
nullable: true
allOf:
- $ref: '#/components/schemas/AnnotationBase'
- type: object
properties:
parsed:
readOnly: true
allOf:
- $ref: '#/components/schemas/Location'
YearsExperienceAnnotationUpdate:
type: object
nullable: true
allOf:
- $ref: '#/components/schemas/AnnotationBase'
- type: object
properties:
parsed:
type: object
description: Years of experience range
properties:
minimum:
type: number
nullable: true
description: Minimum years of experience
example: 0.5
maximum:
type: number
nullable: true
description: Maximum years of experience
example: 5
JobDescriptionDataUpdate:
type: object
additionalProperties:
anyOf:
- type: string
nullable: true
- type: integer
nullable: true
- type: number
nullable: true
- type: boolean
nullable: true
- type: array
items: {}
description: 'For fields with multiple entries, use lists. E.g. ''multipleField'': [''entry1'', ''entry2'']'
nullable: true
description: 'For custom fields. E.g. ''isAvailable'': true'
not:
type: object
nullable: true
description: A JSON-encoded string of the `JobDescriptionData` object.
properties:
jobTitle:
$ref: '#/components/schemas/JobTitleAnnotationUpdate'
contactEmail:
$ref: '#/components/schemas/TextAnnotationUpdate'
contactName:
$ref: '#/components/schemas/TextAnnotationUpdate'
contactPhone:
$ref: '#/components/schemas/TextAnnotationUpdate'
startDate:
$ref: '#/components/schemas/DateAnnotationUpdate'
endDate:
$ref: '#/components/schemas/DateAnnotationUpdate'
jobType:
$ref: '#/components/schemas/TextAnnotationUpdate'
languages:
type: array
items:
$ref: '#/components/schemas/LanguageAnnotationUpdate'
skills:
type: array
items:
$ref: '#/components/schemas/SkillAnnotationUpdate'
organizationName:
$ref: '#/components/schemas/TextAnnotationUpdate'
organizationWebsite:
$ref: '#/components/schemas/TextAnnotationUpdate'
educationLevel:
$ref: '#/components/schemas/TextAnnotationUpdate'
educationAccreditation:
$ref: '#/components/schemas/TextAnnotationUpdate'
expectedRemuneration:
$ref: '#/components/schemas/ExpectedRemunerationAnnotationUpdate'
location:
$ref: '#/components/schemas/LocationAnnotationUpdate'
certifications:
type: array
items:
$ref: '#/components/schemas/TextAnnotationUpdate'
yearsExperience:
$ref: '#/components/schemas/YearsExperienceAnnotationUpdate'
x-csharp-usage: output
OccupationGroup:
type: object
additionalProperties: false
required:
- code
- name
- children
properties:
code:
type: integer
name:
type: string
children:
type: array
items:
$ref: '#/components/schemas/OccupationGroup'
ResumeSearchParametersLocation:
type: object
properties:
name:
type: string
default: ''
coordinates:
type: object
nullable: true
properties:
latitude:
type: number
nullable: true
longitude:
type: number
nullable: true
distance:
type: integer
default: 100
minimum: 1
unit:
type: string
enum:
- km
- mi
default: km
x-ms-enum:
name: searchLocationUnit
ResumeSearchParametersSkill:
type: object
properties:
name:
type: string
required:
type: boolean
EducationLevel:
type: string
example: bachelors
nullable: true
enum:
- school
- certificate
- bachelors
- masters
- doctoral
x-ms-enum:
name: educationLevel
SearchParametersCustomData:
type: object
required:
- filterType
- query
properties:
filterType:
type: string
enum:
- equals
- range
example: equals
description: Data points of "text" type support only "equals" filterType, others support both "equals" and "range"
dataPoint:
type: string
nullable: true
example: isAvailable
description: The data point's slug, used for portal v2 (deprecated)
deprecated: true
field:
type: string
nullable: true
example: isAvailable
description: The field's slug
query:
type: object
example:
value: true
description: '"equals" searches require the "value" key inside the query, and "range" searches require at least
one of "gte" (greater than or equal) and "lte" (less than or equal)'
required:
type: boolean
weight:
type: number
minimum: 0
maximum: 1
ResumeSearchParametersCustomData:
type: object
allOf:
- $ref: '#/components/schemas/SearchParametersCustomData'
ResumeSearchParameters:
type: object
additionalProperties: false
nullable: false
required:
- indices
properties:
indices:
type: array
example:
- all-resumes
items:
type: string
jobDescription:
$ref: '#/components/schemas/Identifier'
nullable: true
resume:
$ref: '#/components/schemas/Identifier'
nullable: true
jobTitles:
type: array
items:
type: string
jobTitlesCurrentOnly:
type: boolean
description: Search only through the canditate's current job
jobTitlesRequired:
type: boolean
jobTitlesWeight:
type: number
minimum: 0
maximum: 1
yearsExperienceMin:
type: integer
nullable: true
minimum: 0
description: Minimum years of total work experience
yearsExperienceMax:
type: integer
nullable: true
minimum: 0
description: Maximum years of total work experience
yearsExperienceRequired:
type: boolean
yearsExperienceWeight:
type: number
minimum: 0
maximum: 1
locations:
type: array
description: Search by location name or by coordinates
items:
$ref: '#/components/schemas/ResumeSearchParametersLocation'
locationsWeight:
type: number
minimum: 0
maximum: 1
locationsRequired:
type: boolean
skills:
type: array
items:
$ref: '#/components/schemas/ResumeSearchParametersSkill'
skillsWeight:
type: number
minimum: 0
maximum: 1
languages:
type: array
items:
$ref: '#/components/schemas/ResumeSearchParametersSkill'
languagesWeight:
type: number
minimum: 0
maximum: 1
institutions:
type: array
items:
type: string
institutionsRequired:
type: boolean
degrees:
type: array
items:
type: string
degreesRequired:
type: boolean
highestDegreeTypes:
type: array
uniqueItems: true
items:
$ref: '#/components/schemas/EducationLevel'
highestDegreeTypesRequired:
type: boolean
isCurrentStudent:
type: boolean
description: Search for student canditates
isCurrentStudentRequired:
type: boolean
isRecentGraduate:
type: boolean
description: Search for canditates that graduated less than a year ago
isRecentGraduateRequired:
type: boolean
educationWeight:
type: number
minimum: 0
maximum: 1
searchExpression:
type: string
nullable: true
description: Search through resumes' raw text
searchExpressionRequired:
type: boolean
searchExpressionWeight:
type: number
minimum: 0
maximum: 1
socCodes:
type: array
items:
type: integer
description: A list of occupation group IDs, more details can be found in the endpoint
minimum: 1
maximum: 9999
socCodesWeight:
type: number
minimum: 0
maximum: 1
socCodesRequired:
type: boolean
managementLevel:
$ref: '#/components/schemas/ManagementLevel'
managementLevelRequired:
type: boolean
managementLevelWeight:
type: number
minimum: 0
maximum: 1
customData:
type: array
items:
$ref: '#/components/schemas/ResumeSearchParametersCustomData'
JobTitleSearchScoreComponent:
type: object
additionalProperties: false
required:
- label
properties:
value:
type: string
example: Software Developer
label:
type: string
example: Job Title
score:
type: number
nullable: true
example: 0.68
ManagementLevelSearchScoreComponent:
type: object
additionalProperties: false
required:
- label
properties:
value:
type: string
example: Low
label:
type: string
example: Management level
score:
type: number
nullable: true
example: 0.68
ExperienceSearchScoreComponent:
type: object
additionalProperties: false
required:
- label
properties:
value:
type: string
example: 2.0 - 3.0 years
label:
type: string
example: Experience
score:
type: number
nullable: true
example: 0.68
SkillsSearchScoreComponent:
type: object
additionalProperties: false
required:
- label
properties:
value:
type: string
example: Python (Programming Language), Software Development
label:
type: string
example: Skills
score:
type: number
nullable: true
example: 0.68
LanguagesSearchScoreComponent:
type: object
additionalProperties: false
required:
- label
properties:
value:
type: string
example: English
label:
type: string
example: Languages
score:
type: number
nullable: true
example: 0.68
LocationSearchScoreComponent:
type: object
additionalProperties: false
required:
- label
properties:
value:
type: string
example: Roxburgh Park, Australia
label:
type: string
example: Location
score:
type: number
nullable: true
example: 0.68
EducationSearchScoreComponent:
type: object
additionalProperties: false
required:
- label
properties:
value:
type: string
example: Architecture Interior Design
label:
type: string
example: Education
score:
type: number
nullable: true
example: 0.68
OccupationGroupSearchScoreComponent:
type: object
additionalProperties: false
required:
- label
properties:
value:
type: string
example: Programmers and software development professionals
label:
type: string
example: Occupation group
score:
type: number
nullable: true
example: 0.68
SearchExpressionSearchScoreComponent:
type: object
additionalProperties: false
required:
- label
properties:
label:
type: string
example: Search expression
value:
type: string
score:
type: number
nullable: true
example: 0.68
CustomDataSearchScoreComponent:
type: object
additionalProperties:
type: object
required:
- label
properties:
value:
type: string
example: 'True'
label:
type: string
example: Is available
score:
type: number
nullable: true
example: 0.68
ResumeSearchResult:
type: object
additionalProperties: false
required:
- identifier
- score
- pdf
- jobTitle
- managementLevel
- experience
- skills
- languages
- location
- education
- occupationGroup
- searchExpression
- customData
properties:
identifier:
$ref: '#/components/schemas/Identifier'
score:
type: number
example: 0.98
pdf:
type: string
example: https://affinda-api.s3.amazonaws.com/media/documents/Example-Resume
nullable: true
name:
type: string
example: Mary Jane
jobTitle:
$ref: '#/components/schemas/JobTitleSearchScoreComponent'
managementLevel:
$ref: '#/components/schemas/ManagementLevelSearchScoreComponent'
experience:
$ref: '#/components/schemas/ExperienceSearchScoreComponent'
skills:
$ref: '#/components/schemas/SkillsSearchScoreComponent'
languages:
$ref: '#/components/schemas/LanguagesSearchScoreComponent'
location:
$ref: '#/components/schemas/LocationSearchScoreComponent'
education:
$ref: '#/components/schemas/EducationSearchScoreComponent'
occupationGroup:
$ref: '#/components/schemas/OccupationGroupSearchScoreComponent'
searchExpression:
$ref: '#/components/schemas/SearchExpressionSearchScoreComponent'
customData:
$ref: '#/components/schemas/CustomDataSearchScoreComponent'
ResumeSearch:
type: object
additionalProperties: false
properties:
count:
type: integer
example: 130
minimum: 0
description: Total number of results
next:
type: string
nullable: true
example: https://api.affinda.com/v3/documents?limit=300&offset=300
description: URL to request next page of results
previous:
type: string
nullable: true
example: https://api.affinda.com/v3/documents?limit=300
description: URL to request previous page of results
parameters:
$ref: '#/components/schemas/ResumeSearchParameters'
results:
type: array
items:
$ref: '#/components/schemas/ResumeSearchResult'
ResumeSkill:
type: object
properties:
name:
type: string
nullable: true
lastUsed:
type: string
nullable: true
example: '2022-05-16'
numberOfMonths:
type: integer
nullable: true
minimum: 0
type:
type: string
nullable: true
sources:
type: array
items:
type: object
properties:
section:
type: string
enum:
- Achievements
- AdditionalInformation
- Education
- Extracurriculars
- Organisations
- Other
- PersonalDetails
- Projects
- Publications
- Referees
- Skills
- Summary
- Training
- WorkExperience
- NotPopulated
- Header
- Footer
- Skills/Interests/Languages
- Training/Certifications
- Extracurriculars/Leadership
position:
type: integer
nullable: true
minimum: 0
OccupationGroupSearchResult:
type: object
additionalProperties: false
required:
- code
- name
properties:
match:
type: boolean
example: true
code:
type: integer
name:
type: string
children:
type: array
items:
$ref: '#/components/schemas/OccupationGroup'
parents:
type: array
items:
$ref: '#/components/schemas/OccupationGroup'
ResumeSearchDetail:
type: object
properties:
jobTitle:
type: object
nullable: false
properties:
missing:
type: array
items:
type: string
value:
type: array
items:
type: object
properties:
name:
type: string
nullable: true
example: Javascript developer
startDate:
type: string
nullable: true
example: '2021-06-16'
endDate:
type: string
nullable: true
example: '2022-05-01'
companyName:
type: string
nullable: true
example: Affinda
match:
type: boolean
example: true
location:
type: object
nullable: false
properties:
missing:
type: array
items:
$ref: '#/components/schemas/ResumeSearchParametersLocation'
value:
type: object
nullable: true
allOf:
- $ref: '#/components/schemas/Location'
- type: object
properties:
match:
type: boolean
example: true
education:
type: object
nullable: false
properties:
missing:
type: object
properties:
degrees:
type: array
items:
type: string
highestDegreeTypes:
type: array
items:
type: string
institutions:
type: array
items:
type: string
currentStudent:
type: boolean
recentGraduate:
type: boolean
value:
type: array
items:
type: object
allOf:
- $ref: '#/components/schemas/Education'
- type: object
properties:
match:
type: boolean
example: true
skills:
type: object
nullable: false
properties:
missing:
type: array
items:
$ref: '#/components/schemas/ResumeSearchParametersSkill'
value:
type: array
items:
type: object
allOf:
- $ref: '#/components/schemas/ResumeSkill'
- type: object
properties:
match:
type: boolean
example: true
experience:
type: object
properties:
years:
type: integer
nullable: true
minimum: 0
match:
type: boolean
example: true
occupationGroup:
type: object
nullable: false
properties:
missing:
type: array
items:
type: integer
value:
type: array
items:
$ref: '#/components/schemas/OccupationGroupSearchResult'
languages:
type: object
nullable: false
properties:
missing:
type: array
items:
$ref: '#/components/schemas/ResumeSearchParametersSkill'
value:
type: array
items:
type: object
allOf:
- $ref: '#/components/schemas/ResumeSkill'
- type: object
properties:
match:
type: boolean
example: true
managementLevel:
type: object
nullable: true
properties:
level:
$ref: '#/components/schemas/ManagementLevel'
match:
type: boolean
example: true
searchExpression:
type: object
properties:
missing:
type: array
items:
type: string
value:
type: array
items:
type: string
SearchConfigAction:
type: object
required:
- label
- eventName
properties:
label:
description: Human readable label to display in the UI
type: string
example: Add to shortlist
eventName:
description: Name of the event to be triggered
type: string
example: addToShortlist
CustomFieldConfig:
type: object
required:
- dataPoint
- weight
properties:
dataPoint:
type: string
description: Data point identifier.
example: RdNAniIH
weight:
type: number
minimum: 0
maximum: 1
example: 0.5
default: 0.5
ResumeSearchConfig:
type: object
properties:
allowPdfDownload:
type: boolean
nullable: false
maxResults:
type: integer
minimum: 1
nullable: true
description: Maximum number of results that can be returned. Setting to "null" means no limitation.
example: 10
displayJobTitle:
type: boolean
nullable: false
displayLocation:
type: boolean
nullable: false
displayYearsExperience:
type: boolean
nullable: false
displayOccupationGroup:
type: boolean
nullable: false
displayEducation:
type: boolean
nullable: false
displaySkills:
type: boolean
nullable: false
displayLanguages:
type: boolean
nullable: false
displayManagementLevel:
type: boolean
nullable: false
displayKeywords:
type: boolean
nullable: false
weightJobTitle:
type: number
nullable: false
weightLocation:
type: number
nullable: false
weightYearsExperience:
type: number
nullable: false
weightOccupationGroup:
type: number
nullable: false
weightEducation:
type: number
nullable: false
weightSkills:
type: number
nullable: false
weightLanguages:
type: number
nullable: false
weightManagementLevel:
type: number
nullable: false
weightKeywords:
type: number
nullable: false
indices:
type: array
items:
type: string
description: List of index names.
example:
- all-resumes
- my-index
showIndexDropdown:
type: boolean
nullable: true
description: Controls whether or not the index dropdown is displayed to the user
searchToolTheme:
type: object
allOf:
- $ref: '#/components/schemas/ThemeConfig'
nullable: true
description: Customize the theme of the embeded search tool.
userId:
type: integer
nullable: false
readOnly: true
description: ID of the logged in user.
example: 1234
minimum: 1
username:
type: string
nullable: false
readOnly: true
description: Username of the logged in user.
example: big.smoke
actions:
type: array
nullable: true
description: A list of actions to show in the dropdown in the embedded search tool
items:
$ref: '#/components/schemas/SearchConfigAction'
hideToolbar:
type: boolean
nullable: false
description: Hide the reset/import toolbar.
hideSidePanel:
type: boolean
nullable: false
description: Hide the entire side panel.
customFieldsConfig:
type: array
nullable: true
items:
$ref: '#/components/schemas/CustomFieldConfig'
distanceUnit:
type: string
nullable: false
description: The unit of distance to use for location based searches
example: km
enum:
- mi
- km
ResumeSearchEmbed:
type: object
properties:
url:
type: string
nullable: false
description: The signed URL for the embedable search tool.
example: https://app.affinda.com/resume-search?signature=eyJhbGxvd19wZGZfZG
ResumeSearchMatch:
type: object
properties:
score:
type: number
minimum: 0
maximum: 1
nullable: false
description: The matching score between the provided resume and job description.
example: 0.75
details:
type: object
properties:
jobTitle:
$ref: '#/components/schemas/JobTitleSearchScoreComponent'
managementLevel:
$ref: '#/components/schemas/ManagementLevelSearchScoreComponent'
experience:
$ref: '#/components/schemas/ExperienceSearchScoreComponent'
skills:
$ref: '#/components/schemas/SkillsSearchScoreComponent'
languages:
$ref: '#/components/schemas/LanguagesSearchScoreComponent'
location:
$ref: '#/components/schemas/LocationSearchScoreComponent'
education:
$ref: '#/components/schemas/EducationSearchScoreComponent'
occupationGroup:
$ref: '#/components/schemas/OccupationGroupSearchScoreComponent'
searchExpression:
$ref: '#/components/schemas/SearchExpressionSearchScoreComponent'
JobDescriptionSearchParameters:
type: object
additionalProperties: false
nullable: true
required:
- indices
properties:
indices:
type: array
example:
- all-job-descriptions
items:
type: string
resume:
$ref: '#/components/schemas/Identifier'
nullable: true
jobTitles:
type: array
items:
type: string
jobTitlesRequired:
type: boolean
jobTitlesWeight:
type: number
minimum: 0
maximum: 1
totalYearsExperience:
type: number
nullable: true
yearsExperienceRequired:
type: boolean
yearsExperienceWeight:
type: number
minimum: 0
maximum: 1
locations:
type: array
items:
$ref: '#/components/schemas/ResumeSearchParametersLocation'
locationsWeight:
type: number
minimum: 0
maximum: 1
locationsRequired:
type: boolean
skills:
type: array
items:
$ref: '#/components/schemas/ResumeSearchParametersSkill'
skillsWeight:
type: number
minimum: 0
maximum: 1
languages:
type: array
items:
$ref: '#/components/schemas/ResumeSearchParametersSkill'
languagesWeight:
type: number
minimum: 0
maximum: 1
degrees:
type: array
items:
type: string
degreesRequired:
type: boolean
degreeTypes:
type: array
uniqueItems: true
items:
$ref: '#/components/schemas/EducationLevel'
degreeTypesRequired:
type: boolean
educationWeight:
type: number
minimum: 0
maximum: 1
searchExpression:
type: string
nullable: true
searchExpressionRequired:
type: boolean
searchExpressionWeight:
type: number
minimum: 0
maximum: 1
socCodes:
type: array
items:
type: integer
minimum: 1
maximum: 9999
socCodesWeight:
type: number
minimum: 0
maximum: 1
socCodesRequired:
type: boolean
managementLevel:
$ref: '#/components/schemas/ManagementLevel'
managementLevelRequired:
type: boolean
managementLevelWeight:
type: number
minimum: 0
maximum: 1
customData:
type: array
items:
$ref: '#/components/schemas/SearchParametersCustomData'
JobDescriptionSearchResult:
type: object
additionalProperties: false
required:
- identifier
- score
- pdf
- jobTitle
- managementLevel
- experience
- skills
- languages
- location
- education
- searchExpression
- organizationName
- customData
properties:
identifier:
$ref: '#/components/schemas/Identifier'
score:
type: number
example: 0.98
pdf:
type: string
example: https://affinda-api.s3.amazonaws.com/media/documents/Example-Job-Description
nullable: true
jobTitle:
$ref: '#/components/schemas/JobTitleSearchScoreComponent'
managementLevel:
$ref: '#/components/schemas/ManagementLevelSearchScoreComponent'
experience:
$ref: '#/components/schemas/ExperienceSearchScoreComponent'
skills:
$ref: '#/components/schemas/SkillsSearchScoreComponent'
languages:
$ref: '#/components/schemas/LanguagesSearchScoreComponent'
location:
$ref: '#/components/schemas/LocationSearchScoreComponent'
education:
$ref: '#/components/schemas/EducationSearchScoreComponent'
occupationGroup:
$ref: '#/components/schemas/OccupationGroupSearchScoreComponent'
searchExpression:
$ref: '#/components/schemas/SearchExpressionSearchScoreComponent'
organizationName:
type: string
nullable: true
example: Microsoft
customData:
$ref: '#/components/schemas/CustomDataSearchScoreComponent'
JobDescriptionSearch:
type: object
additionalProperties: false
properties:
count:
type: integer
example: 130
description: Total number of results
minimum: 0
next:
type: string
nullable: true
example: https://api.affinda.com/v3/search?limit=20&offset=20
description: URL to request next page of results
previous:
type: string
nullable: true
example: https://api.affinda.com/v3/search?limit=20
description: URL to request previous page of results
parameters:
$ref: '#/components/schemas/JobDescriptionSearchParameters'
results:
type: array
items:
$ref: '#/components/schemas/JobDescriptionSearchResult'
JobDescriptionSearchDetail:
type: object
properties:
jobTitle:
type: object
nullable: false
properties:
missing:
type: array
items:
type: string
value:
type: object
properties:
name:
type: string
nullable: true
example: Javascript developer
companyName:
type: string
nullable: true
example: Affinda
match:
type: boolean
example: true
location:
type: object
nullable: false
properties:
missing:
type: array
items:
$ref: '#/components/schemas/ResumeSearchParametersLocation'
value:
type: object
nullable: true
allOf:
- $ref: '#/components/schemas/Location'
- type: object
properties:
match:
type: boolean
example: true
education:
type: object
nullable: false
properties:
missing:
type: object
properties:
degrees:
type: array
items:
type: string
degreeTypes:
type: array
items:
type: string
value:
type: object
properties:
degrees:
type: array
items:
type: string
degreeTypes:
type: array
items:
type: string
match:
type: boolean
example: true
skills:
type: object
nullable: false
properties:
missing:
type: array
items:
$ref: '#/components/schemas/ResumeSearchParametersSkill'
value:
type: array
items:
type: object
properties:
name:
type: string
example: Java Programming Language
match:
type: boolean
example: true
experience:
type: object
properties:
minimumExperience:
type: integer
nullable: true
minimum: 0
maximumExperience:
type: integer
nullable: true
minimum: 0
match:
type: boolean
example: true
occupationGroup:
type: object
nullable: false
properties:
missing:
type: array
items:
type: integer
value:
type: object
nullable: true
allOf:
- $ref: '#/components/schemas/OccupationGroupSearchResult'
languages:
type: object
nullable: false
properties:
missing:
type: array
items:
$ref: '#/components/schemas/ResumeSearchParametersSkill'
value:
type: array
items:
type: object
properties:
name:
type: string
example: English
match:
type: boolean
example: true
managementLevel:
type: object
nullable: true
properties:
level:
$ref: '#/components/schemas/ManagementLevel'
match:
type: boolean
example: true
searchExpression:
type: object
properties:
missing:
type: array
items:
type: string
value:
type: array
items:
type: string
JobDescriptionSearchConfig:
type: object
properties:
allowPdfDownload:
type: boolean
nullable: false
maxResults:
type: integer
nullable: true
description: Maximum number of results that can be returned. Setting to "null" means no limitation.
example: 10
minimum: 1
displayJobTitle:
type: boolean
nullable: false
displayLocation:
type: boolean
nullable: false
displayYearsExperience:
type: boolean
nullable: false
displayOccupationGroup:
type: boolean
nullable: false
displayEducation:
type: boolean
nullable: false
displaySkills:
type: boolean
nullable: false
displayLanguages:
type: boolean
nullable: false
displayManagementLevel:
type: boolean
nullable: false
displayKeywords:
type: boolean
nullable: false
weightJobTitle:
type: number
nullable: false
weightLocation:
type: number
nullable: false
weightYearsExperience:
type: number
nullable: false
weightOccupationGroup:
type: number
nullable: false
weightEducation:
type: number
nullable: false
weightSkills:
type: number
nullable: false
weightLanguages:
type: number
nullable: false
weightManagementLevel:
type: number
nullable: false
weightKeywords:
type: number
nullable: false
indices:
type: array
items:
type: string
description: List of index names.
example:
- all-job-descriptions
- my-index
showIndexDropdown:
type: boolean
nullable: true
description: Controls whether or not the index dropdown is displayed to the user
searchToolTheme:
type: object
allOf:
- $ref: '#/components/schemas/ThemeConfig'
nullable: true
description: Customize the theme of the embeded search tool.
userId:
type: integer
nullable: false
readOnly: true
description: ID of the logged in user.
example: 1234
minimum: 1
username:
type: string
nullable: false
readOnly: true
description: Username of the logged in user.
example: big.smoke
actions:
type: array
nullable: true
description: A list of actions to show in the dropdown in the embedded search tool
items:
$ref: '#/components/schemas/SearchConfigAction'
hideToolbar:
type: boolean
nullable: false
description: Hide the reset/import toolbar.
hideSidePanel:
type: boolean
nullable: false
description: Hide the entire side panel.
customFieldsConfig:
type: array
nullable: true
items:
$ref: '#/components/schemas/CustomFieldConfig'
distanceUnit:
type: string
nullable: false
description: The unit of distance to use for location based searches
example: km
enum:
- mi
- km
JobDescriptionSearchEmbed:
type: object
properties:
url:
type: string
nullable: false
description: The signed URL for the embedable search tool.
example: https://app.affinda.com/job-description-search?signature=eyJhbGxvd19wZGZkGZ
User_properties-name:
type: string
example: Carl Johnson
email:
type: string
example: carljohnson@grove.street
properties-avatar:
type: string
nullable: true
description: URL of the user's avatar.
example: https://affinda-api.s3.amazonaws.com/media/user-avatar.png?AWSAccessKeyId=KEY&Signature=SIG
IndexUser:
type: object
description: The user who created this index
readOnly: true
additionalProperties: false
required:
- id
- name
- email
- avatar
properties:
id:
$ref: '#/components/schemas/properties-id'
name:
$ref: '#/components/schemas/User_properties-name'
email:
$ref: '#/components/schemas/email'
avatar:
$ref: '#/components/schemas/properties-avatar'
Index:
type: object
additionalProperties: true
required:
- name
- docType
- user
properties:
name:
type: string
description: Unique index name
example: my-index
docType:
type: string
enum:
- resumes
- job_descriptions
user:
$ref: '#/components/schemas/IndexUser'
Index_properties-name:
type: string
description: Unique index name
example: my-index
docType:
type: string
enum:
- resumes
- job_descriptions
IndexCreate:
type: object
title: IndexRequestBody
additionalProperties: true
required:
- name
properties:
name:
$ref: '#/components/schemas/Index_properties-name'
docType:
$ref: '#/components/schemas/docType'
IndexUpdate:
type: object
additionalProperties: false
properties:
name:
$ref: '#/components/schemas/Index_properties-name'
FieldDeprecated:
type: object
properties:
label:
type: string
slug:
type: string
nullable: true
deprecated: true
fieldType:
$ref: '#/components/schemas/AnnotationContentType'
dataSource:
type: string
description: Data source mapping identifier
nullable: true
mapping:
type: string
description: Defines how the data point is mapped to the data source
nullable: true
dataPoint:
type: string
mandatory:
type: boolean
disabled:
type: boolean
autoValidationThreshold:
type: number
nullable: true
showDropdown:
type: boolean
displayRawText:
type: boolean
dropNull:
type: boolean
description: If True, any dropdown annotations that fail to parse to a value will be discarded
displayEnumValue:
type: boolean
fields:
type: array
items:
$ref: '#/components/schemas/FieldDeprecated'
required:
- label
- dataPoint
- fieldType
additionalProperties: true
FieldGroup:
type: object
properties:
label:
type: string
fields:
type: array
items:
$ref: '#/components/schemas/FieldDeprecated'
required:
- label
- fields
additionalProperties: false
Extractor:
type: object
required:
- identifier
- name
- namePlural
- validatable
properties:
identifier:
type: string
description: Uniquely identify an extractor.
example: resume
name:
type: string
namePlural:
type: string
baseExtractor:
type: object
nullable: true
required:
- identifier
- name
- namePlural
- validatable
properties:
identifier:
$ref: '#/components/schemas/Extractor_properties-identifier'
name:
$ref: '#/components/schemas/name'
namePlural:
$ref: '#/components/schemas/namePlural'
validatable:
$ref: '#/components/schemas/validatable'
isCustom:
$ref: '#/components/schemas/isCustom'
createdDt:
$ref: '#/components/schemas/createdDt'
organization:
$ref: '#/components/schemas/Organization'
nullable: true
category:
type: string
nullable: true
example: Recruitment
validatable:
type: boolean
isCustom:
type: boolean
fieldGroups:
type: array
nullable: true
items:
$ref: '#/components/schemas/FieldGroup'
createdDt:
type: string
format: date-time
lastTrainedDt:
type: string
format: date-time
nullable: true
Field:
type: object
properties:
label:
type: string
dataPoint:
type: string
description: Data point identifier
fieldType:
$ref: '#/components/schemas/AnnotationContentType'
dataSource:
type: string
description: Data source mapping identifier
nullable: true
mapping:
type: string
description: Defines how the data point is mapped to the data source
nullable: true
mandatory:
type: boolean
autoValidationThreshold:
type: number
nullable: true
minimum: 0
maximum: 1
description: Threshold for auto validation. If null, uses the collection's autoValidationThreshold.
enableAutoValidationThreshold:
type: boolean
nullable: true
description: If true, the autoValidationThreshold enable auto validation from the threshold from this field if specified,
else from the collection
showDropdown:
type: boolean
deprecated: true
displayEnumValue:
type: boolean
description: If true, both the value and the label for the enums will appear in the dropdown in the validation tool.
hideEnumDetail:
type: boolean
description: If true, the hoverable enum value detail icon will be hidden.
dropNull:
type: boolean
description: If True, any dropdown annotations that fail to parse to a value will be discarded
enabledChildFields:
type: array
items:
$ref: '#/components/schemas/Field'
disabledChildFields:
type: array
items:
$ref: '#/components/schemas/Field'
slug:
type: string
nullable: true
deprecated: true
displayRawText:
type: boolean
description: If true, then the validation tool will show the user the raw text found on the page, not the value
that has been parsed to a specific type.
fields:
type: array
items:
type: object
nullable: true
deprecated: true
required:
- label
- dataPoint
- fieldType
additionalProperties: true
FieldCategory:
type: object
properties:
label:
type: string
enabledFields:
type: array
items:
$ref: '#/components/schemas/Field'
disabledFields:
type: array
items:
$ref: '#/components/schemas/Field'
required:
- label
- enabledFields
- disabledFields
additionalProperties: false
FieldsLayout:
type: object
properties:
defaultCategory:
$ref: '#/components/schemas/FieldCategory'
categories:
type: array
items:
$ref: '#/components/schemas/FieldCategory'
required:
- defaultCategory
- categories
additionalProperties: false
RedactConfig:
type: object
properties:
redactHeadshot:
type: boolean
example: true
redactPersonalDetails:
type: boolean
example: true
redactWorkDetails:
type: boolean
example: true
redactReferees:
type: boolean
example: true
redactEducationDetails:
type: boolean
example: true
redactLocations:
type: boolean
example: true
redactDates:
type: boolean
example: true
redactGender:
type: boolean
example: true
ExtractorConfig:
type: object
nullable: true
description: Extra configurations specific to an extractor.
properties:
resumeRedact:
$ref: '#/components/schemas/RedactConfig'
Collection:
type: object
required:
- identifier
properties:
identifier:
type: string
description: Uniquely identify a collection.
example: mEFayXdO
name:
type: string
workspace:
type: object
properties:
identifier:
$ref: '#/components/schemas/identifier'
organization:
$ref: '#/components/schemas/Organization'
name:
$ref: '#/components/schemas/name'
extractor:
$ref: '#/components/schemas/Extractor'
nullable: true
autoValidationThreshold:
type: number
enableAutoValidationThreshold:
type: boolean
default: false
autoValidateIfValidationRulesPass:
type: boolean
default: false
fields:
type: array
nullable: true
items:
$ref: '#/components/schemas/FieldGroup'
deprecated: true
fieldsLayout:
$ref: '#/components/schemas/FieldsLayout'
fieldsConfigured:
type: boolean
dateFormatPreference:
type: string
enum:
- DMY
- MDY
- YMD
nullable: true
dateFormatFromDocument:
type: boolean
nullable: true
description: Predict the date format from any dates in the document that is not ambiguous.
extractorConfig:
$ref: '#/components/schemas/ExtractorConfig'
unvalidatedDocsCount:
type: integer
nullable: true
minimum: 0
description: Number of unvalidated documents in the collection.
confirmedDocsCount:
type: integer
nullable: true
minimum: 0
description: Number of validated documents in the collection.
ingestEmail:
type: string
description: When you send email to this address, any document attached in the body will be uploaded to this collection.
tailoredExtractorRequested:
type: boolean
description: Whether a tailored extractor has been requested for this collection.
allowOpenai:
type: boolean
default: false
description: Whether to allow OpenAI API to be used to assist in creating a model for this collection.
trainsExtractor:
type: boolean
description: Whether this collection feeds documents into the extractor's training queue. This setting can only
be toggled for custom extractors.
disableConfirmationIfValidationRulesFail:
type: boolean
default: false
description: If True, users cannot validate documents with missing mandatory fields, or failing validation rules.
autoRefreshValidationResults:
type: boolean
default: true
description: If True, validation results are refreshed whenever annotations are changed.
autoValidationThreshold:
type: number
enableAutoValidationThreshold:
type: boolean
default: false
fields:
type: array
nullable: true
items:
$ref: '#/components/schemas/FieldGroup'
deprecated: true
dateFormatPreference:
type: string
enum:
- DMY
- MDY
- YMD
nullable: true
dateFormatFromDocument:
type: boolean
nullable: true
description: Predict the date format from any dates in the document that is not ambiguous.
allowOpenai:
type: boolean
default: false
description: Whether to allow OpenAI API to be used to assist in creating a model for this collection.
trainsExtractor:
type: boolean
description: Whether this collection feeds documents into the extractor's training queue. This setting can only be toggled
for custom extractors.
disableConfirmationIfValidationRulesFail:
type: boolean
default: false
description: If True, users cannot validate documents with missing mandatory fields, or failing validation rules.
CollectionCreate:
type: object
required:
- name
- workspace
properties:
name:
$ref: '#/components/schemas/name'
workspace:
$ref: '#/components/schemas/identifier'
extractor:
type: string
description: Uniquely identify an extractor. Required if you are not a super user.
example: resume
baseExtractor:
type: string
description: Not applicable, please leave empty. This feature is reserved for super user.
autoValidationThreshold:
$ref: '#/components/schemas/autoValidationThreshold'
enableAutoValidationThreshold:
$ref: '#/components/schemas/enableAutoValidationThreshold'
fields:
$ref: '#/components/schemas/fields'
fieldsLayout:
$ref: '#/components/schemas/FieldsLayout'
dateFormatPreference:
$ref: '#/components/schemas/dateFormatPreference'
dateFormatFromDocument:
$ref: '#/components/schemas/dateFormatFromDocument'
extractorConfig:
$ref: '#/components/schemas/ExtractorConfig'
allowOpenai:
$ref: '#/components/schemas/allowOpenai'
trainsExtractor:
$ref: '#/components/schemas/trainsExtractor'
disableConfirmationIfValidationRulesFail:
$ref: '#/components/schemas/disableConfirmationIfValidationRulesFail'
CollectionUpdate:
type: object
properties:
name:
$ref: '#/components/schemas/name'
autoValidationThreshold:
$ref: '#/components/schemas/autoValidationThreshold'
enableAutoValidationThreshold:
$ref: '#/components/schemas/enableAutoValidationThreshold'
fields:
$ref: '#/components/schemas/fields'
fieldsLayout:
$ref: '#/components/schemas/FieldsLayout'
dateFormatPreference:
$ref: '#/components/schemas/dateFormatPreference'
dateFormatFromDocument:
$ref: '#/components/schemas/dateFormatFromDocument'
extractorConfig:
$ref: '#/components/schemas/ExtractorConfig'
allowOpenai:
$ref: '#/components/schemas/allowOpenai'
trainsExtractor:
$ref: '#/components/schemas/trainsExtractor'
disableConfirmationIfValidationRulesFail:
$ref: '#/components/schemas/disableConfirmationIfValidationRulesFail'
categoryLabel:
type: string
description: The label of the category that this field will be put into. If not provided, the field will be put into
the default category. If no category exists with the specified label, a new category will be created.
label:
type: string
mandatory:
type: boolean
showDropdown:
type: boolean
deprecated: true
displayEnumValue:
type: boolean
description: If true, both the value and the label for the enums will appear in the dropdown in the validation tool.
properties-autoValidationThreshold:
type: number
nullable: true
minimum: 0
maximum: 1
description: Threshold for auto validation. If null, uses the collection's autoValidationThreshold.
properties-enableAutoValidationThreshold:
type: boolean
nullable: true
description: If true, the autoValidationThreshold enable auto validation from the threshold from this field if specified,
else from the collection
dataSource:
type: string
description: Data source mapping identifier
nullable: true
mapping:
type: string
description: Defines how the data point is mapped to the data source
nullable: true
displayRawText:
type: boolean
description: If true, then the validation tool will show the user the raw text found on the page, not the value that
has been parsed to a specific type.
DataFieldCreateField:
type: object
description: The field to be created.
required:
- label
properties:
label:
$ref: '#/components/schemas/label'
fieldType:
$ref: '#/components/schemas/AnnotationContentType'
mandatory:
$ref: '#/components/schemas/mandatory'
showDropdown:
$ref: '#/components/schemas/showDropdown'
displayEnumValue:
$ref: '#/components/schemas/displayEnumValue'
autoValidationThreshold:
$ref: '#/components/schemas/properties-autoValidationThreshold'
enableAutoValidationThreshold:
$ref: '#/components/schemas/properties-enableAutoValidationThreshold'
dataSource:
$ref: '#/components/schemas/dataSource'
mapping:
$ref: '#/components/schemas/mapping'
displayRawText:
$ref: '#/components/schemas/displayRawText'
DataPoint_properties-name:
type: string
description: Name of the data point.
slug:
type: string
description: A camelCase string that will be used as the key in the API response.
description:
type: string
nullable: true
multiple:
type: boolean
noRect:
type: boolean
properties-parent:
type: string
description: The identifier of the parent data point if applicable.
nullable: true
example: DdCbJhhx
manualEntry:
type: boolean
description: If true, the model will not be used to predict this data point. Instead, the user will be able to manually
enter the value in the validation tool.
mappingDataSource:
type: string
nullable: true
example: mEFayXdO
description: If populated, the model will learn to predict this field using the data source, rather than relying on
fuzzy string matching.
DataFieldCreateDataPoint:
type: object
description: The data point to be created for this field. If a data point with the same slug and collection already
exists, it will be reused.
required:
- name
- slug
- type
properties:
name:
$ref: '#/components/schemas/DataPoint_properties-name'
slug:
$ref: '#/components/schemas/slug'
description:
$ref: '#/components/schemas/description'
type:
$ref: '#/components/schemas/AnnotationContentType'
multiple:
$ref: '#/components/schemas/multiple'
noRect:
$ref: '#/components/schemas/noRect'
parent:
$ref: '#/components/schemas/properties-parent'
manualEntry:
$ref: '#/components/schemas/manualEntry'
mappingDataSource:
$ref: '#/components/schemas/mappingDataSource'
DataFieldCreate:
type: object
required:
- field
- dataPoint
properties:
categoryLabel:
$ref: '#/components/schemas/categoryLabel'
field:
$ref: '#/components/schemas/DataFieldCreateField'
dataPoint:
$ref: '#/components/schemas/DataFieldCreateDataPoint'
enabledChildFields:
type: array
items:
$ref: '#/components/schemas/Field'
disabledChildFields:
type: array
items:
$ref: '#/components/schemas/Field'
DataPoint_properties-identifier:
type: string
description: Uniquely identify a data point.
example: XprEvgai
DataPoint:
type: object
properties:
identifier:
type: string
description: Uniquely identify a data point.
example: XprEvgai
name:
type: string
description: Name of the data point.
slug:
type: string
description: A camelCase string that will be used as the key in the API response.
description:
type: string
nullable: true
annotationContentType:
$ref: '#/components/schemas/AnnotationContentType'
organization:
$ref: '#/components/schemas/Organization'
nullable: true
extractor:
$ref: '#/components/schemas/Extractor_properties-identifier'
nullable: true
multiple:
type: boolean
noRect:
type: boolean
parent:
type: string
description: The identifier of the parent data point if applicable.
nullable: true
example: DdCbJhhx
children:
type: array
items:
$ref: '#/components/schemas/DataPoint'
availableDataSources:
type: array
items:
$ref: '#/components/schemas/MappingDataSource'
mappingDataSource:
type: string
nullable: true
example: mEFayXdO
description: If populated, the model will learn to predict this field using the data source, rather than relying
on fuzzy string matching.
manualEntry:
type: boolean
description: If true, the model will not be used to predict this data point. Instead, the user will be able to manually
enter the value in the validation tool.
required:
- identifier
- name
- slug
- organization
- annotationContentType
- extractor
children:
type: array
items:
$ref: '#/components/schemas/DataPoint'
availableDataSources:
type: array
items:
$ref: '#/components/schemas/MappingDataSource'
DataField:
type: object
required:
- field
- dataPoint
properties:
categoryLabel:
type: string
description: The label of the category that this field will be put into. If not provided, the field will be put
into the default category. If no category exists with the specified label, a new category will be created.
field:
type: object
description: The field to be created.
required:
- label
- mandatory
- displayEnumValue
- autoValidationThreshold
- enabledChildFields
- disabledChildFields
properties:
label:
$ref: '#/components/schemas/label'
fieldType:
$ref: '#/components/schemas/AnnotationContentType'
mandatory:
$ref: '#/components/schemas/mandatory'
showDropdown:
$ref: '#/components/schemas/showDropdown'
displayEnumValue:
$ref: '#/components/schemas/displayEnumValue'
autoValidationThreshold:
$ref: '#/components/schemas/properties-autoValidationThreshold'
enableAutoValidationThreshold:
$ref: '#/components/schemas/properties-enableAutoValidationThreshold'
enabledChildFields:
$ref: '#/components/schemas/enabledChildFields'
disabledChildFields:
$ref: '#/components/schemas/disabledChildFields'
dataSource:
$ref: '#/components/schemas/dataSource'
mapping:
$ref: '#/components/schemas/mapping'
displayRawText:
$ref: '#/components/schemas/displayRawText'
dataPoint:
type: object
description: The data point to be created for this field. If a data point with the same slug and collection already
exists, it will be reused.
required:
- identifier
- name
- slug
- description
- type
- multiple
- noRect
- parent
- children
properties:
identifier:
$ref: '#/components/schemas/DataPoint_properties-identifier'
name:
$ref: '#/components/schemas/DataPoint_properties-name'
slug:
$ref: '#/components/schemas/slug'
description:
$ref: '#/components/schemas/description'
type:
$ref: '#/components/schemas/AnnotationContentType'
multiple:
$ref: '#/components/schemas/multiple'
noRect:
$ref: '#/components/schemas/noRect'
parent:
$ref: '#/components/schemas/properties-parent'
children:
$ref: '#/components/schemas/children'
manualEntry:
$ref: '#/components/schemas/manualEntry'
availableDataSources:
$ref: '#/components/schemas/availableDataSources'
CollectionField:
type: object
properties:
label:
$ref: '#/components/schemas/label'
fieldType:
$ref: '#/components/schemas/AnnotationContentType'
mandatory:
$ref: '#/components/schemas/mandatory'
showDropdown:
$ref: '#/components/schemas/showDropdown'
displayEnumValue:
$ref: '#/components/schemas/displayEnumValue'
autoValidationThreshold:
$ref: '#/components/schemas/properties-autoValidationThreshold'
enableAutoValidationThreshold:
$ref: '#/components/schemas/properties-enableAutoValidationThreshold'
dataSource:
$ref: '#/components/schemas/dataSource'
mapping:
$ref: '#/components/schemas/mapping'
displayRawText:
$ref: '#/components/schemas/mapping'
UsageByCollection:
type: object
description: Monthly credits consumption
required:
- month
- count
properties:
month:
type: string
description: Month of the usage
example: 2023-07
count:
type: integer
description: Usage count
example: 100
additionalProperties: false
UsageByCollectionResponse:
type: array
description: Monthly credits consumption
items:
$ref: '#/components/schemas/UsageByCollection'
DataPointCreate:
type: object
required:
- name
- slug
- annotationContentType
- extractor
- organization
properties:
name:
$ref: '#/components/schemas/DataPoint_properties-name'
slug:
$ref: '#/components/schemas/slug'
description:
$ref: '#/components/schemas/description'
annotationContentType:
$ref: '#/components/schemas/AnnotationContentType'
organization:
$ref: '#/components/schemas/Organization_properties-identifier'
extractor:
$ref: '#/components/schemas/Extractor_properties-identifier'
multiple:
$ref: '#/components/schemas/multiple'
noRect:
$ref: '#/components/schemas/noRect'
parent:
$ref: '#/components/schemas/properties-parent'
manualEntry:
$ref: '#/components/schemas/manualEntry'
mappingDataSource:
$ref: '#/components/schemas/mappingDataSource'
DataPointUpdate:
type: object
properties:
name:
$ref: '#/components/schemas/DataPoint_properties-name'
slug:
$ref: '#/components/schemas/slug'
description:
$ref: '#/components/schemas/description'
parent:
$ref: '#/components/schemas/properties-parent'
mappingDataSource:
$ref: '#/components/schemas/mappingDataSource'
DataPointChoice:
type: object
required:
- id
- label
- value
properties:
id:
type: integer
description: Data point choice's ID
example: 1
minimum: 1
label:
type: string
example: USD
value:
type: string
example: USD
synonyms:
type: array
nullable: true
items:
type: string
description:
type: string
nullable: true
properties-label:
type: string
example: USD
value:
type: string
example: USD
synonyms:
type: array
nullable: true
items:
type: string
DataPointChoiceCreate:
type: object
required:
- dataPoint
- label
- value
properties:
dataPoint:
$ref: '#/components/schemas/DataPoint_properties-identifier'
organization:
$ref: '#/components/schemas/Organization_properties-identifier'
collection:
$ref: '#/components/schemas/properties-identifier'
label:
$ref: '#/components/schemas/properties-label'
value:
$ref: '#/components/schemas/value'
synonyms:
$ref: '#/components/schemas/synonyms'
description:
$ref: '#/components/schemas/description'
DataPointChoice_properties-id:
type: integer
description: Data point choice's ID
example: 1
minimum: 1
DataPointChoiceUpdate:
type: object
properties:
dataPoint:
$ref: '#/components/schemas/DataPoint_properties-identifier'
organization:
$ref: '#/components/schemas/Organization_properties-identifier'
collection:
$ref: '#/components/schemas/properties-identifier'
label:
$ref: '#/components/schemas/properties-label'
value:
$ref: '#/components/schemas/value'
synonyms:
$ref: '#/components/schemas/synonyms'
description:
$ref: '#/components/schemas/description'
DataPointChoiceForReplace:
type: object
required:
- value
additionalProperties: false
properties:
value:
$ref: '#/components/schemas/value'
label:
$ref: '#/components/schemas/properties-label'
synonyms:
$ref: '#/components/schemas/synonyms'
description:
$ref: '#/components/schemas/description'
DataPointChoiceReplaceRequest:
type: object
description: Request body for replacing choices of a data point. Either `collection` or `organization` is required.
required:
- dataPoint
- choices
additionalProperties: false
properties:
dataPoint:
$ref: '#/components/schemas/DataPoint_properties-identifier'
collection:
$ref: '#/components/schemas/properties-identifier'
organization:
$ref: '#/components/schemas/Organization_properties-identifier'
choices:
type: array
description: Incoming choices to replace existing choices of a data point. Existing choices and incoming choices
are matched base on their `value`. New `value` will be created, existing `value` will be updated, and `value`
not in incoming choices will be deleted.
items:
$ref: '#/components/schemas/DataPointChoiceForReplace'
DataPointChoiceReplaceResponse:
type: object
required:
- dataPoint
- collection
- organization
- choices
additionalProperties: false
properties:
dataPoint:
$ref: '#/components/schemas/DataPoint_properties-identifier'
collection:
nullable: true
type: string
description: Uniquely identify a collection.
example: mEFayXdO
organization:
nullable: true
type: string
description: Uniquely identify an organization.
example: mEFayXdO
choices:
type: array
items:
type: object
required:
- id
- value
- label
- synonyms
- description
additionalProperties: false
properties:
id:
$ref: '#/components/schemas/DataPointChoice_properties-id'
value:
$ref: '#/components/schemas/value'
label:
$ref: '#/components/schemas/properties-label'
synonyms:
$ref: '#/components/schemas/synonyms'
description:
$ref: '#/components/schemas/description'
username:
type: string
example: carljohnson
ApiUserWithoutKey:
type: object
required:
- id
- name
- username
- email
- avatar
- organizations
properties:
id:
$ref: '#/components/schemas/properties-id'
name:
$ref: '#/components/schemas/User_properties-name'
username:
$ref: '#/components/schemas/username'
email:
$ref: '#/components/schemas/email'
avatar:
$ref: '#/components/schemas/properties-avatar'
organizations:
type: array
items:
type: object
required:
- identifier
- name
properties:
identifier:
$ref: '#/components/schemas/Organization_properties-identifier'
name:
$ref: '#/components/schemas/Organization_properties-name'
apiKeyLastChars:
type: string
description: The last 4 characters of the API key.
additionalProperties: false
ApiUserCreate:
type: object
required:
- organization
properties:
name:
$ref: '#/components/schemas/User_properties-name'
username:
$ref: '#/components/schemas/username'
email:
$ref: '#/components/schemas/email'
avatar:
$ref: '#/components/schemas/properties-avatar'
organization:
$ref: '#/components/schemas/Organization_properties-identifier'
additionalProperties: false
ApiUserWithKey:
type: object
required:
- id
- name
- username
- email
- avatar
- organizations
- apiKey
properties:
id:
$ref: '#/components/schemas/properties-id'
name:
$ref: '#/components/schemas/User_properties-name'
username:
$ref: '#/components/schemas/username'
email:
$ref: '#/components/schemas/email'
avatar:
$ref: '#/components/schemas/properties-avatar'
organizations:
type: array
items:
type: object
required:
- identifier
- name
properties:
identifier:
$ref: '#/components/schemas/Organization_properties-identifier'
name:
$ref: '#/components/schemas/Organization_properties-name'
apiKey:
type: string
description: Use this key to authenticate with the API.
apiKeyLastChars:
type: string
description: The last 4 characters of the API key.
additionalProperties: false
ApiUserUpdate:
type: object
properties:
name:
$ref: '#/components/schemas/User_properties-name'
username:
$ref: '#/components/schemas/username'
email:
$ref: '#/components/schemas/email'
avatar:
$ref: '#/components/schemas/properties-avatar'
additionalProperties: false
DocumentSplitterType:
type: string
description: The different types of document splitters
enum:
- llm
- llm_v2
- extractor
- keyword
DocumentSplitter:
type: object
required:
- identifier
- name
- type
- organization
- extractor
- llmHint
properties:
identifier:
type: string
description: Uniquely identify a document splitter.
example: NqIvMvZl
name:
type: string
type:
$ref: '#/components/schemas/DocumentSplitterType'
organization:
$ref: '#/components/schemas/Organization_properties-identifier'
nullable: true
extractor:
$ref: '#/components/schemas/Extractor_properties-identifier'
nullable: true
llmHint:
type: string
nullable: true
description: The hint about when to split which is passed into the LLM prompt.
DocumentSplitPage:
type: object
required:
- id
description: List the pages within this split. Not including a page here will signal that the page should be deleted.
properties:
id:
type: integer
description: Page's ID
minimum: 1
rotation:
type: integer
minimum: -360
maximum: 360
description: Specify a degree of rotation if you want to rotate a page. Possitive number for clockwise rotation,
and negative number for counter-clockwise rotation.
example: 90
DocumentSplit:
type: object
required:
- pages
description: Describe a split of a document.
properties:
identifier:
allOf:
- $ref: '#/components/schemas/DocumentMeta_properties-identifier'
- description: Specify document identifier in the first split to signal that this is the root document where other
splits are splitted from. Don't specify document identifier in subsequent splits.
pages:
type: array
items:
$ref: '#/components/schemas/DocumentSplitPage'
DocumentEditRequest:
type: object
required:
- splits
properties:
splits:
type: array
items:
$ref: '#/components/schemas/DocumentSplit'
Meta_properties-identifier:
type: string
description: Unique identifier for the document
Meta:
type: object
properties:
identifier:
type: string
description: Unique identifier for the document
customIdentifier:
type: string
nullable: true
description: Optional identifier for the document that you can set to track the document in the Affinda system. Is
not required to be unique.
example: 46ab8b02-0e5b-420c-877c-8b678d46a834
fileName:
$ref: '#/components/schemas/FileName'
ready:
type: boolean
nullable: false
example: true
description: If true, the document has finished processing. Particularly useful if an endpoint request specified
wait=False, when polling use this variable to determine when to stop polling
readyDt:
type: string
format: date-time
example: '2020-12-10T01:43:32.276724Z'
nullable: true
description: The datetime when the document was ready
failed:
type: boolean
nullable: false
example: false
description: If true, some exception was raised during processing. Check the 'error' field of the main return object.
expiryTime:
$ref: '#/components/schemas/ExpiryTime'
language:
type: string
nullable: true
example: en
description: The document's language.
pdf:
type: string
nullable: true
example: https://affinda-api.s3.amazonaws.com/media/documents/Document.pdf?AWSAccessKeyId=KEY&Signature=SIG&Expires=1663302062
description: The URL to the document's pdf (if the uploaded document is not already pdf, it's converted to pdf as
part of the parsing process).
parentDocument:
type: object
nullable: true
description: If this document is part of a splitted document, this attribute points to the original document that
this document is splitted from.
properties:
identifier:
$ref: '#/components/schemas/Meta_properties-identifier'
childDocuments:
type: array
description: If this document has been splitted into a number of child documents, this attribute points to those
child documents.
items:
type: object
properties:
identifier:
$ref: '#/components/schemas/Meta_properties-identifier'
pages:
type: array
items:
$ref: '#/components/schemas/PageMeta'
description: The document's pages.
isVerified:
type: boolean
nullable: false
example: false
description: This is true if the 'confirm' button has been clicked in the Affinda validation tool
reviewUrl:
type: string
nullable: true
example: https://app.affinda.com/review/XJ5kK123?signature=12345
description: Signed URL (valid for 60 minutes) to access the validation tool. Not applicable for documents types
such a resumes.
ocrConfidence:
type: number
nullable: true
example: 0.97
description: The overall confidence in the conversion of image to text. (only applicable for images or PDF documents
without a text layer)
createdDt:
type: string
format: date-time
documentType:
type: string
example: resume
regionBias:
$ref: '#/components/schemas/RegionBias'
isOcrd:
type: boolean
DocumentEditResponse:
type: array
items:
$ref: '#/components/schemas/Meta'
fieldGroups:
type: array
nullable: true
items:
$ref: '#/components/schemas/FieldGroup'
ExtractorCreate:
type: object
required:
- name
- organization
properties:
name:
$ref: '#/components/schemas/name'
namePlural:
$ref: '#/components/schemas/namePlural'
baseExtractor:
$ref: '#/components/schemas/Extractor_properties-identifier'
organization:
$ref: '#/components/schemas/Organization_properties-identifier'
category:
$ref: '#/components/schemas/category'
validatable:
$ref: '#/components/schemas/validatable'
fieldGroups:
$ref: '#/components/schemas/fieldGroups'
ExtractorUpdate:
type: object
properties:
name:
$ref: '#/components/schemas/name'
namePlural:
$ref: '#/components/schemas/namePlural'
baseExtractor:
$ref: '#/components/schemas/Extractor_properties-identifier'
category:
$ref: '#/components/schemas/category'
validatable:
$ref: '#/components/schemas/validatable'
fieldGroups:
$ref: '#/components/schemas/fieldGroups'
OrganizationMembership:
type: object
required:
- identifier
- organization
- user
- role
properties:
identifier:
$ref: '#/components/schemas/Identifier'
organization:
$ref: '#/components/schemas/Organization_properties-identifier'
user:
$ref: '#/components/schemas/User'
role:
$ref: '#/components/schemas/OrganizationRole'
OrganizationMembershipUpdate:
type: object
properties:
role:
$ref: '#/components/schemas/OrganizationRole'
InvitationStatus:
type: string
enum:
- pending
- accepted
- declined
Invitation:
type: object
properties:
identifier:
type: string
description: Uniquely identify an invitation.
example: mEFayXdO
organization:
$ref: '#/components/schemas/Organization'
email:
type: string
example: carljohnson@grove.street
description: The email which the invitation is sent to.
role:
$ref: '#/components/schemas/OrganizationRole'
status:
$ref: '#/components/schemas/InvitationStatus'
expiryDate:
type: string
format: date
description: The date after which the invitation expires. Default is 10 days from now.
invitedBy:
$ref: '#/components/schemas/User'
respondedBy:
type: object
nullable: true
allOf:
- $ref: '#/components/schemas/User'
- type: object
description: The person who receives this invitation can register/signin with any account and respond to it. This
field stores which account has responded to the invitation.
createdDt:
type: string
format: date-time
properties-email:
type: string
example: carljohnson@grove.street
description: The email which the invitation is sent to.
InvitationCreate:
type: object
required:
- organization
- email
- role
properties:
organization:
$ref: '#/components/schemas/Organization_properties-identifier'
email:
$ref: '#/components/schemas/properties-email'
role:
$ref: '#/components/schemas/OrganizationRole'
Invitation_properties-identifier:
type: string
description: Uniquely identify an invitation.
example: mEFayXdO
InvitationUpdate:
type: object
properties:
role:
$ref: '#/components/schemas/OrganizationRole'
InvitationResponse:
type: object
properties:
status:
type: string
enum:
- accepted
- declined
Mapping_properties-identifier:
type: string
description: Uniquely identify a mapping.
example: mEFayXdO
readOnly: true
Mapping:
type: object
description: A mapping allows you to specify specific settings regarding a lookup against a MappingDataSource should
be applied.
required:
- identifier
- dataSource
properties:
identifier:
type: string
description: Uniquely identify a mapping.
example: mEFayXdO
readOnly: true
organization:
type: string
example: mewlkWEKL
description: The organization that this mapping belongs to.
nullable: true
dataSource:
type: string
example: mewERBRJJ
description: The mapping data source this mapping applies to.
nullable: true
scoreCutoff:
type: number
example: 10
description: Higher values will result in more strict matching.
nullable: true
orderBy:
type: string
example: label
description: The field to order the results by. Leave blank for ordering by relevance.
nullable: true
properties-dataSource:
type: string
example: mewERBRJJ
description: The mapping data source this mapping applies to.
nullable: true
scoreCutoff:
type: number
example: 10
description: Higher values will result in more strict matching.
nullable: true
organization:
type: string
example: mewlkWEKL
description: The organization that this mapping belongs to.
nullable: true
orderBy:
type: string
example: label
description: The field to order the results by. Leave blank for ordering by relevance.
nullable: true
MappingCreate:
type: object
required:
- dataSource
properties:
dataSource:
$ref: '#/components/schemas/properties-dataSource'
scoreCutoff:
$ref: '#/components/schemas/scoreCutoff'
organization:
$ref: '#/components/schemas/organization'
orderBy:
$ref: '#/components/schemas/orderBy'
MappingUpdate:
type: object
properties:
scoreCutoff:
$ref: '#/components/schemas/scoreCutoff'
orderBy:
$ref: '#/components/schemas/orderBy'
FloatAnnotation:
type: object
nullable: true
allOf:
- $ref: '#/components/schemas/Annotation'
- type: object
properties:
parsed:
type: number
nullable: true
example: 1.23
RowAnnotation:
type: object
nullable: true
allOf:
- $ref: '#/components/schemas/Annotation'
- type: object
properties:
parsed:
type: object
properties:
itemCode:
$ref: '#/components/schemas/TextAnnotation'
itemDate:
$ref: '#/components/schemas/DateAnnotation'
itemDescription:
$ref: '#/components/schemas/TextAnnotation'
itemUnit:
$ref: '#/components/schemas/TextAnnotation'
itemUnitPrice:
$ref: '#/components/schemas/FloatAnnotation'
itemQuantity:
$ref: '#/components/schemas/FloatAnnotation'
itemDiscount:
$ref: '#/components/schemas/TextAnnotation'
itemBaseTotal:
$ref: '#/components/schemas/FloatAnnotation'
itemTaxRate:
$ref: '#/components/schemas/TextAnnotation'
itemTaxTotal:
$ref: '#/components/schemas/FloatAnnotation'
itemTotal:
$ref: '#/components/schemas/FloatAnnotation'
itemOther:
$ref: '#/components/schemas/TextAnnotation'
TableAnnotation:
type: object
nullable: true
allOf:
- $ref: '#/components/schemas/Annotation'
- type: object
properties:
parsed:
type: object
properties:
rows:
type: array
items:
$ref: '#/components/schemas/RowAnnotation'
RowBetaAnnotation:
type: object
nullable: true
allOf:
- $ref: '#/components/schemas/Annotation'
- type: object
properties:
parsed:
type: object
properties:
itemCodeBeta:
$ref: '#/components/schemas/TextAnnotation'
itemDateBeta:
$ref: '#/components/schemas/DateAnnotation'
itemDescriptionBeta:
$ref: '#/components/schemas/TextAnnotation'
itemUnitBeta:
$ref: '#/components/schemas/TextAnnotation'
itemUnitPriceBeta:
$ref: '#/components/schemas/FloatAnnotation'
itemQuantityBeta:
$ref: '#/components/schemas/FloatAnnotation'
itemDiscountBeta:
$ref: '#/components/schemas/TextAnnotation'
itemBaseTotalBeta:
$ref: '#/components/schemas/FloatAnnotation'
itemTaxRateBeta:
$ref: '#/components/schemas/TextAnnotation'
itemTaxTotalBeta:
$ref: '#/components/schemas/FloatAnnotation'
itemTotalBeta:
$ref: '#/components/schemas/FloatAnnotation'
itemOtherBeta:
$ref: '#/components/schemas/TextAnnotation'
TableBetaAnnotation:
type: object
nullable: true
allOf:
- $ref: '#/components/schemas/Annotation'
- type: object
properties:
parsed:
type: object
properties:
rows:
type: array
items:
$ref: '#/components/schemas/RowBetaAnnotation'
CurrencyCodeAnnotation:
type: object
nullable: true
allOf:
- $ref: '#/components/schemas/Annotation'
- type: object
properties:
parsed:
$ref: '#/components/schemas/DataPointChoice'
nullable: true
InvoiceData:
type: object
additionalProperties: false
nullable: false
properties:
tables:
type: array
items:
$ref: '#/components/schemas/TableAnnotation'
tablesBeta:
type: array
items:
$ref: '#/components/schemas/TableBetaAnnotation'
invoiceDate:
$ref: '#/components/schemas/DateAnnotation'
invoiceOrderDate:
$ref: '#/components/schemas/DateAnnotation'
paymentDateDue:
$ref: '#/components/schemas/DateAnnotation'
paymentAmountBase:
$ref: '#/components/schemas/TextAnnotation'
paymentAmountTax:
$ref: '#/components/schemas/TextAnnotation'
paymentAmountTotal:
$ref: '#/components/schemas/TextAnnotation'
paymentAmountPaid:
$ref: '#/components/schemas/TextAnnotation'
paymentAmountDue:
$ref: '#/components/schemas/TextAnnotation'
invoiceNumber:
$ref: '#/components/schemas/TextAnnotation'
invoicePurchaseOrderNumber:
$ref: '#/components/schemas/TextAnnotation'
supplierBusinessNumber:
$ref: '#/components/schemas/TextAnnotation'
customerNumber:
$ref: '#/components/schemas/TextAnnotation'
customerBusinessNumber:
$ref: '#/components/schemas/TextAnnotation'
paymentReference:
$ref: '#/components/schemas/TextAnnotation'
bankAccountNumber:
$ref: '#/components/schemas/TextAnnotation'
supplierVat:
$ref: '#/components/schemas/TextAnnotation'
customerVat:
$ref: '#/components/schemas/TextAnnotation'
bpayBillerCode:
$ref: '#/components/schemas/TextAnnotation'
bpayReference:
$ref: '#/components/schemas/TextAnnotation'
bankSortCode:
$ref: '#/components/schemas/TextAnnotation'
bankIban:
$ref: '#/components/schemas/TextAnnotation'
bankSwift:
$ref: '#/components/schemas/TextAnnotation'
bankBsb:
$ref: '#/components/schemas/TextAnnotation'
customerContactName:
$ref: '#/components/schemas/TextAnnotation'
customerCompanyName:
$ref: '#/components/schemas/TextAnnotation'
supplierCompanyName:
$ref: '#/components/schemas/TextAnnotation'
customerBillingAddress:
$ref: '#/components/schemas/LocationAnnotation'
customerDeliveryAddress:
$ref: '#/components/schemas/LocationAnnotation'
supplierAddress:
$ref: '#/components/schemas/LocationAnnotation'
customerPhoneNumber:
$ref: '#/components/schemas/TextAnnotation'
supplierPhoneNumber:
$ref: '#/components/schemas/TextAnnotation'
supplierFax:
$ref: '#/components/schemas/TextAnnotation'
customerEmail:
$ref: '#/components/schemas/TextAnnotation'
supplierEmail:
$ref: '#/components/schemas/TextAnnotation'
supplierWebsite:
$ref: '#/components/schemas/TextAnnotation'
currencyCode:
$ref: '#/components/schemas/CurrencyCodeAnnotation'
customFields:
type: object
nullable: true
additionalProperties: true
rawText:
type: string
description: All of the raw text of the parsed invoice.
DateRangeValue:
type: object
nullable: true
properties:
date:
type: string
format: date
example: '2022-02-09'
isCurrent:
type: boolean
day:
type: integer
nullable: true
month:
type: integer
nullable: true
year:
type: integer
nullable: true
parameters:
offsetParam:
in: query
name: offset
required: false
schema:
type: integer
minimum: 0
example: 0
description: The number of documents to skip before starting to collect the result set.
x-ms-parameter-location: method
limitParam:
in: query
name: limit
required: false
schema:
type: integer
minimum: 1
maximum: 100
example: 20
description: The numbers of results to return.
x-ms-parameter-location: method
responses:
DefaultError:
description: UnexpectedError
content:
application/json:
schema:
$ref: '#/components/schemas/RequestError'
x-ms-error-response: true
400Error:
description: Bad request. If it is a validation error will contain a list of each invalid field
content:
application/json:
schema:
$ref: '#/components/schemas/RequestError'
x-ms-error-response: true
401Error:
description: Authorisation error
content:
application/json:
schema:
$ref: '#/components/schemas/RequestError'
x-ms-error-response: true
403Error:
description: Forbidden error
content:
application/json:
schema:
$ref: '#/components/schemas/RequestError'
x-ms-error-response: true
400ErrorMaybeXML:
description: Bad request. If it is a validation error will contain a list of each invalid field
content:
application/json:
schema:
$ref: '#/components/schemas/RequestError'
application/xml:
schema:
$ref: '#/components/schemas/RequestError'
x-ms-error-response: true
401ErrorMaybeXML:
description: Authorisation error
content:
application/json:
schema:
$ref: '#/components/schemas/RequestError'
application/xml:
schema:
$ref: '#/components/schemas/RequestError'
x-ms-error-response: true
204NoContent:
description: Delete successful, no content returned