Skip to content

API reference

API: Lists

Markdown version

MethodPathWhat it doesScope
GET/v1/listsSaved lists (static membership or dynamic filters)records:read
POST/v1/listsCreate a list. Dynamic lists re-evaluate their filter every time they're read.records:write
GET/v1/lists/:idGet one list with its member countrecords:read
PATCH/v1/lists/:idRename, change the filter, archive or restore a listrecords:write
POST/v1/lists/:id/membersAdd or remove records on a static list (a record can be on many lists)records:write
GET/v1/lists/:id/recordsRecords on a list (dynamic lists evaluate their filter now)records:read
GET/v1/lists/schemaJSON Schemas for list create and update bodies (including the dynamic filter grammar)records:read

Examples

GET /v1/lists

Saved lists (static membership or dynamic filters)

curl -s "https://api.closefinch.com/v1/lists" \
  -H "Authorization: Bearer $RA_API_KEY"
const res = await fetch(`https://api.closefinch.com/v1/lists`, {
  method: "GET",
  headers: { authorization: `Bearer ${process.env.RA_API_KEY}` },
});
const data = await res.json();

POST /v1/lists

Create a list. Dynamic lists re-evaluate their filter every time they're read.

curl -s -X POST "https://api.closefinch.com/v1/lists" \
  -H "Authorization: Bearer $RA_API_KEY" \
  -H "content-type: application/json" \
  -d '{}'
const res = await fetch(`https://api.closefinch.com/v1/lists`, {
  method: "POST",
  headers: { authorization: `Bearer ${process.env.RA_API_KEY}`, "content-type": "application/json" },
  body: JSON.stringify({}), // fields: see the OpenAPI schema
});
const data = await res.json();

GET /v1/lists/$ID

Get one list with its member count

curl -s "https://api.closefinch.com/v1/lists/$ID" \
  -H "Authorization: Bearer $RA_API_KEY"
const res = await fetch(`https://api.closefinch.com/v1/lists/${id}`, {
  method: "GET",
  headers: { authorization: `Bearer ${process.env.RA_API_KEY}` },
});
const data = await res.json();

PATCH /v1/lists/$ID

Rename, change the filter, archive or restore a list

curl -s -X PATCH "https://api.closefinch.com/v1/lists/$ID" \
  -H "Authorization: Bearer $RA_API_KEY" \
  -H "content-type: application/json" \
  -d '{}'
const res = await fetch(`https://api.closefinch.com/v1/lists/${id}`, {
  method: "PATCH",
  headers: { authorization: `Bearer ${process.env.RA_API_KEY}`, "content-type": "application/json" },
  body: JSON.stringify({}), // fields: see the OpenAPI schema
});
const data = await res.json();

POST /v1/lists/$ID/members

Add or remove records on a static list (a record can be on many lists)

curl -s -X POST "https://api.closefinch.com/v1/lists/$ID/members" \
  -H "Authorization: Bearer $RA_API_KEY" \
  -H "content-type: application/json" \
  -d '{}'
const res = await fetch(`https://api.closefinch.com/v1/lists/${id}/members`, {
  method: "POST",
  headers: { authorization: `Bearer ${process.env.RA_API_KEY}`, "content-type": "application/json" },
  body: JSON.stringify({}), // fields: see the OpenAPI schema
});
const data = await res.json();

GET /v1/lists/$ID/records

Records on a list (dynamic lists evaluate their filter now)

curl -s "https://api.closefinch.com/v1/lists/$ID/records" \
  -H "Authorization: Bearer $RA_API_KEY"
const res = await fetch(`https://api.closefinch.com/v1/lists/${id}/records`, {
  method: "GET",
  headers: { authorization: `Bearer ${process.env.RA_API_KEY}` },
});
const data = await res.json();

GET /v1/lists/schema

JSON Schemas for list create and update bodies (including the dynamic filter grammar)

curl -s "https://api.closefinch.com/v1/lists/schema" \
  -H "Authorization: Bearer $RA_API_KEY"
const res = await fetch(`https://api.closefinch.com/v1/lists/schema`, {
  method: "GET",
  headers: { authorization: `Bearer ${process.env.RA_API_KEY}` },
});
const data = await res.json();

Request and response schemas: https://www.closefinch.com/openapi.json. All resources: API reference.

Send feedback

Tell us what's broken, confusing or missing on this page, or an idea. It goes to the team that builds the product.

Please don't include passwords or card numbers.
Only to reply about this. Never added to any mailing list.