Integration

Affinda integration

Affinda Extract is a document AI platform that turns resumes, invoices and other document types, including custom ones, into structured, validated data. With this integration an agent can upload a document by file or URL for parsing and read back its extracted data, list, filter, update, tag and delete documents, read and correct individual annotations (extracted values with bounding boxes and confidence), record validation results, manage workspaces and tags, read document types with their JSON schema, check credit usage, and subscribe a URL to parse and validation events. Not included: the deprecated collection, data point, mapping and API user routes, organization, membership and invitation administration, data sources, the Search and Match product, batch annotation routes, the redacted PDF download, and the extractor and document splitter routes the vendor marks deprecated. Authentication is an API key from the user settings of the Affinda web app (app.affinda.com), sent as a Bearer token. region is the instance the account lives on, as shown in the web app URL: api (Australia and global, app.affinda.com), api.us1 (United States, app.us1.affinda.com) or api.eu1 (European Union, app.eu1.affinda.com); a key only works on the instance it was created on. Up to 20 documents per minute go to the high priority queue; uploads are limited to 20 MB (5 MB for resumes) and 20 pages by default.

Ask it in chat

Say what should happen.
The workflow builds itself.

When this happens, do that in Affinda.Built from the 37 Affinda tools below, on the connection you add once.

What you can do with Affinda

Each of these is one operation on one endpoint, available both as a workflow step and as a tool an AI agent can call on its own. Nothing bundles several operations into one action, so what a run did stays readable afterwards.

Most endpoints run on the free plan. A few, mainly the ones that publish on your behalf, need a paid plan.

Resthook subscription, 6 operations

  • activate_resthook_subscriptionActivate resthook subscriptionPOSTActivates a resthook subscription with the X-Hook-Secret value Affinda sent to your target URL after create_resthook_subscription. Deliveries start once it is active.
  • create_resthook_subscriptionCreate resthook subscriptionPOSTSubscribes a URL to an event. Affinda then posts to that URL with an X-Hook-Secret header: answer 200, then pass that secret to activate_resthook_subscription to start deliveries.
  • delete_resthook_subscriptionDelete resthook subscriptionDELETEDeletes the specified resthook subscription from the database.
  • get_resthook_subscriptionGet resthook subscriptionGETReturn a specific resthook subscription.
  • list_resthook_subscriptionsList resthook subscriptionsGETReturns your resthook subscriptions.
  • update_resthook_subscriptionUpdate resthook subscriptionPATCHUpdate data of a resthook subscription.

Annotation, 5 operations

  • create_annotationCreate annotationPOSTCreates an annotation (an extracted value) on a document for a given data point, optionally with its page, bounding box and parsed value.
  • delete_annotationDelete annotationDELETEDeletes the specified annotation from the database.
  • get_annotationGet annotationGETReturn a specific annotation.
  • list_annotationsList annotationsGETReturns your annotations.
  • update_annotationUpdate annotationPATCHUpdate data of an annotation.

Document, 5 operations

  • delete_documentDelete documentDELETEDeletes the specified document from the database.
  • get_documentGet documentGETReturns one document with its extracted data, metadata (meta.ready tells whether parsing has finished, meta.failed whether it failed) and any error or warnings.
  • list_documentsList documentsGETLists document summaries (metadata such as identifier, file name, ready and failed state, workspace and tags), up to 300 per page. Filter by workspace, state, tags or search; use get_document for the full extracted data.
  • update_documentUpdate documentPATCHUpdates a document: file name, expiry time, language, custom identifier, workspace or document type, or marks it confirmed, rejected or archived. Leave out any field to keep its current value.
  • upload_documentUpload documentPOSTUploads a document for parsing, from a file or a public URL. With wait true (default) it answers once parsing is done with the extracted data; with wait false read the result later with get_document using meta.identifier.

Tag, 5 operations

  • create_tagCreate tagPOSTCreates a tag in a workspace. Tags group documents and can filter list_documents; attach one with add_tag_to_documents.
  • delete_tagDelete tagDELETEDeletes the specified tag from the database.
  • get_tagGet tagGETReturns one tag by id: its name, workspace and the number of documents carrying it.
  • list_tagsList tagsGETLists the tags of your workspaces, with their id, name, workspace and the number of documents carrying each. Use a tag id with add_tag_to_documents or to filter list_documents.
  • update_tagUpdate tagPATCHRenames a tag or moves it to another workspace. Leave out any field to keep its current value.

Validation result, 5 operations

  • create_validation_resultCreate validation resultPOSTRecords the result of a validation rule on a document: whether it passed, the annotations it concerns and a message.
  • delete_validation_resultDelete validation resultDELETERemove validation result.
  • get_validation_resultGet validation resultGETReturn a specific validation result.
  • list_validation_resultsList validation resultsGETReturns the validation results of a document.
  • update_validation_resultUpdate validation resultPATCHUpdates a validation result: whether it passed, the annotations it concerns or its message. Leave out any field to keep its current value.

Workspace, 5 operations

  • create_workspaceCreate workspacePOSTCreates a workspace in an organization. Documents are uploaded into a workspace, which sets their document types, duplicate handling and email ingestion address.
  • delete_workspaceDelete workspaceDELETEDeletes the specified workspace from the database.
  • get_workspaceGet workspaceGETReturn a specific workspace.
  • list_workspacesList workspacesGETLists the workspaces you can access, with their identifier, name, organization (identifier and name), document types, members and document counts. Use a workspace identifier when uploading or filtering documents.
  • update_workspaceUpdate workspacePATCHUpdates a workspace's name, visibility, document rejection, duplicate handling or email ingestion settings. Leave out any field to keep its current setting.

Document tag, 2 operations

  • add_tag_to_documentsAdd tag to documentsPOSTAdds one tag to several documents at once. Tags group documents and can be used to filter list_documents.
  • remove_tag_from_documentsRemove tag from documentsPOSTRemoves one tag from several documents at once.

Document type, 2 operations

  • get_document_typeGet document typeGETReturns the details of a specific document type.
  • list_document_typesList document typesGETReturns a list of document types that the user has access to.

Document type schema, 1 operation

  • get_document_type_json_schemaGet document type json schemaGETGenerate JSON schema from a document type.

Usage, 1 operation

  • get_usageGet usageGETReturns daily credits consumption for an organization over a date range.

Use Affinda from Claude Code, Cursor or Codex

Connect Affinda in LiveContext, create an API key in Settings, then add the LiveContext MCP server to your client. Its Affinda operations become tools the client can call, next to every other integration you connected.

Claude Code
claude mcp add --transport http livecontext https://livecontext.ai/mcp --header "X-API-Key: YOUR_API_KEY"
Codex (~/.codex/config.toml)
[mcp_servers.livecontext]
url = "https://livecontext.ai/mcp"

[mcp_servers.livecontext.http_headers]
"X-API-Key" = "YOUR_API_KEY"
Cursor, Claude Desktop and other JSON configs
{
  "mcpServers": {
    "livecontext": {
      "type": "http",
      "url": "https://livecontext.ai/mcp",
      "headers": {
        "X-API-Key": "YOUR_API_KEY"
      }
    }
  }
}

Set up the MCP server step by step

How to connect Affinda

  1. Create your workspace

    Sign up free. Nothing to install.

  2. Connect Affinda once

    Add your Affinda connection in Settings. Every tool from this integration reuses it, and secrets are encrypted at rest and visible only to you.

  3. Describe the job in chat

    The workflow builds itself in front of you and picks the endpoints it needs. Drag the steps yourself on the canvas whenever you would rather be explicit.

Affinda integration FAQ

What can you do with the Affinda integration?

LiveContext exposes 37 operations on Affinda, covering resthook subscription, annotation, document and tag.

Popular integrations

Browse the whole catalog