# Get Custom Components

<Heading
  as={"h1"}
  className={"openapi__heading"}
  children={"Get Custom Components"}
>
</Heading>

<MethodEndpoint
  method={"get"}
  path={"/api/v2/custom_components"}
  context={"endpoint"}
>
  
</MethodEndpoint>

Get a list of custom components currently uploaded to Haystack Enterprise Platform.
The list includes all the details of each component, such as its status and version.

<Heading
  id={"request"}
  as={"h2"}
  className={"openapi-tabs__heading"}
  children={"Request"}
>
</Heading>

<ParamsDetails
  parameters={[{"description":"The number of entries to display. Leaving this field empty keeps the default, and max 10 results are returned.","in":"query","name":"limit","required":false,"schema":{"default":10,"description":"The number of entries to display. Leaving this field empty keeps the default, and max 10 results are returned.","maximum":100,"title":"Limit","type":"integer"}},{"description":"Enter an ID if you want to see all entries before this ID. To use this option, clear the `page_number` parameter first.","in":"query","name":"before","required":false,"schema":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}],"description":"Enter an ID if you want to see all entries before this ID. To use this option, clear the `page_number` parameter first.","title":"Before"}},{"description":"Enter an ID if you want to see all entries after this ID. To use this option, clear the `page_number` parameter first.","in":"query","name":"after","required":false,"schema":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}],"description":"Enter an ID if you want to see all entries after this ID. To use this option, clear the `page_number` parameter first.","title":"After"}},{"description":"The number of the page you want to see.","in":"query","name":"page_number","required":false,"schema":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"description":"The number of the page you want to see.","title":"Page Number"}},{"description":"The name of the entity you want to sort by.","in":"query","name":"field","required":false,"schema":{"default":"created_at","description":"The name of the entity you want to sort by.","enum":["version","status","created_at"],"title":"Field","type":"string"}},{"description":"Choose how you want to sort the results.","in":"query","name":"order","required":false,"schema":{"default":"DESC","description":"Choose how you want to sort the results.","enum":["ASC","DESC"],"title":"Order","type":"string"}},{"description":"Partial implementation of the OData $select operator. It currently only supports selecting fields from the root entity or a child entity. Selecting fields from children's children is not supported. If you use this parameter, the API answer is always a flat list of distinct JSON objects with the selected properties, for example, '[{\"given_name\": \"user1\", \"user_id\": \"...\"}, ...]' for 'select=created_by/given_name, created_by/user_id'. The results are ordered by the first selected attribute. To learn more about the OData filter syntax, see: [Querying Data](https://www.odata.org/getting-started/basic-tutorial/#queryData).","in":"query","name":"select","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Partial implementation of the OData $select operator. It currently only supports selecting fields from the root entity or a child entity. Selecting fields from children's children is not supported. If you use this parameter, the API answer is always a flat list of distinct JSON objects with the selected properties, for example, '[{\"given_name\": \"user1\", \"user_id\": \"...\"}, ...]' for 'select=created_by/given_name, created_by/user_id'. The results are ordered by the first selected attribute. To learn more about the OData filter syntax, see: [Querying Data](https://www.odata.org/getting-started/basic-tutorial/#queryData).","title":"Select"}},{"description":"The OData filter you want to use to in your query. It supports exact match and `AND` operations. For example, to filter for a metadata `category:news` and `published_date` greater than or equal to January 1 2025, here's what the URL could look like: 'url = \"https://api.cloud.deepset.ai/api/v1/workspaces/production/files?limit=10&filter=category eq 'news' and published_date ge '2025-01-01' \"'. OData filters only work with cursor-based pagination (leave the `page_number` field blank to enable it).To learn more about the OData filter syntax, see: [Querying Data](https://www.odata.org/getting-started/basic-tutorial/#queryData).","in":"query","name":"filter","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The OData filter you want to use to in your query. It supports exact match and `AND` operations. For example, to filter for a metadata `category:news` and `published_date` greater than or equal to January 1 2025, here's what the URL could look like: 'url = \"https://api.cloud.deepset.ai/api/v1/workspaces/production/files?limit=10&filter=category eq 'news' and published_date ge '2025-01-01' \"'. OData filters only work with cursor-based pagination (leave the `page_number` field blank to enable it).To learn more about the OData filter syntax, see: [Querying Data](https://www.odata.org/getting-started/basic-tutorial/#queryData).","title":"Filter"}}]}
>
  
</ParamsDetails>

<RequestSchema
  title={"Body"}
  body={undefined}
>
  
</RequestSchema>

<StatusCodes
  id={undefined}
  label={undefined}
  responses={{"200":{"content":{"application/json":{"schema":{"properties":{"data":{"items":{"properties":{"created_by_user_id":{"description":"User ID of the user who created the custom component.","format":"uuid","title":"Created by user ID","type":"string"},"custom_component_id":{"description":"Unique identifier of the custom component.","format":"uuid","title":"Custom component ID","type":"string"},"logs":{"description":"Custom component logs.","items":{"properties":{"level":{"description":"Log level, for example error or warning.","title":"Level","type":"string"},"log_entry_id":{"description":"Unique identifier of the log entry.","format":"uuid","title":"Log entry ID","type":"string"},"msg":{"description":"Log message.","title":"Message","type":"string"}},"required":["log_entry_id","msg","level"],"title":"CustomComponentLog","type":"object"},"title":"Logs","type":"array"},"organization_id":{"description":"Unique identifier of the Haystack Enterprise Platform organization with the organization where you want to upload the component.","format":"uuid","title":"Organization ID","type":"string"},"status":{"description":"Status of the custom component.","title":"Status","type":"string"},"version":{"description":"Version of the custom component.","title":"Version","type":"string"}},"required":["organization_id","logs","version","created_by_user_id","custom_component_id","status"],"title":"CustomComponent","type":"object"},"title":"Data","type":"array"},"has_more":{"description":"Indicates if there are more results to show.","title":"Has more results","type":"boolean"},"total":{"description":"The total number of results matching your query.","title":"Total number of results","type":"integer"}},"required":["data","has_more","total"],"title":"PaginatedResult[CustomComponent]","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"ctx":{"title":"Context","type":"object"},"input":{"title":"Input"},"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"title":"Location","type":"array"},"msg":{"title":"Message","type":"string"},"type":{"title":"Error Type","type":"string"}},"required":["loc","msg","type"],"title":"ValidationError","type":"object"},"title":"Detail","type":"array"}},"title":"HTTPValidationError","type":"object"}}},"description":"Validation Error"}}}
>
  
</StatusCodes>
