A separate values check before your software acts.
Building a new integration? Start with the contract-2 developer guide for required fields, signing, complete response examples and error handling. The legacy sample below uses a different input format.
New: V5.8 signed checks with eleven values
Contract 2 compares possible outcomes with doing nothing. It checks scoped permission for the exact resource, operation, destination and record. It returns advice only: it does not connect to a target, grant permission or execute a tool.
Trusted-host registration is required for contract 2. A RapidAPI subscription alone is not permission to access another system. Register your trusted host with PROME. Registration sets the customer binding, allowed actors, resource IDs, operations, destinations and protected systems. The signing key must stay in your trusted backend, never with an AI agent. PROME registration does not independently establish legal ownership.
Use POST https://prome.ai/api/guardrail with a direct PROME customer key, or the existing RapidAPI endpoint below. Set contract_version to "2". For MCP, call care_core_check_signed_actions at https://prome.ai/api/mcp with a direct key, or https://prome.ai/api/marketplace-mcp with your RapidAPI key.
Read the exact contract-2 field reference · See a synthetic unsigned request · Review current tests and limits
The example intentionally returns needs_review without registered signed evidence. Do not invent measurements just to get a passing answer. Your host must obtain reliable observations and include all relevant people and possible outcomes. Missing real-world effects and false predictions can still mislead the checker.
Evidence signing for a registered backend
The envelope contains issuer, issued_at, expires_at and a lowercase hexadecimal signature. Times are Unix seconds; validity may not exceed 60 seconds. Remove only evidence.signature, then sign the canonical JSON object {"audience":"prome-care-core-contract-2","customer":REGISTERED_CUSTOMER_BINDING,"request":UNSIGNED_REQUEST} with HMAC-SHA256 using the registered 32-byte key. Canonical JSON uses sorted object keys, no spaces, ASCII escaping and no non-finite numbers. Measurements are exact integer or fraction strings, such as "0" or "1/2". Ask PROME for a signing interoperability check during registration.
There is no separate rights list or free-form tool code. Your executor must use the returned selected_tool exactly, verify the matching request hash, check current permission and facts again, and stop on redirects, missing information, expired evidence or a changed target. The API does not perform these execution checks for you. A saved result is not an execution token.
Operators can disable a registered issuer, rotate its key or advance its earliest accepted issue time through private deployment configuration. Changes take effect after deployment; evidence expires within 60 seconds. This pilot is not instant revocation for a safety-critical actuator. All outcomes remain authorized: false and executed: false.
No evidence-source or signature failure is a completed PROME policy evaluation. RapidAPI may still count gateway requests against your allowance. Use a new request ID for each new check.
Legacy contract 1: existing self-service integration
The instructions and copy-and-run sample below remain for existing V5 customers. They do not activate the new permission-aware contract.
Your software supplies numeric facts about an action. Care Core checks those facts against fixed core values. It returns a result and reasons. It does not read prompts, verify that your facts are true, or carry out an action.
Choose a plan on RapidAPI Open the API playgroundOne subscription. No second key to request.
- Sign up on RapidAPI and choose a plan.
- Copy your RapidAPI application key from its playground. Keep it private and use it only from your server or trusted agent.
- Send numeric facts to the API, or connect an agent using the setup below. MCP is a standard way for agents to use tools.
Pilot plans
| RapidAPI plan | Monthly price | Requests per month |
|---|---|---|
| BASIC | $0 | 100 |
| PRO | $29 | 10,000 |
| ULTRA (Business) | $199 | 100,000 |
The RapidAPI checkout shows which plans are currently available. Hard request limits: requests stop at your allowance, with no PROME request-overage charges. RapidAPI separately lists a bandwidth fee after 10 GB per billing cycle. Manage billing, changes and cancellation in your RapidAPI account. Access follows RapidAPI's active subscription rules.
Connect your software
Send a POST request to https://prome-care-core.p.rapidapi.com/api/rapidapi with these headers:
Content-Type: application/json X-RapidAPI-Host: prome-care-core.p.rapidapi.com X-RapidAPI-Key: YOUR_RAPIDAPI_KEY
The playground provides the full input form, a sample request and code examples. The sample uses invented facts to demonstrate the format; do not use those numbers as evidence about a real action.
Make your first test call
This Python 3 example uses only its built-in tools. It asks for your key without displaying it, downloads a complete synthetic example, and sends one test request. It does not control any software or machine. Run it on your server or computer, not in a public web page.
import getpass, json, urllib.request, urllib.error, uuid
key = getpass.getpass("RapidAPI key: ")
class NoRedirect(urllib.request.HTTPRedirectHandler):
def redirect_request(self, *args, **kwargs):
return None
client = urllib.request.build_opener(NoRedirect())
with urllib.request.urlopen(
"https://prome.ai/care-core/example-request.json", timeout=30
) as response:
facts = json.load(response)
facts["request_id"] = "test-" + uuid.uuid4().hex
request = urllib.request.Request(
"https://prome-care-core.p.rapidapi.com/api/rapidapi",
data=json.dumps(facts).encode(), method="POST",
headers={"Content-Type": "application/json",
"X-RapidAPI-Host": "prome-care-core.p.rapidapi.com",
"X-RapidAPI-Key": key})
try:
with client.open(request, timeout=30) as response:
result = json.load(response)
print(json.dumps(result, indent=2))
except (urllib.error.URLError, TimeoutError, ValueError):
print("Check unavailable or rejected. Stop; do not act.")
For this sample, expect decision: "passes_supplied_checks" and selected_action: "simulated-action". To test a hold, set the sample's catastrophic_risk to 1 and use a new request ID. Expect needs_review and no selected action.
Connect an AI agent
Add this remote MCP server to your agent. Use the same RapidAPI key as your subscription. Each check goes through RapidAPI, which checks your access and request allowance.
URL: https://prome.ai/api/marketplace-mcp Transport: Streamable HTTP Authorization: Bearer YOUR_RAPIDAPI_KEY Tool: care_core_check_actions
Supply the request object inside the tool's facts field. Discovering the tool does not prove your subscription is active: the first check verifies access through RapidAPI. Use this PROME endpoint, not RapidAPI's automatically generated MCP configuration, while its field layout is being resolved.
The tool arguments are {"facts": THE_COMPLETE_REQUEST_OBJECT}. Use a client that supports Streamable HTTP and a custom Authorization header. This is key-based access, not an OAuth sign-in flow. Do not put the key in a URL or shared configuration file.
Do not let an agent guess the safety measurements. Your trusted application must supply them. Each request sent through RapidAPI counts toward your allowance, including repeated requests. The MCP adapter rejects malformed facts before sending them to RapidAPI. PROME can return a saved result for an identical request ID, but that does not reverse the gateway's request count.
What the result means
passes_supplied_checks: the facts you supplied passed the implemented checks. This is not a guarantee of safety or permission to act.needs_review: stop and ask a person to review.- An error, timeout, missing fact or exhausted allowance also means stop. Never treat an unavailable check as approval.
Your application still controls permissions and execution. Care Core always reports authorized: false and executed: false. This is a pilot with no uptime or safety guarantee. Do not rely on it alone where people could be harmed.
Handle retries and errors safely
A successful HTTP response means the check completed, not that the action passed. MCP also uses isError: a completed hold is not a tool error. Require a completed response, the matching request ID, passes_supplied_checks, and a selected action from your original request. Missing, unexpected or incomplete results mean stop. Keep your own current facts and permission checks.
| Result | What to do |
|---|---|
| 401 / 403 | Check your key, active subscription and endpoint. Do not retry indefinitely. |
| 409 | The request ID was already used with different facts. Keep the same ID only for an exact retry. Use a new ID for a new check. |
| 413 / 415 / 422 | Fix the input size, JSON format or facts. Read the error and detail fields. Legacy contract 1 uses JSON numbers; contract 2 uses exact integer or fraction strings. All documented fields are required. |
| 429 | Your request limit was reached. Check your plan or allowance. Do not loop or treat this as approval. |
| 503 or timeout | Keep the action stopped. Retry the exact request at most twice with a short increasing delay; escalate if unavailable. |
A replayed result is a saved check, not a fresh reading of the world. Use a new request ID when facts change. Maximum input: 64 KiB. Legacy contract 1 permits 32 actions and 64 entity states; contract 2 permits 16 actions, 8 situations and 32 entities. Direct PROME URLs do not accept RapidAPI keys except the marketplace MCP endpoint above. Use the gateway URL for REST.
Data and privacy
Requests pass through RapidAPI and PROME's hosted service. PROME stores a customer identifier, usage, a request fingerprint and the check result. Do not put personal information or secrets in request IDs or action names. Your RapidAPI key is handled by RapidAPI; the checker uses a separate private customer record.
Existing direct PROME pilot keys continue to work at their original endpoints. They are separate from RapidAPI subscriptions and cannot bypass marketplace billing.