code: def prefixes(self, ids = None, filter = None, offset = None,
                limit = None, sample = None, sort = None,
                order = None, facet = None, works = False, select = None,
                cursor = None, cursor_max = 5000, **kwargs):
          '''
          Search Crossref prefixes
          :param ids: [Array] DOIs (digital object identifier) or other identifiers
          :param filter: [Hash] Filter options. See examples for usage.
              Accepts a dict, with filter names and their values. For repeating filter names
              pass in a list of the values to that filter name, e.g.,
              `{'award_funder': ['10.13039/100004440', '10.13039/100000861']}`.
              See https://github.com/CrossRef/rest-api-doc
              for filter names and their descriptions and :func:`~habanero.Crossref.filter_names`
              and :func:`~habanero.Crossref.filter_details`
          :param offset: [Fixnum] Number of record to start at, from 1 to 10000
          :param limit: [Fixnum] Number of results to return. Not relevant when searching with specific dois. Default: 20. Max: 1000
          :param sample: [Fixnum] Number of random results to return. when you use the sample parameter,
              the limit and offset parameters are ignored. This parameter only used when works requested. Max: 100
          :param sort: [String] Field to sort on. Note: If the API call includes a query, then the sort
              order will be by the relevance score. If no query is included, then the sort order
              will be by DOI update date. See sorting_ for possible values.
          :param order: [String] Sort order, one of 'asc' or 'desc'
          :param facet: [Boolean/String] Set to `true` to include facet results (default: false).
              Optionally, pass a query string, e.g., `facet=type-name:*` or `facet=license=*`
              See Facets_ for options.
          :param select: [String/list(Strings)] Crossref metadata records can be
              quite large. Sometimes you just want a few elements from the schema. You can "select"
              a subset of elements to return. This can make your API calls much more efficient. Not
              clear yet which fields are allowed here.
          :param works: [Boolean] If true, works returned as well. Default: false
          :param kwargs: additional named arguments passed on to `requests.get`, e.g., field
              queries (see examples and FieldQueries_)
          :return: A dict
          Usage::
              from habanero import Crossref
              cr = Crossref()
              cr.prefixes(ids = "10.1016")
              cr.prefixes(ids = ['10.1016','10.1371','10.1023','10.4176','10.1093'])
              cr.prefixes(ids = "10.1016", works = True)
              cr.prefixes(ids = "10.1016", works = True, limit = 3)
              cr.prefixes(ids = "10.1016", works = True, sort = "relevance", order = "asc")
              res = cr.prefixes(ids = "10.1016", works = True, cursor = "*", limit = 200)
              sum([ len(z['message']['items']) for z in res ])
              items = [ z['message']['items'] for z in res ]
              items = [ item for sublist in items for item in sublist ]
              [ z['DOI'] for z in items ][0:50]
              res = cr.prefixes(ids = "10.1371", works = True, query_editor = 'cooper', filter = {'type': 'journal-article'})
              eds = [ x.get('editor') for x in res['message']['items'] ]
              [ z for z in eds if z is not None ]
          '''
          check_kwargs(["query"], kwargs)
          return request(self.mailto, self.base_url, "/prefixes/", ids,
            query = None, filter = filter, offset = offset, limit = limit,
            sample = sample, sort = sort, order = order, facet = facet,
            select = select, works = works, cursor = cursor, cursor_max = cursor_max,
            **kwargs)