Install Jentic One Beta
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the Papyrs API, or any other public or private API you need. You set the rules, the agent never sees your credentials, and every call is logged.
Two steps, two machines. Install the instance in a safe environment, then register your agent from wherever it runs.
Step 1: Jentic One Host machine
# On the machine that will host your Jentic One instance:
curl -fsSL "https://jentic.com/install.sh?src=apis&api=%2Fapis%2Fpapyrs.com%2Fmain" | shStep 2: Agent machine
# On the machine where your agent runs (keep this separate from the instance):
curl -fsSL "https://jentic.com/install.sh?src=apis&api=%2Fapis%2Fpapyrs.com%2Fmain" | sh
jentic register # connects your agent to your Jentic One instanceJentic One is in public beta. The setup above keeps your agent separate from the instance, which is what you want before using real credentials: an agent running as the same OS user as Jentic One can read its stored keys directly. Just evaluating? A single local install is fine to start. See the secure deployment guide for the tiers.
What an agent can do with Papyrs API.
Create, retrieve, update, and delete intranet pages
Manage page widgets including paragraphs, headings, and attachments
Upload and download file attachments
Retrieve form records from pages with pagination
Search the intranet for pages, comments, files, people, and forms
GET STARTED
Manage people directory and user accounts
Post to activity stream and page discussions
Control page permissions and notifications
Patterns agents use Papyrs API for, with concrete tasks.
★ Intranet Page Management
Create and manage intranet pages with content widgets, layout, permissions, and notifications. POST /pages/create/ creates pages with title, json content (columns of widgets), optional layout, permissions map, and notifications. Essential for programmatic content management and page automation.
POST /pages/create/ with title, json array of widget columns, permissions, and notifications
Widget Content Management
Manage individual widgets (text boxes, headings, attachments) on pages. POST /page/{page_id}/paragraph/create/ adds text content, POST /attachment/create/ uploads files, and UPDATE endpoints modify existing widgets. Note that updating changes the widget ID.
POST /page/{page_id}/paragraph/create/?format=html with widget.val containing HTML or text content
Form Record Retrieval
Retrieve form submissions from pages with pagination. GET /pages/records/{page_id}/ returns arrays of form records with field-value pairs, supporting page and items_per_page parameters (1-250 items). Essential for collecting and processing user-submitted data.
GET /pages/records/{page_id}/?page=0&items_per_page=50 to retrieve paginated form records
Intranet Search
Search the intranet for pages, comments, form entries, people, or files using Papyrs' built-in search engine. GET /search/query/?q=keyword returns results with weight (relevance), category (Page, File, Contact, Form, Comment), description, and link.
GET /search/query/?q=budget to search for budget-related content across all categories
Agent-Driven Intranet Automation via Jentic
An AI agent managing team intranet operations can create pages, upload files, search content, and post updates through Jentic without exposing the auth_token in agent context. Jentic resolves intents like 'post to activity stream' to the right Papyrs endpoint.
Search Jentic for 'create intranet page', load the POST /pages/create/ schema, and execute
19 endpoints — jentic publishes the only available openapi specification for papyrs api, keeping it validated and agent-ready.
METHOD
PATH
DESCRIPTION
/pages/get/{page_id}/
Get page details with widgets
/pages/all/
Get all visible pages
/pages/create/
Create a new page
/pages/delete/{page_id}/
Delete a page
/pages/records/{page_id}/
List all records for a page
/page/{page_id}/paragraph/get/{widget_id}/
Get a paragraph widget
/page/{page_id}/paragraph/create/
Create a paragraph widget
/page/{page_id}/paragraph/update/{widget_id}/
Update a paragraph widget
/page/{page_id}/paragraph/delete/{widget_id}/
Delete a paragraph widget
/page/{page_id}/heading/get/{widget_id}/
Get a heading widget
/page/{page_id}/heading/create/
Create a heading widget
/page/{page_id}/attachment/get/{widget_id}/
Get an attachment widget
/page/{page_id}/attachment/create/
Upload a file attachment
/search/query/
Search the intranet
/people/all/
Get all people
/people/delete/{user_id}/
Delete a user
/feed/post/
Post to the Activity Stream
/feed/post/{page_id}/
Post to a page discussion
/pages/get/{page_id}/
Get page details with widgets
/pages/all/
Get all visible pages
/pages/create/
Create a new page
/pages/delete/{page_id}/
Delete a page
/pages/records/{page_id}/
List all records for a page
/page/{page_id}/paragraph/get/{widget_id}/
Get a paragraph widget
/page/{page_id}/paragraph/create/
Create a paragraph widget
/page/{page_id}/paragraph/update/{widget_id}/
Update a paragraph widget
What agents get from Jentic-routed access to this vendor.
Setup
Wiring the Papyrs API by hand means passing its auth_token as a query parameter, resolving your per-site group_name host, and shaping the nested page and widget routes yourself. Through Jentic you install once, import Papyrs from the API Directory, store the token once, and your agent calls it.
Permission scoping
Papyrs puts the page id in the URL path (/pages/get/{page_id}/ and /page/{page_id}/paragraph/...), so a rule can pin your agent to one page: it can read and add paragraphs and headings there. You choose the operations it may call, so destructive ones like page deletion or paragraph deletion are not included unless you add them.
Credential isolation
Your Papyrs auth_token is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
Intent-based discovery
Agents search Jentic by intent such as 'create an intranet page' or 'add a paragraph to a page', and Jentic returns the matching Papyrs operation with its input schema so the agent calls the right endpoint without browsing the reference docs.
Alternatives and complements available in the Jentic catalogue.
Specific to using Papyrs API through Jentic.
Why is there no official OpenAPI spec for Papyrs API?
Papyrs does not publish a complete OpenAPI specification for their API. Jentic generates and maintains this spec so that AI agents and developers can call Papyrs API via structured tooling. Get started with Jentic One, the self-hosted execution layer.
What authentication does the Papyrs API use?
The Papyrs API uses an API token passed as the auth_token query parameter. Through Jentic, the token is stored in the encrypted vault and injected at execution time so it never enters the agent's prompt context.
How do I create a page with content?
POST /pages/create/ accepts title, json (array of widget columns), optional layout, permissions, and notifications. The json field contains arrays of widgets with classname, id, and val properties defining the page content.
What happens when I update a widget?
When you POST to update endpoints like /page/{page_id}/paragraph/update/{widget_id}/, the widget ID changes. The response includes version_of_id containing the original widget ID before the update.
What are the rate limits?
Papyrs API has a default rate limit of 6 requests per 60 seconds. Exceeding this returns a 429 Too Many Requests error. Spread requests across time or use webhooks for real-time updates instead of polling.
Can I retrieve form submissions?
Yes. GET /pages/records/{page_id}/ returns all form records submitted on a page with pagination support (page and items_per_page parameters). Returns an array of records, each containing field-value pairs.
Can I limit what my agent is allowed to do with the Papyrs API?
Yes. Because you run Jentic One yourself, your own rules decide which Papyrs operations and credentials the agent may use. Since Papyrs puts the page id in the URL path, such as /pages/get/{page_id}/ and /page/{page_id}/paragraph/create/, you can pin the agent to a single page and allow only reads and adding paragraphs or headings there. Destructive operations like deleting a page or a paragraph stay out of reach unless you explicitly add them to the agent's allowed set.
Know of an official OpenAPI document? Contribute it →
For Agents
Manage intranet pages, widgets, records, search, people, and activity feed across 19 endpoints.
Use for: I need to create a new intranet page, Add a text box to a page, Upload a file attachment, Search the intranet for specific content
Not supported: Does not handle billing, site settings, or SSO configuration - use for content management, search, and activity stream only.
Jentic publishes the only available OpenAPI specification for Papyrs API, keeping it validated and agent-ready. The Papyrs API allows developers to integrate services and apps with Papyrs intranet, providing endpoints for managing pages, widgets (text boxes, headings, attachments), records, search, people, and activity feed. It powers intranet automation, content management, and team collaboration workflows.
This API is usable in Jentic One now. Its AI-readiness score against Jentic's framework shows where it stands today and where improvements would make it even easier for agents to use.
/page/{page_id}/paragraph/delete/{widget_id}/
Delete a paragraph widget
/page/{page_id}/heading/get/{widget_id}/
Get a heading widget
/page/{page_id}/heading/create/
Create a heading widget
/page/{page_id}/attachment/get/{widget_id}/
Get an attachment widget
/page/{page_id}/attachment/create/
Upload a file attachment
/search/query/
Search the intranet
/people/all/
Get all people
/people/delete/{user_id}/
Delete a user
/feed/post/
Post to the Activity Stream
/feed/post/{page_id}/
Post to a page discussion
Base layer of spec validity and structural soundness.
Aggregated quality score from linter diagnostics, weighted by severity.
Percentage of `$ref` references that resolve successfully.
Checks whether the API description parses successfully and conforms to its declared specification (e.g., OpenAPI).
Structural correctness score based on schema issues using logarithmic dampening.
Clarity, completeness, and ingestion readiness for developers and tooling.
How richly the API is illustrated with examples.
Percentage of examples that conform to their schemas.
Percentage of operations with complete response definitions (success, client error, server error).
Health of API ingestion, bundling, and resolution within Jentic pipelines.
Semantic breadth, depth, and agent comprehension for AI systems.
Coverage of descriptions across API elements.
Coverage of RFC 9457 Problem Details for error responses.
Coverage, uniqueness, and casing consistency of operationIds for AI inference.
Coverage of summaries across operations/tags/info.
Functional utility, complexity comfort, and AI orchestration readiness.
Agent comfort level based on API operational and structural complexity.
Trust, risk posture, and security compliance.
Average quality of security schemes based on authentication method strength (weakest link for OAuth2).
Findability, semantic richness, and reasoning readiness.
Clarity and depth of descriptions across API elements.
Score it yourself
Every API in the directory is allowlisted, so you can re-score it with no key required.
npx @jentic/api-scorecard-cli score <openapi-url>