Centene Provider Carrier Entity Search (PCES) Extract API

Scroll-based bulk extract over the Provider Carrier Entity Search index. POST /extract/initiate opens a scroll context and returns a scrollId; DELETE /extract/clear/{scrollId} releases it. Centene does not publish how long a scrollId stays valid.

Operations 3

POST /extract/initiate Send a query to PCES Extract API Interface #
DELETE /extract/clear/{scrollId} Clears the Extract request from the cache #

Work with this as data

Every API 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 apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/centene-pces-extract"
All apis
curl "https://apis.io/api/v1/apis?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.

OpenAPI Specification

centene-pces-extract-openapi.yaml Raw ↑
openapi: 3.1.0
info:
  title: Provider Carrier Entity Search (PCES) Extract API
  description: The PCES Extract API is a set of endpoints for supporting the extracting of large data sets
  contact:
    email: provider_search_support@centene.com
  version: 0.0.6
paths:
  /extract/initiate:
    post:
      tags:
        - Extract
      summary: Send a query to PCES Extract API Interface
      operationId: Execute Query and Start Extract Process
      parameters:
        - name: index
          in: query
          required: false
          description: "query param to search the new index: carrier_entity_location_active"
          schema:
            type: string
            enum:
              - cel
      requestBody:
        description: Centene Search DSL Request
        content:
          application/json:
            schema:
              type: object
            examples:
              NameMatch Query:
                description: "The nameMatch Query can be used to match against name fields in the JSON objects. The nameMatch query uses a predefined matching algorithm"
                value:
                  customQuery:
                    nameMatch:
                      field: "locations.name"
                      value: "Walgreens"
                      boost: 1
              Value Query:
                description: 'Used to apply logic that restricts a provided field in the document to an **exact** value. The Value query should only be used against fields that have an exact value representation in Elasticsearch such as fields mapped as keyword or number.'
                value:
                  customQuery:
                    value:
                      field: providerName
                      value: Allwell Behavioral Health Services
              Values Query:
                description: 'Used to apply logic that restricts a provided field in the document to an array of **exact** values. The Values query should only be used against fields that have an exact value representation in Elasticsearch such as keyword or number.'
                value:
                  customQuery:
                    values:
                      field: providerName
                      values: ["Minute Clinic", "CVS", "Walgreens"]
              Range DateTime Query:
                description: 'Used to apply logic that restricts a provided field to a given dateTime range.'
                value:
                  customQuery:
                    range:
                      field: locations.eligibleForDisplay.startDate
                      type: datetime
                      lte: '2017-01-01T12:00:00'
              Range Date Query:
                description: 'Used to apply logic that restricts a provided field to a given  date range.'
                value:
                  customQuery:
                    range:
                      field: locations.eligibleForDisplay.endDate
                      type: date
                      gt: '2017-01-01'
              Range Time Query:
                description: 'Used to apply logic that restricts a provided field to a given time range.'
                value:
                  customQuery:
                    range:
                      field: locations.providerOfficeHours.monday.search_isoClose
                      type: time
                      gt: '17:00:00'
                      lte: '19:00:00'
              Range Integer Query:
                description: 'Used to apply logic that restricts a provided field to a given numerical range.'
                value:
                  customQuery:
                    range:
                      field: locations.panelCycles.lowestAge
                      type: integer
                      gte: '2'
                      lt: '18'
              Range Text Query:
                description: 'Used to apply logic that restricts a provided field to a given text range.'
                value:
                  customQuery:
                    range:
                      field: modalities.modalityDescriptionFull
                      type: text
                      gte: a
                      lt: m
              GeoFilter Radius Query:
                description: 'Used to apply logic that restricts a provided field by a geometric-defined limit, ie radius, box, or other shape. Note that geoFilters can only be applied to fields mapped as geo_point.'
                value:
                  customQuery:
                    geoFilter:
                      field: locations.address.search_coordinates
                      radius:
                        coordinates: '40, -80'
                        distance: 200mi
              GeoFilter BoundingBox Query:
                description: 'Used to apply logic that restricts a provided field by a geometric-defined limit, ie radius, box, or other shape. Note that geoFilters can only be applied to fields mapped as geo_point.'
                value:
                  customQuery:
                    geoFilter:
                      field: locations.address.search_coordinates
                      boundingBox:
                        topLeft: '41.12, -71.34'
                        bottomRight: '41, -90'
              Exists Query:
                description: 'Only includes results which have a value for the specified field.'
                value:
                  customQuery:
                    exists:
                      field: locations.address.addressLine1
              Nested Query:
                description: 'Specifies a list where you can declare a nested path that corresponds to a list of documents on the main provider document (ie, locations is a list of locations documents for a provider), and whether to filter the API results to only include matching results for that list.'
                value:
                  customQuery:
                    nested:
                      path: locations
                      query:
                        value:
                          field: locations.name
                          value: Mercy
              Nested Query With MatchedList:
                description: 'Specifies a list where you can declare a nested path that corresponds to a list of documents on the main provider document (ie, locations is a list of locations documents for a provider), and whether to filter the API results to only include matching results for that list.'
                value:
                  customQuery:
                    nested:
                      path: locations
                      matchedList:
                        name: locationsNested
                        size: 100
                        fields:
                          - locations.name
                          - locations.locationId
                          - locations.taxIdNumber
                      query:
                        value:
                          field: locations.name
                          value: Mercy
              RelevancyByDistance Query:
                description: 'Documents will be sorted based on distance from the specified field, according to the custom parameters set.'
                value:
                  customQuery:
                    relevancyByDistance:
                      field: locations.address.search_coordinates
                      origin: '38, -90'
                      scale: 5mi
                      offset: 3mi
                      decay: 0.5
                      minDistanceScore: 1
                      query:
                        value:
                          field: locations.search_root_entityType
                          value: prac
              constantScore:
                description: "Used to apply logic that Wraps a filter query and returns every matching document with a relevance score equal to the boost parameter value"
                value:
                  customQuery:
                    constantScore:
                      boost: 2
                      query:
                        value:
                          field: locations.name
                          value: Mercy
              RequireAll Query:
                description: 'A document must match all criteria in a requireAll to show up in results.'
                value:
                  customQuery:
                    requireAll:
                      criteria:
                        - value:
                            field: carrierId
                            value: '8135'
                        - value:
                            field: entityId
                            value: '3799665'

              RequireAny Query:
                description: 'Any criteria in a requireAny Query can be true for a document in order for that document to be returned. A minimum of one of the criteria must be true.'
                value:
                  customQuery:
                    requireAny:
                      criteria:
                        - value:
                            field: carrierId
                            value: '8135'
                        - value:
                            field: entityId
                            value: '3799665'

              Exclude Query:
                description: 'An exclude query negates a query in its criteria. In other words, only documents that do not match the criteria will be returned in results.'
                value:
                  customQuery:
                    exclude:
                      criteria:
                        - value:
                            field: carrierId
                            value: '8135'

              Filter Aggregation:
                description: 'Filter Aggregations are used to insert custom query syntax at an aggregation level to limit the scope of the matching documents for that aggregation and any pipelined aggregations.'
                value:
                  customQuery:
                    value:
                      field: entityType
                      value: prac
                  aggs:
                    - name: carrierId
                      aggType:
                        filter:
                          value:
                            field: carrierId
                            value: '71'
              Nested Aggregation:
                description: 'Nested Aggregations are used to get aggregate values about the nested path.'
                value:
                  customQuery:
                    value:
                      field: entityType
                      value: prac
                  aggs:
                    - name: hospitalAffiliations
                      aggType:
                        nested:
                          path: hospitalAffiliations
              Values Aggregation:
                description: 'Values Aggregations are used to get aggregate values about the results of a query. And example would be the top 500 unique specialties.'
                value:
                  customQuery:
                    value:
                      field: entityType
                      value: prac
                  aggs:
                    - name: entityId
                      aggType:
                        valuesAgg:
                          field: entityId
                          size: 10
              Multiple Aggregations:
                description: 'You can specify more than one aggregation in the aggs array'
                value:
                  customQuery:
                    value:
                      field: entityType
                      value: prac
                  aggs:
                    - name: entityId
                      aggType:
                        valuesAgg:
                          field: entityId
                          size: 10
                    - name: carrierId
                      aggType:
                        valuesAgg:
                          field: carrierId
                          size: 10
              Pipelined Aggregations:
                description: 'Also known as subAggregations, pipelined aggs allow you to gather aggregate data off an already aggregated data set'
                value:
                  customQuery:
                    value:
                      field: entityType
                      value: prac
                  aggs:
                    - name: locations.eligibleForDisplay
                      aggType:
                        filter:
                          value:
                            field: locations.eligibleForDisplay.eligibleIndicator
                            value: Y
                      aggs:
                        - name: locations.address
                          aggType:
                            valuesAgg:
                              field: locations.address.city
                              size: 100000000
              All Hidden Fields:
                description: The above is the JSON structure for every hidden field.  Please do not try to run it, it is not a valid query.

                value:
                  carrierEntity:
                    locations:
                      address:
                        search_coordinates: geo_point
                        practitionerOfficeHours:
                          friday:
                            search_isoClose: date (HH:mm:ss)
                            search_isoOpen: date (HH:mm:ss)
                          monday:
                            search_isoClose: date (HH:mm:ss)
                            search_isoOpen: date (HH:mm:ss)
                          saturday:
                            search_isoClose: date (HH:mm:ss)
                            search_isoOpen: date (HH:mm:ss)
                          sunday:
                            search_isoClose: date (HH:mm:ss)
                            search_isoOpen: date (HH:mm:ss)
                          thursday:
                            search_isoClose: date (HH:mm:ss)
                            search_isoOpen: date (HH:mm:ss)
                          tuesday:
                            search_isoClose: date (HH:mm:ss)
                            search_isoOpen: date (HH:mm:ss)
                          wednesday:
                            search_isoClose: date (HH:mm:ss)
                            search_isoOpen: date (HH:mm:ss)
                        providerOfficeHours:
                          friday:
                            search_isoClose: date (HH:mm:ss)
                            search_isoOpen: date (HH:mm:ss)
                          monday:
                            search_isoClose: date (HH:mm:ss)
                            search_isoOpen: date (HH:mm:ss)
                          saturday:
                            search_isoClose: date (HH:mm:ss)
                            search_isoOpen: date (HH:mm:ss)
                          sunday:
                            search_isoClose: date (HH:mm:ss)
                            search_isoOpen: date (HH:mm:ss)
                          thursday:
                            search_isoClose: date (HH:mm:ss)
                            search_isoOpen: date (HH:mm:ss)
                          tuesday:
                            search_isoClose: date (HH:mm:ss)
                            search_isoOpen: date (HH:mm:ss)
                          wednesday:
                            search_isoClose: date (HH:mm:ss)
                            search_isoOpen: date (HH:mm:ss)
                        search_root_attributes:
                          fields:
                            name: String
                            value: String
                            value_date: date
                            value_number: long
                          name: String
                        search_root_entityType: String
                        search_root_pracFullAlternateName:
                          fields:
                            nameMatch: String
                            suggest: String
                        search_root_pracFullName:
                          fields:
                            nameMatch: String
                            suggest: String
                        search_root_providerName:
                          fields:
                            nameMatch: String
                            suggest: String
                    search_id: String
                    search_pracFullAlternateName:
                      fields:
                        nameMatch: String
                        suggest: String
                    search_pracFullName:
                      fields:
                        nameMatch: String
                        suggest: String
              AlphaFilter Query:
                description: "The Alpha Filter Query can be used to Filter against name fields in the JSON objects. The Alpha Filter query uses prefix term to filter name fields by the first character, only documents that match the criteria will be returned in results."
                value:
                  customQuery:
                    alphaFilter:
                      field: "providerName"
                      value: "a"

        required: true
      responses:
        '200':
          description: Search accepted, executed, results returned
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                type: object
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                type: string
  /extract/scroll/{scrollId}:
    get:
      tags:
        - Extract
      summary: returns the next set of data in the Extract request
      operationId: Execute Scroll and return next scroll set
      parameters:
        - in: path
          name: scrollId
          schema:
            type: string
          required: true
          description: Scroll ID that was returned in the response of the initiate/extract API call
      responses:
        '200':
          description: Search accepted, executed, results returned
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                type: object
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                type: string
  /extract/clear/{scrollId}:
    delete:
      tags:
        - Extract
      summary: 'Clears the Extract request from the cache'
      operationId: clear extract
      parameters:
        - in: path
          name: scrollId
          schema:
            type: string
          required: true
          description: Scroll ID that was returned in the last /scroll endpoint result you recieved
      responses:
        '200':
          description: 'Returns if the extract request was cleared or if the extract request already timed out'
          content:
            application/json: {}
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                type: object
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                type: string
components:
  securitySchemes:
    api_key:
      type: apiKey
      name: api_key
      in: header