Rights & licensing extraction

Structure permitted uses, territories, expiration dates, and attribution requirements from supplied media agreements.

Step 01

Define and Align

Review representative examples and annotate the fields that need to change. Explain the edge cases to teach your team’s policy.

Output schema
Permitted channelsList of values

Channels explicitly permitted by the agreement.

TerritoriesList of values

Territories explicitly included in the license.

End dateDate · optional

Explicit license end date; null when absent.

Attribution requiredYes / No

Explicit attribution requirement; null when unstated.

  • true
  • false
  • null
app.sutro.sh/functions/media-rights-licensing-extraction
Collecting feedback · 1/3
Extract the stated usage rights from the supplied license excerpt.
Example 1 of 3

Website rights do not include social distribution

Model input
Extraction rules
Synthetic license extraction rules. Extract only the supplied agreement’s permitted channels, territories, end date, and attribution requirement. Do not infer worldwide, perpetual, or cross-channel rights. Use null when an end date or attribution requirement is absent. This task extracts stated terms rather than deciding a proposed use.
Agreement
Synthetic license: The publisher may display the photograph on its website in the United States through 2027-06-30. Social media distribution is excluded. Credit to the photographer is required.
Model output
Permitted channelsMultiple values
TerritoriesMultiple values
End date
Attribution required

Step 02

Model Sweep

Compare models on the same expert annotations, then choose a quality–cost tradeoff.

Compare models on expert agreement and cost. The interactive chart uses illustrative measurements.

Illustrative sweep · select Value or Best to use that model in your function.

Step 03

Deployment

Call Sutro Functions like any other software. Swap the model as soon as something more performant is released.

Selected modelWaiting for sweep results.

Real-time

import sutro as so

input_data = {
    "extraction_rules": "Synthetic license extraction rules. Extract only the supplied agreement’s permitted channels, territories, end date, and attribution requirement. Do not infer worldwide, perpetual, or cross-channel rights. Use null when an end date or attribution requirement is absent. This task extracts stated terms rather than deciding a proposed use.",
    "agreement": "Synthetic license: The publisher may display the photograph on its website in the United States through 2027-06-30. Social media distribution is excluded. Credit to the photographer is required."
}

result = so.run_function(
    "media-rights-licensing-extraction",
    input_data,
)

Batch

import sutro as so

job_id = so.batch_run_function(
    name="media-rights-licensing-extraction",
    data="media_rights_licensing_extraction.csv",
)
results = so.await_job_completion(job_id)

Ready to get started?

Book time with the team

Join the self-serve waitlist

What are your bottlenecks? (Select any that apply)