Skip to main content
When a mark is part of an acquisition, financing, or portfolio sale, diligence teams need to know who received title, whether any lender recorded a security interest, and whether that lien was released. This recipe walks from owner-level lien filtering to a mark-level chain of title, then pairs a release to the original security-interest reel and frame. Use List Assignments for cross-mark transaction filtering, Trademark Assignments for one mark’s chain, and Get Assignment for the full parties and affected marks.

Prerequisites

  • A Signa API key with trademarks:read
  • The target owner ID (own_...) or entity ID (ent_...)
  • The trademark ID (tm_...) for any mark you want to inspect directly
1

Find recorded liens for the owner

Start with type=security_interest and the borrower or seller owner ID. The collection endpoint is filter-required, so every request stays scoped to a diligence question.
curl -G "https://api.signa.so/v1/assignments" \
  -H "Authorization: Bearer $SIGNA_API_KEY" \
  --data-urlencode "owner_id=own_22222222-2222-4222-8222-222222222222" \
  --data-urlencode "type=security_interest" \
  --data-urlencode "limit=20"
import { Signa } from "@signa-so/sdk";

const signa = new Signa({ api_key: process.env.SIGNA_API_KEY });

const liens = await signa.assignments.list({
  owner_id: "own_22222222-2222-4222-8222-222222222222",
  type: "security_interest",
  limit: 20,
});
If the borrower sits inside a larger corporate family, repeat the same query with entity_id. Signa expands the entity to member owners before filtering assignment parties.
2

Inspect the lien

Retrieve the security-interest record to confirm the parties and affected marks. Save the reel_no and frame_no, because releases point back to those values.
TypeScript
const lien = await signa.assignments.retrieve(
  "asg_66666666-6666-4666-8666-666666666666",
);

const grant = {
  reel_no: lien.reel_no,
  frame_no: lien.frame_no,
  lender: lien.parties.find((party) => party.role === "assignee")?.name,
  marks: lien.properties.map((property) => property.trademark_id),
};
For the worked example, the lien has reel_no: "9102" and frame_no: "0100", with Northstar Brands LLC as assignor and First Continental Bank, N.A. as assignee.
3

Review the mark chain

Pull the per-mark chain to see transfers, liens, and releases together in recorded-date order.
curl "https://api.signa.so/v1/trademarks/tm_11111111-1111-4111-8111-111111111111/assignments" \
  -H "Authorization: Bearer $SIGNA_API_KEY"
const chain = await signa.trademarks.assignments(
  "tm_11111111-1111-4111-8111-111111111111",
);

for await (const transaction of chain) {
  console.log(transaction.recorded_date, transaction.conveyance_type, transaction.reel_no, transaction.frame_no);
}
In the example chain, asg_55555555-5555-4555-8555-555555555555 records title moving from OldCo Consumer Products Inc. to Northstar Brands LLC. asg_66666666-6666-4666-8666-666666666666 records the security interest. asg_77777777-7777-4777-8777-777777777777 records a later release.
4

Pair releases to grants

A release points back to the grant it releases with release_of_reel_no and release_of_frame_no. Match those fields against the security-interest reel_no and frame_no.
TypeScript
const transactions = await chain.toArray();

const grants = transactions.filter((item) => item.conveyance_type === "security_interest");
const releases = transactions.filter((item) => item.conveyance_type === "release");

const releasePairs = grants.map((grant) => ({
  grant_id: grant.id,
  grant_reel_no: grant.reel_no,
  grant_frame_no: grant.frame_no,
  release: releases.find(
    (release) =>
      release.release_of_reel_no === grant.reel_no &&
      release.release_of_frame_no === grant.frame_no,
  ) ?? null,
}));
In the worked example, the release has release_of_reel_no: "9102" and release_of_frame_no: "0100", so it clears the 9102/0100 security interest. If no release pairs to a grant, escalate it for legal review before treating the mark as clean collateral or clean title.
5

Decide what to clear

Use the combined evidence to separate clean title from open issues:
  • A current owner should appear in a recent assignment or other transfer record.
  • A security interest without a matching release may require payoff, consent, or an exception in the transaction documents.
  • A release matching the grant reel/frame is the strongest normalized signal that the recorded lien was cleared.
  • If the owner is part of a larger entity, rerun the lien filter with entity_id to catch affiliates and office-specific owner records.