Remote Benefits API

List localized benefit offers by country, attach offers to employments using JSON Schema forms, and respond to annual benefit-renewal requests. Backed by Remote's in-country benefits infrastructure.

Remote Benefits API is one of 9 APIs that Remote publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

This API exposes 1 machine-runnable capability that can be deployed as REST, MCP, or Agent Skill surfaces via Naftiko.

Tagged areas include Benefits, Health, Pension, and Renewals. The published artifact set on APIs.io includes API documentation, an OpenAPI specification, and 1 Naftiko capability spec.

OpenAPI Specification

remote-benefits-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Remote Benefits API
  description: |
    List, select, and renew localized employee benefits across the countries
    Remote supports. Benefit offers and renewal requests use JSON Schema
    forms that vary per country and employment.
  version: '2026-05-22'
  contact:
    name: Remote API Support
    url: https://support.remote.com/
  x-logo:
    url: https://remote.com/favicon.ico

servers:
  - url: https://gateway.remote.com/v1
    description: Production
  - url: https://gateway.remote-sandbox.com/v1
    description: Sandbox

security:
  - BearerAuth: []

tags:
  - name: Benefit Offers
    description: Country and employment benefit offers
  - name: Benefit Renewals
    description: Annual benefit-renewal requests

paths:
  /benefit_offers:
    get:
      summary: List Benefit Offers
      description: List benefit offers grouped by country.
      operationId: listBenefitOffers
      tags: [Benefit Offers]
      parameters:
        - { name: country_code, in: query, schema: { type: string } }
      responses:
        '200':
          description: Benefit offers by country.
          content:
            application/json:
              schema: { $ref: '#/components/schemas/BenefitOfferCountrySummary' }

  /benefit_offers/by_employment:
    get:
      summary: List Benefit Offers By Employment
      operationId: listBenefitOffersByEmployment
      tags: [Benefit Offers]
      parameters:
        - { name: employment_id, in: query, required: true, schema: { type: string, format: uuid } }
      responses:
        '200':
          description: Benefit offers for the employment.
          content:
            application/json:
              schema: { $ref: '#/components/schemas/BenefitOfferList' }

  /benefit_offers/{employment_id}:
    parameters:
      - { name: employment_id, in: path, required: true, schema: { type: string, format: uuid } }
    get:
      summary: Get Employment Benefit Offers
      operationId: getEmploymentBenefitOffers
      tags: [Benefit Offers]
      responses:
        '200':
          description: Benefit offers.
          content:
            application/json:
              schema: { $ref: '#/components/schemas/BenefitOfferList' }
    put:
      summary: Upsert Employment Benefit Offers
      operationId: upsertEmploymentBenefitOffers
      tags: [Benefit Offers]
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        '200':
          description: Upserted.
          content:
            application/json:
              schema: { $ref: '#/components/schemas/BenefitOfferList' }

  /benefit_offers/{employment_id}/schema:
    parameters:
      - { name: employment_id, in: path, required: true, schema: { type: string, format: uuid } }
    get:
      summary: Get Employment Benefit Offers JSON Schema
      operationId: getEmploymentBenefitOffersSchema
      tags: [Benefit Offers]
      responses:
        '200':
          description: JSON Schema form.
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true

  /benefit_renewal_requests:
    get:
      summary: List Benefit Renewal Requests
      operationId: listBenefitRenewalRequests
      tags: [Benefit Renewals]
      parameters:
        - { name: country_code, in: query, schema: { type: string } }
        - { name: status, in: query, schema: { type: string, enum: [pending, in_progress, completed, expired] } }
      responses:
        '200':
          description: Benefit renewal requests.
          content:
            application/json:
              schema: { $ref: '#/components/schemas/BenefitRenewalList' }

  /benefit_renewal_requests/{benefit_renewal_request_id}:
    parameters:
      - { name: benefit_renewal_request_id, in: path, required: true, schema: { type: string, format: uuid } }
    get:
      summary: Show A Benefit Renewal Request
      operationId: showBenefitRenewalRequest
      tags: [Benefit Renewals]
      responses:
        '200':
          description: Benefit renewal request.
          content:
            application/json:
              schema: { $ref: '#/components/schemas/BenefitRenewalEnvelope' }

  /benefit_renewal_requests/{benefit_renewal_request_id}/schema:
    parameters:
      - { name: benefit_renewal_request_id, in: path, required: true, schema: { type: string, format: uuid } }
    get:
      summary: Show A Benefit Renewal Request Schema
      operationId: showBenefitRenewalRequestSchema
      tags: [Benefit Renewals]
      responses:
        '200':
          description: JSON Schema form.
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true

  /benefit_renewal_requests/{benefit_renewal_request_id}/response:
    parameters:
      - { name: benefit_renewal_request_id, in: path, required: true, schema: { type: string, format: uuid } }
    post:
      summary: Update A Benefit Renewal Request Response
      operationId: updateBenefitRenewalRequestResponse
      tags: [Benefit Renewals]
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        '200':
          description: Updated.
          content:
            application/json:
              schema: { $ref: '#/components/schemas/BenefitRenewalEnvelope' }

components:
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

  schemas:
    BenefitOffer:
      type: object
      properties:
        id: { type: string, format: uuid }
        country_code: { type: string }
        name: { type: string }
        provider: { type: string }
        tier:
          type: string
          enum: [basic, standard, premium]
        monthly_cost: { type: integer, description: Cost in smallest currency unit. }
        currency: { type: string }
        coverage_summary: { type: string }

    BenefitOfferList:
      type: object
      properties:
        data:
          type: object
          properties:
            benefit_offers:
              type: array
              items: { $ref: '#/components/schemas/BenefitOffer' }

    BenefitOfferCountrySummary:
      type: object
      properties:
        data:
          type: object
          properties:
            countries:
              type: array
              items:
                type: object
                properties:
                  country_code: { type: string }
                  benefit_offers_count: { type: integer }
                  has_health: { type: boolean }
                  has_dental: { type: boolean }
                  has_pension: { type: boolean }

    BenefitRenewal:
      type: object
      properties:
        id: { type: string, format: uuid }
        country_code: { type: string }
        status:
          type: string
          enum: [pending, in_progress, completed, expired]
        renewal_period_start: { type: string, format: date }
        renewal_period_end: { type: string, format: date }
        response: { type: object, additionalProperties: true }

    BenefitRenewalList:
      type: object
      properties:
        data:
          type: object
          properties:
            benefit_renewal_requests:
              type: array
              items: { $ref: '#/components/schemas/BenefitRenewal' }

    BenefitRenewalEnvelope:
      type: object
      properties:
        data:
          type: object
          properties:
            benefit_renewal_request: { $ref: '#/components/schemas/BenefitRenewal' }