# Octopart API — Part Family schema slice (~3744 tokens) # Not a complete schema: types from other contexts are referenced, not defined. # Full schema for code generation: https://altiumdeveloper.github.io/octopart-api-docs/schema.graphql # Referenced from other contexts: # DateTime → Common: https://altiumdeveloper.github.io/octopart-api-docs/reference/common/schema.graphql # Map → Common: https://altiumdeveloper.github.io/octopart-api-docs/reference/common/schema.graphql # SupCategory → Supply: https://altiumdeveloper.github.io/octopart-api-docs/reference/supply/schema.graphql # SupCompany → Supply: https://altiumdeveloper.github.io/octopart-api-docs/reference/supply/schema.graphql # SupPart → Supply: https://altiumdeveloper.github.io/octopart-api-docs/reference/supply/schema.graphql type Query { "Search for part families and groups.\nThere is a limit on the number of parts allowed for each group. If you want the complete set of parts for a group\nmake a follow up request to `supPartGroupByName` or `supPartGroupById`." supPartFamilySearch( "The query text for the descriptive search of the part groups." q: String! "Part group filters to be applied to this search." filters: SupPartFamilyFilterInput "Start offset of the results in the result set." start: Int = 0 "Page size of the results in the result set." limit: Int = 10 ): SupPartFamilyResultSet! "Search for part and group them by Part Group if applicable." supPartFamilyPartSearch( "The query text for descriptive search." q: String "The query text for MPN matching search.\nOverride q when this input is given." mpn: String "Filter to remove parts with no stocking distributors." inStockOnly: Boolean "Filter to only include parts with a datasheet." hasDatasheetOnly: Boolean "Spec Filters to be applied." filters: Map "Start offset of the results in the result set." start: Int! = 0 "Limit of the number of results to return in the result set." limit: Int! = 20 ): SupPartFamilyPartResultSet! "Get a specific part group by its unique identifier (GRID)." supPartGroupById(id: ID!): SupPartGroup! "Get a specific part group by its unique name." supPartGroupByName(name: String!): SupPartGroup! "Get a set of part groups by their unique identifiers (GRIDs).\nIf an ID is not found it will be returned as null, ensuring a one to one mapping of input ids to output." supPartGroupsByIds(ids: [ID!]!): [SupPartGroup]! "Get a part group by the ID of the part." supPartGroupByPartId(partId: ID!): SupPartGroup! "Get the set of filterable parameters for a part group within the given category." supPartFamilyParameters(categoryId: ID!): [SupPartFamilyParameter!]! } "Shared Fields between `SupPartFamily` and `SupPartGroup`." interface SupPartFamilyEntity { id: ID! stableName: String! title: String! subtitle: String! overview: String! categoryID: String! manufacturerID: String! applicationIDs: [String!]! tags: [SupPartFamilyTag!]! keyFeatures: [SupPartFamilyKeyFeature!]! } "`SupPartFamily` contains the relevant information related to a part family.\nIt exists in a hierarchy of other part families, they can contain children which represent other part families or\n`partGroups` which represent the leaves of the hierarchy tree." type SupPartFamily implements SupPartFamilyEntity { "`id` is the global resource id (GRID) for this Part Family." id: ID! "`stableName` is an immutable name of this part family." stableName: String! "`familyType` describes the part family in a part family hierarchy.\nIt is vendor and part family specific.\nExamples include: 'Series', 'Family', etc." familyType: String! "`parent` is the the direct parent of this family. This will be `null` if this is the highest level." parent: SupPartFamily "`children` is a list of the part families that are the direct children of this family.\nThere will be one of either `children` or `partGroups`." children: [SupPartFamily!]! "`partGroups` is a list of the part groups that are the direct children of this family.\nThere will be one of either `children` or `partGroups`." partGroups: [SupPartGroup!]! "`siblings` is a list of direct sibling part families of the current group, which have the same parent.\nThey are usually a close alternative choice of the current group." siblings: [SupPartFamily!]! "`title` of the part family." title: String! "`subtitle` of the part family." subtitle: String! "`overview` of the part family." overview: String! "`categoryID` is the identifier of the part category of this part family." categoryID: String! "`applicationIDs` is a list of the identifiers of relevant applications this part family can be useful for." applicationIDs: [String!]! "`tags` is a list of additional metadata for categorizing this part family." tags: [SupPartFamilyTag!]! "`keyFeatures` is the list of key part features relevant to this part family." keyFeatures: [SupPartFamilyKeyFeature!]! "`manufacturerID` is the identifier of the manufacturer of this part family." manufacturerID: String! category: SupCategory! applications: [SupCategory!] manufacturer: [SupCompany!] } "Used to show the filters that are applied to current search." type SupPartFamilyAppliedFilter { "Name of the filter applied, will match the filter key used in the search." name: String! "Human readable name to display in the UI." displayName: String! "Values in the filter Map." values: SupPartFamilyFilterValues! "Human readable values to display in the UI." displayValues: [String!]! "The units of the values." units: String } type SupPartFamilyBucket { PartFamily: SupPartFamily! count: Int } "`SupPartFamilyComplementaryPart` contains the details of the complementary part for this part group." type SupPartFamilyComplementaryPart { "`partGroupID` is the GRID of the part group." partGroupID: ID! "`name` of the part or part group." name: String! "`categoryID` of the category of this part or part group." categoryID: String! "`slug` is the url slug for this part or part group on Octopart." slug: String! "`lifecycle` status of this part or part group." lifecycle: String! } "`SupPartFamilyDocument` contains the details for the documentation provided for a Part Family.\n`url` contains a link to the given document.\n`updatedAt` is the time we last updated this document." type SupPartFamilyDocument { type: SupPartFamilyDocumentType! description: String! url: String! updatedAt: DateTime! } "`SupPartFamilyFeatureMetadata` contains additional information about a given feature." type SupPartFamilyFeatureMetadata { name: String! value: String! displayValue: String! units: String! } "Values applied within the filter." type SupPartFamilyFilterValues { values: [String] min: String max: String } "`SupPartFamilyKeyFeature` contains the key details for a Part Family feature." type SupPartFamilyKeyFeature { name: String! group: String! value: String! valueType: SupPartFamilyFeatureValueType! displayValue: String! units: String! metadata: [SupPartFamilyFeatureMetadata!]! } "`SupPartFamilyParameter` is the parameter definition for a filterable parameter of a part group." type SupPartFamilyParameter { "Name of this parameter." name: String! "Formatted name for use in the UI." displayName: String! "Methods of filtering available for this parameter." filterTypes: [SupPartFamilyFilterType!]! "Aggregation of parameter values." parameterAgg: SupPartFamilyParameterAgg! } "Aggregation of parameter values, `buckets` contains aggregations of the different parameter values.\nWill contain a `min`, `max`, and `units` if the parameter is a numeric value." type SupPartFamilyParameterAgg { "Aggregation buckets for this parameter.\n'size' specifies the number of aggregation buckets to include." buckets(size: Int = 10): [SupPartFamilyParameterBucket!]! "Min value of this parameter, if this is a numeric parameter." min: Float "Max value of this parameter, if this is a numeric parameter." max: Float "Units of this parameter, if this is a numeric parameter." units: String } "Aggregation bucket for parameter values.\nIf the parameter is discrete it will be a terms aggregation.\nIf the parameter is numeric it will be a range aggregation and `min`, `max` will be populated." type SupPartFamilyParameterBucket { displayValue: String! min: Float max: Float count: Int! } "Represents a part object from the supply schema." type SupPartFamilyPart { "Nexar ID of the part this object represents." partID: ID! "Nexar supply part data for internal use only. Array of size 1." part(country: String! = "US", currency: String! = "USD"): [SupPart]! } "`SupPartFamilyPartResultSet` is the search results with pagination information." type SupPartFamilyPartResultSet { "Total number of parts and/or groups found." hits: Int! "Total number of parts found." partHits: Int! "List of part or part groups in the current result set." results: [SupPartFamilyPartSearchResult!]! "List of filters that were applied to this search." appliedFilters: [SupPartFamilyAppliedFilter!]! "Aggregation for parts by part family." partFamilyAgg: [SupPartFamilyBucket!]! } "`SupPartFamilyPrice` contains the min and max price of parts in the group. Sourced from octopart part offers." type SupPartFamilyPrice { "`min` is the minimum price of any part in this group." min: Float! "`max` is the maximum price of any part in this group." max: Float! "`median` is the median price of the parts in this group." median: Float! "`priceBreak` is the quantity break at which the prices were calculated." priceBreak: Int! "`currency` of the price provided." currency: String! } "`SupPartFamilyResultSet` is the search results with pagination and aggregation information." type SupPartFamilyResultSet { "Total number of part families and/or groups found." hits: Int! "List of part families or part groups in the current result set." results: [SupPartFamilySearchResult!]! } "`SupPartFamilySoftwareSupport` contains the details for the software support provided for a Part Family.\n`url` contains a link to the given software support package.\n`updatedAt` is the time we last updated this document." type SupPartFamilySoftwareSupport { title: String! url: String! updatedAt: DateTime! } "`SupPartFamilyTag` represents additional metadata for a Part Family." type SupPartFamilyTag { type: String! value: String! } "`SupPartFamilyVideo` contains the details and link for a given training video." type SupPartFamilyVideo { "Title of this training video." title: String! "URL at which this video can be accessed." url: String! "URL at which the video thumbnail can be accessed." thumbnailUrl: String! "Time at which we last updated this video." updatedAt: DateTime! } "`SupPartGroup` contains the relevant information relating to a part group.\nIt represents the leaves of the Part Family hierarchy, and contain the parts represented by this group." type SupPartGroup implements SupPartFamilyEntity { "`id` is the global resource id (GRID) for this Part Group." id: ID! "`stableName` is an immutable name of this part family." stableName: String! "`parent` is the the part family representing the direct parent of this group." parent: SupPartFamily "`siblings` is a list of direct sibling part groups of the current group, which have the same parent.\nThey are usually a close alternative choice of the current group." siblings: [SupPartGroup!]! "`title` of the part group." title: String! "`subtitle` of the part group." subtitle: String! "`overview` of the key details of this part group." overview: String! "`categoryID` is the identifier of the part category of this part group." categoryID: String! "`applicationIDs` is a list of the identifiers of relevant applications this part group can be useful for." applicationIDs: [String!]! "`tags` is a list of additional metadata for categorizing this part group." tags: [SupPartFamilyTag!]! "`lifecycleStatus` is an enum representing the normalized lifecycle status of this part group." lifecycleStatus: SupPartFamilyLifecycleStatus! "`keyFeatures` is the list of key part features relevant to this part group." keyFeatures: [SupPartFamilyKeyFeature!]! "`manufacturerID` is the identifier of the manufacturer of this part group." manufacturerID: String! "`partIDs` is the list of identifiers of the physical parts within this group.\nstart and limit are used for paging part results (including those under the parts field).\nlimit has a max value of 20, any value greater than this will be reduced to it." partIDs(start: Int! = 0, limit: Int! = 10): [String!]! "`price` contains pricing information for this part group.\nIt contains the minimum, maximum, and median unit price @ given quantity among all parts in the group." price(country: String! = "US", currency: String! = "USD", quantity: Int! = 1000): SupPartFamilyPrice "`complementaryParts` is a list of the identifiers of relevant parts which work with this group." complementaryParts: [SupPartFamilyComplementaryPart!]! "`referenceDesignIDs` is a list of the identifiers of reference designs relevant to this part group." referenceDesignIDs: [String!]! "`documents` is a list of the key documentation related to this part group." documents(type: SupPartFamilyDocumentType): [SupPartFamilyDocument!]! "`softwareSupport` is a list of the key supporting documents for this part group." softwareSupport: [SupPartFamilySoftwareSupport!]! "`videos` is a list of key videos related to this part group." videos: [SupPartFamilyVideo!]! category: SupCategory! applications: [SupCategory]! manufacturer: [SupCompany!] parts: [SupPart]! } union SupPartFamilyPartSearchResult = SupPartFamilyPart | SupPartGroup union SupPartFamilySearchResult = SupPartFamily | SupPartGroup input SupPartFamilyFilterInput { applicationIDs: [String!] categoryIDs: [String!] manufacturerIDs: [String!] families: [String!] groups: [String!] } "Valid document types for Part Family documentation." enum SupPartFamilyDocumentType { DATASHEET MANUAL APPLICATION_NOTE REPORT BROCHURE FLYER GUIDE OTHER } "Valid types a features value can take." enum SupPartFamilyFeatureValueType { STRING SCALAR RANGE ENUMERATION } "Valid types for a parameter filter. These describe how this parameter can be used in filtering.\n`VALUES` indicates the parameter can be filtered based on a provided set of terms.\n`RANGE` indicates the parameter can be filtered based on a range of values, provided a min and max value." enum SupPartFamilyFilterType { VALUES RANGE } enum SupPartFamilyLifecycleStatus { NEW PRODUCTION EOL NRND OBSOLETE UNKNOWN }