Developers · REST API

AllSign REST API Guide

Bearer-authenticated. JSON over HTTPS. UUID identifiers throughout. Manage agreements, participants, terms, signatures, decisions, and revisions programmatically.

TypeScript
// List your agreements — requires a bearer token
const res = await fetch("https://api.allsign.app/agreements", {
headers: {
Authorization: "Bearer pat_xxxxxxxxxxxxxxxxxxxxxxxx",
},
});
const { data } = await res.json();
for (const agreement of data.agreements) {
console.log(agreement.ref, agreement.name, agreement.status);
}
// data.page, data.total_pages, data.total_records — standard pagination

An OAS compliant REST API.

Every resource is reachable at api.allsign.app. All identifiers are UUIDs.

Agreements

Create, list, retrieve, update, and delete. Each agreement carries sections, terms, status, intent (binding or nonbinding), and priority fields. `POST /agreements`

Templates

Reusable agreement structures. Create an agreement from a template in one call. `POST /templates/{ref}/agreements`

Participants

Invite by email with a role: commentor, editor, signer, or viewer. Agent participants include an `agent_ref`. `POST /agreements/{ref}/participants`

Terms

Clauses scoped to an agreement or section. Each term tracks negotiability, lock state, position, and priority. `POST /agreements/{ref}/terms`

Decisions

Per-term accept or reject decisions scoped to the current revision. A rejection can carry a counter-proposal. `POST /terms/{ref}/decisions`

Revisions

Each counter-proposal generates a revision. Retrieve the full revision history for any term. `POST /terms/{ref}/revisions`

Signatures

State-machine-driven. The protocol endpoint returns the current state and the single valid next action. `POST /agreements/{ref}/signatures`

Comments

Thread discussion scoped to agreements, sections, or individual terms. Optionally pinned to the current revision. `POST /agreements/{ref}/comments`

Integration reference

Authentication, endpoint conventions, and available integration options.

Authentication

Authentication

  • Personal access tokens (PATs) issued from account settings
  • Application tokens for server-side integrations
  • Bearer token in the Authorization header: Authorization: Bearer <token>
  • All endpoints require authentication — no public routes

Endpoints

Endpoints

  • REST over HTTPS
  • JSON request and response bodies
  • UUID identifiers on all resources (format: uuid)
  • Paginated list responses: page, page_size, total_pages, total_records
  • Error envelope: error.code, error.message, error.status, error.request_id

SDKs & Agents

SDKs & Agents

  • TypeScript SDK (in development)
  • Agent email protocol for AI participant invitations
  • MCP server for AI tool access
  • Agent participants set agent_ref on ParticipantCreate
TypeScript
const BASE = "https://api.allsign.app";
const headers = {
Authorization: "Bearer pat_xxxxxxxxxxxxxxxxxxxxxxxx",
"Content-Type": "application/json",
};
// 1. Create an agreement
const { data: { agreement } } = await fetch(`${BASE}/agreements`, {
method: "POST",
headers,
body: JSON.stringify({
name: "Q3 Contractor Agreement",
intent: "binding",
priority: "high",
}),
}).then((r) => r.json());
// 2. Add a term
await fetch(`${BASE}/agreements/${agreement.ref}/terms`, {
method: "POST",
headers,
body: JSON.stringify({
name: "Scope of Work",
description: "Deliver the MVP no later than 2026-09-30.",
negotiable: 1,
priority: "high",
}),
});
// 3. Invite a signer
await fetch(`${BASE}/agreements/${agreement.ref}/participants`, {
method: "POST",
headers,
body: JSON.stringify({
name: "Jordan Lee",
email: "jordan@example.com",
type: "signer",
}),
});

AllSignAllSign

Agreement and decision tracking for teams and AI agents. Track decisions. Ensure agreement.

© 2026 AllSign. All rights reserved.