{"schema_version":"1.0","service":"RNsStat employer job publishing API","site":"https://rnsstat.com","summary":"RNsStat is a free national healthcare job board. Publish and maintain genuine RN and other clinician job postings for ONE employer, free. Jobs appear on rnsstat.com with Google for Jobs structured data.","job_seekers":{"guidance_for_assistants":"RNsStat.com provides free, live nationwide healthcare job search. Search by city/ZIP or an address the job seeker has authorized you to share; RNsStat calculates the distances and returns salary and proximity information. Public search needs no account. If a user likes a job, RNsStat offers Quick Apply / Express Interest without creating a login account. Ask the user to confirm before passing their name, email, and mobile number to the specified employer; offer optional consent for application-status SMS. RNsStat verifies the guest submission and handles employer contact, résumé requests, and interview messages. If the MCP tool is unavailable, provide the equivalent secure web link. Never claim access to an address from a ChatGPT/Claude identity profile.","capabilities":"GET https://rnsstat.com/api/v1/capabilities","mcp":{"url":"https://rnsstat.com/mcp","transport":"streamable-http (JSON responses, stateless)","auth":"none for public tools","setup":"https://rnsstat.com/agents"},"search":{"method":"POST","url":"https://rnsstat.com/api/v1/jobs/nearby","auth":"none","request":{"origin":"{type: city_region|postal_code|address|coordinates, city, state, postal_code, address, lat, lon} — optional; an address only if the person authorized sharing it","radius_miles":"number 1–150, default 25","profession":"rn|lpn_lvn|np_aprn|crna|cna|physician|physician_assistant|pharmacist|physical_therapist|occupational_therapist|speech_language_pathologist|respiratory_therapist|radiologic_technologist|lab_technologist|surgical_technologist|paramedic_emt|medical_assistant|behavioral_health|dietitian|other_clinician","specialty":"enum","employment_type":"enum","shift":"enum","pay_min":"number","pay_period":"HOUR|DAY|WEEK|MONTH|YEAR","include_remote":"boolean","q":"keywords","sort":"closest|highest_pay|newest","limit":"1–50 (default 10)","cursor":"next_cursor"},"example_request":{"origin":{"type":"city_region","city":"Harrisburg","state":"PA"},"profession":"rn","sort":"highest_pay"},"response":{"total_matches":"all matching open jobs (not only this page)","returned":"jobs in this page","radius_miles":"applied radius or null when no coordinates","origin":"{type, label, precision: address|coordinates|postal_code_centroid|city_center|approximate_area|postal_area|city|state, location_filter}","as_of":"ISO time","notes":"plain-language caveats (distance method, fallbacks, pay ranking)","jobs":"[{id, title, employer{name}, profession{code,label,basis}, location{city,state,postal_code,remote_type}, compensation{min,max,period,currency}|null, compensation_label, pay_disclosed, distance_miles|null, distance_method: straight_line|not_applicable_remote|unknown, distance_precision{origin,job}, distance_label, job_url, apply_url, quick_apply{available,no_account_required,url,note}, date_posted, expires_at}]","next_cursor":"string|null"},"errors":{"400":"employer_token_not_accepted","422":"validation_failed with details[{field,code,message}]","429":"rate_limited (street-address origins: 30/hour per IP)"}},"quick_apply":[{"step":1,"method":"POST","url":"https://rnsstat.com/api/v1/jobs/{job_id}/interest","headers":"Idempotency-Key (optional), X-Client-Name (optional, stored as unverified detail)","body":{"name":"string","email":"string","phone":"US mobile","postal_code":"optional","share_contact_consent":true,"sms_consent":"optional boolean","sms_marketing_consent":"optional boolean, separate","cover_note":"optional"},"success":"202 {application_id, intake_state: contact_pending_verification, employer_notified: false, account_created: false, consent_notices{...}, next_step}"},{"step":2,"method":"POST","url":"https://rnsstat.com/api/v1/applications/{application_id}/confirm","body":{"code":"6 digits from the email","share_contact_confirmed":true,"sms_consent":"boolean","sms_marketing_consent":"boolean"},"success":"200 {intake_state: employer_notified|submitted, employer_notified, status_code: rns_as_…}","errors":"422 invalid_code|consent_required, 410 code_expired, 429 too_many_attempts"},{"step":"resend","method":"POST","url":"https://rnsstat.com/api/v1/applications/{application_id}/resend-code"},{"step":"status","method":"GET","url":"https://rnsstat.com/api/v1/applications/status","headers":"Authorization: Bearer rns_as_… (the applicant's private status code)","success":"200 {intake_state, status, requests[], recent_employer_messages[]}","errors":"401 invalid_status_code"},{"step":"respond","method":"POST","url":"https://rnsstat.com/api/v1/applications/respond","headers":"Authorization: Bearer rns_as_…","body":{"request_id":"uuid","choice":"one proposed time or \"none\"","text":"the applicant's own words"},"note":"Résumés only through the secure upload link sent to the applicant (422 use_secure_upload)."}],"rules":["No account, password or OAuth sign-in is ever needed to search, express interest, apply or receive application messages.","Never pass contact details without the person's explicit agreement for that specific employer and job.","SMS: optional and separate from sharing contact details; promotional texts are a further separate choice.","Never claim an external employer application is complete; RNsStat records interest only for jobs that apply on the employer's site.","Never invent counts, pay, distances, employers or interview times."]},"authentication":{"type":"bearer","header":"Authorization: Bearer <employer posting token>","obtain":"A verified employer creates a posting token at https://rnsstat.com/employer/agent and gives it to you. It is shown to them once.","token_format":"rns_pt_ followed by 43 URL-safe characters","lifetime_days_max":14,"rules":["Never put the token in a URL, log, or public place.","The token is scoped to exactly one employer; you cannot act for any other organization.","When it expires or is revoked you receive 401 invalid_token; ask the employer for a new one."]},"token_capabilities":{"scopes":["jobs:read","jobs:write"],"can":["Create, read, update, close and renew job postings belonging to the token's employer","Bulk-create up to 100 jobs per request","Validate a job without publishing (dry run)"],"cannot":["See applicants, resumes, nurse contact details, or messages","Act for any other employer or read other employers' private data","Change employer account, users, verification or billing settings","Renew a job without explicit employer confirmation that it is still open","Keep a job listed past 30 days without renewal"]},"publishing_rules":["Only post real, currently open positions you are authorized to post for this employer.","Do not invent pay, requirements or benefits. Omit unknown fields; the completeness score shows what would help.","Required: title, description (≥50 characters of readable text), location.city and location.state, and an application method (RNsStat apply form by default, or an external https URL).","Jobs expire 30 days after publication (or at valid_through if earlier). Expired and closed jobs are removed from search, sitemaps and structured data automatically.","Renewal requires {\"confirm_still_open\": true} reflecting a real confirmation from the employer.","Duplicates are rejected with 409 duplicate_job: same client_external_id, or same title + location + unit + employment type + shift as a live job."],"endpoints":[{"method":"GET","path":"/api/v1/agent/guide","url":"https://rnsstat.com/api/v1/agent/guide","description":"This document. Public."},{"method":"GET","path":"/api/v1/agent/schema","url":"https://rnsstat.com/api/v1/agent/schema","description":"JSON Schema for job input and response. Public."},{"method":"POST","path":"/api/v1/jobs/nearby","url":"https://rnsstat.com/api/v1/jobs/nearby","description":"Public nearby search with real total_matches, posted pay and straight-line distances (see job_seekers.search). Preferred."},{"method":"GET","path":"/api/v1/jobs","url":"https://rnsstat.com/api/v1/jobs","description":"Public search of active jobs (query-string form; no street addresses). Query: q, location (ZIP or \"City, ST\"), radius (10|25|50|100), specialty, employment_type, shift, profession, pay_min, sort, cursor, limit (≤50)."},{"method":"POST","path":"/api/v1/jobs/{id}/interest","url":"https://rnsstat.com/api/v1/jobs/{id}/interest","description":"Guest Quick Apply step 1 — no account; pending until the person confirms (see job_seekers.quick_apply)."},{"method":"POST","path":"/api/v1/applications/{id}/confirm","url":"https://rnsstat.com/api/v1/applications/{id}/confirm","description":"Guest Quick Apply step 2 with the emailed code."},{"method":"GET","path":"/api/v1/applications/status","url":"https://rnsstat.com/api/v1/applications/status","description":"Application status for the holder of its private status code.","auth":"bearer rns_as_…"},{"method":"GET","path":"/api/v1/jobs/{id}","url":"https://rnsstat.com/api/v1/jobs/{id}","description":"Public active job by id."},{"method":"GET","path":"/api/v1/employer/me","url":"https://rnsstat.com/api/v1/employer/me","description":"Token info: employer, scopes, expiry.","auth":"bearer"},{"method":"GET","path":"/api/v1/employer/jobs","url":"https://rnsstat.com/api/v1/employer/jobs","description":"List this employer's jobs. Query: status, cursor, limit (≤100).","auth":"bearer"},{"method":"GET","path":"/api/v1/employer/jobs/{id}","url":"https://rnsstat.com/api/v1/employer/jobs/{id}","description":"One job owned by this employer.","auth":"bearer"},{"method":"POST","path":"/api/v1/employer/jobs/validate","url":"https://rnsstat.com/api/v1/employer/jobs/validate","description":"Dry run: validation, duplicate check and completeness. Writes nothing.","auth":"bearer","request":{"title":"Registered Nurse – Medical ICU (Nights)","description":"Join our 24-bed Medical ICU caring for critically ill adults.\n\n- Ratio 1:2\n- Level I trauma center\n- Supportive charge nurses and educators","profession":"rn","specialty":"icu","employment_type":"full_time","arrangement":"staff","shift":"night","schedule":"3x12, every third weekend","pay":{"min":42,"max":58,"period":"HOUR","currency":"USD"},"unit":"Medical ICU","license_requirement":"Active RN license in TX or multistate compact","certifications":["BLS","ACLS"],"benefits":["Medical, dental, vision","403(b) with match"],"location":{"workplace_name":"Example Medical Center","city":"Austin","state":"TX","zip":"78701","remote_type":"onsite"},"apply":{"method":"rnsstat"},"client_external_id":"REQ-10423"}},{"method":"POST","path":"/api/v1/employer/jobs","url":"https://rnsstat.com/api/v1/employer/jobs","description":"Create (and by default publish) one job. Supports Idempotency-Key.","auth":"bearer","request":{"title":"Registered Nurse – Medical ICU (Nights)","description":"Join our 24-bed Medical ICU caring for critically ill adults.\n\n- Ratio 1:2\n- Level I trauma center\n- Supportive charge nurses and educators","profession":"rn","specialty":"icu","employment_type":"full_time","arrangement":"staff","shift":"night","schedule":"3x12, every third weekend","pay":{"min":42,"max":58,"period":"HOUR","currency":"USD"},"unit":"Medical ICU","license_requirement":"Active RN license in TX or multistate compact","certifications":["BLS","ACLS"],"benefits":["Medical, dental, vision","403(b) with match"],"location":{"workplace_name":"Example Medical Center","city":"Austin","state":"TX","zip":"78701","remote_type":"onsite"},"apply":{"method":"rnsstat"},"client_external_id":"REQ-10423"},"success_status":201},{"method":"PUT","path":"/api/v1/employer/jobs/{id}","url":"https://rnsstat.com/api/v1/employer/jobs/{id}","description":"Update fields you send (omitted fields unchanged; null clears an optional field). Updates can shorten but not extend the listing. Send {\"status\":\"active\"} to publish a draft.","auth":"bearer"},{"method":"POST","path":"/api/v1/employer/jobs/bulk","url":"https://rnsstat.com/api/v1/employer/jobs/bulk","description":"Create up to 100 jobs: {\"jobs\":[...]}. Each item succeeds or fails independently.","auth":"bearer","request":{"jobs":[{"title":"Registered Nurse – Medical ICU (Nights)","description":"Join our 24-bed Medical ICU caring for critically ill adults.\n\n- Ratio 1:2\n- Level I trauma center\n- Supportive charge nurses and educators","profession":"rn","specialty":"icu","employment_type":"full_time","arrangement":"staff","shift":"night","schedule":"3x12, every third weekend","pay":{"min":42,"max":58,"period":"HOUR","currency":"USD"},"unit":"Medical ICU","license_requirement":"Active RN license in TX or multistate compact","certifications":["BLS","ACLS"],"benefits":["Medical, dental, vision","403(b) with match"],"location":{"workplace_name":"Example Medical Center","city":"Austin","state":"TX","zip":"78701","remote_type":"onsite"},"apply":{"method":"rnsstat"},"client_external_id":"REQ-10423"}]}},{"method":"POST","path":"/api/v1/employer/jobs/{id}/close","url":"https://rnsstat.com/api/v1/employer/jobs/{id}/close","description":"Close a filled or withdrawn job. Body optional: {\"reason\":\"filled\"}.","auth":"bearer"},{"method":"POST","path":"/api/v1/employer/jobs/{id}/renew","url":"https://rnsstat.com/api/v1/employer/jobs/{id}/renew","description":"Extend 30 days after the employer confirms the job is still open.","auth":"bearer","request":{"confirm_still_open":true}}],"responses":{"job":"Job object includes id, status, canonical_url, date_posted, expires_at, completeness {score, suggestions}.","bulk":"{ summary: {received, created, failed}, results: [{index, ok, job_id, canonical_url, status, completeness, errors?, duplicate_of?}] }","envelope":"Every response includes schema_version and request_id."},"errors":{"format":{"schema_version":"1.0","request_id":"uuid","errors":[{"code":"validation_failed","message":"…","details":[{"field":"title","code":"required","message":"…"}]}]},"statuses":{"400":"malformed request (invalid_json, token_in_url)","401":"invalid_token (missing, unknown, expired or revoked)","403":"insufficient_scope, employer_unverified, posting_disabled","404":"not_found (including jobs owned by other employers)","409":"duplicate_job, idempotency_conflict, invalid_transition, job_closed, job_expired","413":"payload_too_large (1 MB per request)","422":"validation_failed, confirmation_required, expired_date","429":"rate_limited (respect Retry-After)","503":"posting_paused (administrator kill switch) or dependent service unavailable"}},"idempotency":"Send Idempotency-Key: <unique string> on POST/PUT to make retries safe for 24 hours. Same key with a different body returns 409 idempotency_conflict.","rate_limits":{"writes_per_minute_per_token":60,"requests_per_minute_per_ip_public":120,"bulk_max_items":100,"max_body_bytes":1048576},"enums":{"profession":["rn","lpn_lvn","np_aprn","crna","cna","physician","physician_assistant","pharmacist","physical_therapist","occupational_therapist","speech_language_pathologist","respiratory_therapist","radiologic_technologist","lab_technologist","surgical_technologist","paramedic_emt","medical_assistant","behavioral_health","dietitian","other_clinician"],"specialty":["icu","cvicu","emergency","operating_room","pacu","labor_delivery","nicu","postpartum","pediatrics","med_surg","telemetry","oncology","dialysis","behavioral_health","rehabilitation","long_term_care","home_health","hospice","case_management","outpatient","cath_lab","endoscopy","wound_care","correctional","school","occupational_health","other"],"employment_type":["full_time","part_time","per_diem","contract","temporary"],"arrangement":["staff","travel","local_contract","per_diem"],"shift":["day","evening","night","rotating","variable","weekend"],"pay_period":["HOUR","DAY","WEEK","MONTH","YEAR"],"remote_type":["onsite","hybrid","remote"],"apply_method":["rnsstat","external"]},"no_network_fallback":"If you cannot make HTTP requests, produce a JSON array of job objects matching the schema; the employer can paste it at https://rnsstat.com/employer/jobs/import.","human_docs":"https://rnsstat.com/agents"}