FOLIO · Schema
profile_dto
Profile DTO
CompanyLibrariesLibrary Services PlatformOpen SourceMicroservicesEducation
Properties
| Name | Type | Description |
|---|---|---|
| id | string | |
| name | string | The name of the profile, used for identification and display. |
| description | string | Indicates description of the profile. |
| locked | boolean | Indicates whether the profile is locked and cannot be modified. |
| entityType | object | Entity type |
| ruleDetails | array | Rule Collection |
| marcRuleDetails | array | Bulk Operation Marc Rule Collection |
| createdDate | string | Date and time when the record was created |
| createdBy | string | ID of the user who created the record (when available) |
| updatedDate | string | Date and time when the record was last updated |
| updatedBy | string | ID of the user who last updated the record (when available) |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/folio/main/json-schema/folio-profile-dto-schema.json",
"title": "profile_dto",
"description": "Profile DTO",
"x-generated": "2026-10-09",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/folio-mod-bulk-operations-openapi.yml#/components/schemas/profile_dto",
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "UUID"
},
"name": {
"description": "The name of the profile, used for identification and display.",
"type": "string"
},
"description": {
"description": "Indicates description of the profile.",
"type": "string"
},
"locked": {
"description": "Indicates whether the profile is locked and cannot be modified.",
"type": "boolean"
},
"entityType": {
"description": "Entity type",
"$ref": "#/$defs/EntityType"
},
"ruleDetails": {
"description": "Rule Collection",
"type": "array",
"items": {
"$ref": "#/$defs/RuleDetails"
}
},
"marcRuleDetails": {
"description": "Bulk Operation Marc Rule Collection",
"type": "array",
"items": {
"$ref": "#/$defs/MarcRuleDetails"
}
},
"createdDate": {
"description": "Date and time when the record was created",
"type": "string",
"format": "date-time"
},
"createdBy": {
"description": "ID of the user who created the record (when available)",
"type": "string",
"format": "UUID"
},
"updatedDate": {
"description": "Date and time when the record was last updated",
"type": "string",
"format": "date-time"
},
"updatedBy": {
"description": "ID of the user who last updated the record (when available)",
"type": "string",
"format": "UUID"
}
},
"additionalProperties": false,
"required": [
"id",
"name",
"entityType"
],
"$defs": {
"Action": {
"description": "Rule action",
"type": "object",
"properties": {
"type": {
"$ref": "#/$defs/UpdateActionType"
},
"initial": {
"description": "Initial value",
"type": "string"
},
"updated": {
"description": "Updated value",
"type": "string"
},
"parameters": {
"type": "array",
"items": {
"$ref": "#/$defs/Parameter"
}
},
"tenants": {
"type": "array",
"items": {
"type": "string"
}
},
"updated_tenants": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"type"
],
"additionalProperties": false
},
"EntityType": {
"type": "string",
"enum": [
"USER",
"ITEM",
"HOLDINGS_RECORD",
"INSTANCE",
"INSTANCE_MARC"
]
},
"MarcAction": {
"description": "MARC record bulk edit rule action",
"type": "object",
"properties": {
"name": {
"$ref": "#/$defs/UpdateActionType"
},
"data": {
"type": "array",
"items": {
"description": "MARC rule action data",
"type": "object",
"properties": {
"key": {
"$ref": "#/$defs/MarcDataType"
},
"value": {
"description": "Action value",
"type": "string"
}
}
}
}
},
"required": [
"name"
],
"additionalProperties": false
},
"MarcDataType": {
"type": "string",
"enum": [
"VALUE",
"SUBFIELD"
]
},
"MarcParameter": {
"description": "MARC rule parameter data",
"type": "object",
"properties": {
"key": {
"$ref": "#/$defs/MarcParameterType"
},
"value": {
"description": "MARC rule parameter value",
"type": "string"
}
},
"required": [
"key"
],
"additionalProperties": false
},
"MarcParameterType": {
"type": "string",
"enum": [
"OVERRIDE_PROTECTED"
]
},
"MarcRuleDetails": {
"type": "object",
"properties": {
"tag": {
"description": "MARC field tag",
"type": "string"
},
"ind1": {
"description": "MARC field indicator 1",
"type": "string",
"pattern": "[a-z0-9#\\\\]"
},
"ind2": {
"description": "MARC field indicator 2",
"type": "string",
"pattern": "[a-z0-9#\\\\]"
},
"subfield": {
"description": "MARC subfield code",
"type": "string",
"pattern": "[a-z0-9]*"
},
"actions": {
"type": "array",
"items": {
"$ref": "#/$defs/MarcAction"
},
"minItems": 1
},
"parameters": {
"type": "array",
"items": {
"$ref": "#/$defs/MarcParameter"
}
},
"subfields": {
"type": "array",
"items": {
"$ref": "#/$defs/MarcSubfieldAction"
}
},
"updateOption": {
"description": "Option to change",
"$ref": "#/$defs/UpdateOptionType"
}
},
"required": [
"tag",
"ind1",
"ind2",
"actions"
],
"additionalProperties": false
},
"MarcSubfieldAction": {
"description": "MARC record subfield rule action",
"type": "object",
"properties": {
"subfield": {
"description": "MARC subfield code",
"type": "string"
},
"actions": {
"type": "array",
"items": {
"$ref": "#/$defs/MarcAction"
},
"minItems": 1
}
},
"required": [
"subfield",
"actions"
],
"additionalProperties": false
},
"Parameter": {
"description": "Parameter for action",
"type": "object",
"properties": {
"key": {
"description": "Key of parameter",
"type": "string"
},
"value": {
"description": "Value of parameter",
"type": "string"
}
},
"required": [
"key",
"value"
],
"additionalProperties": false
},
"RuleDetails": {
"properties": {
"option": {
"description": "Option to change",
"$ref": "#/$defs/UpdateOptionType"
},
"tenants": {
"type": "array",
"items": {
"type": "string"
}
},
"actions": {
"type": "array",
"items": {
"$ref": "#/$defs/Action"
},
"minItems": 1
}
},
"additionalProperties": false
},
"UpdateActionType": {
"type": "string",
"enum": [
"ADD_TO_EXISTING",
"CLEAR_FIELD",
"FIND",
"FIND_AND_REMOVE_THESE",
"REPLACE_WITH",
"FIND_AND_REPLACE",
"SET_TO_TRUE",
"SET_TO_FALSE",
"SET_TO_TRUE_INCLUDING_ITEMS",
"SET_TO_FALSE_INCLUDING_ITEMS",
"MARK_AS_STAFF_ONLY",
"REMOVE_MARK_AS_STAFF_ONLY",
"REMOVE_ALL",
"CHANGE_TYPE",
"DUPLICATE",
"APPEND",
"ADDITIONAL_SUBFIELD",
"REMOVE_FIELD",
"REMOVE_SUBFIELD",
"",
"REMOVE_SOME"
]
},
"UpdateOptionType": {
"type": "string",
"enum": [
"ADMINISTRATIVE_NOTE",
"CHECK_IN_NOTE",
"CHECK_OUT_NOTE",
"ELECTRONIC_ACCESS_LINK_TEXT",
"ELECTRONIC_ACCESS_MATERIALS_SPECIFIED",
"ELECTRONIC_ACCESS_URI",
"ELECTRONIC_ACCESS_URL_PUBLIC_NOTE",
"ELECTRONIC_ACCESS_URL_RELATIONSHIP",
"EMAIL_ADDRESS",
"EXPIRATION_DATE",
"HOLDINGS_NOTE",
"INSTANCE_NOTE",
"ITEM_NOTE",
"MATERIAL_TYPE",
"PATRON_GROUP",
"PERMANENT_LOAN_TYPE",
"PERMANENT_LOCATION",
"SET_RECORDS_FOR_DELETE",
"STAFF_SUPPRESS",
"STATISTICAL_CODE",
"STATUS",
"SUPPRESS_FROM_DISCOVERY",
"TEMPORARY_LOAN_TYPE",
"TEMPORARY_LOCATION"
]
}
}
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/folio-profile-dto"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.